summaryrefslogtreecommitdiffstats
path: root/cli/src
diff options
context:
space:
mode:
authorKrishnan Parthasarathi <kp@gluster.com>2011-10-31 15:54:52 +0530
committerVijay Bellur <vijay@gluster.com>2011-11-18 04:22:25 -0800
commit1e652740f74298637577e9861cb5092091404d29 (patch)
treedc2a50ba794396b493c57e0c8b244ba2543a4b55 /cli/src
parentc5be0df9149155f9e23a8e9f24d0becb0543efe1 (diff)
glusterd: Extended glusterd_is_service_running to get svcs's pid.
Also, volume status cmd would print "N/A" if pid couldn't be retrieved from pidfile. Change-Id: Ie83d228b1cf86397d181885b325e337a403e6ed2 BUG: 3043 Reviewed-on: http://review.gluster.com/650 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
Diffstat (limited to 'cli/src')
-rw-r--r--cli/src/cli-cmd-volume.c4
-rw-r--r--cli/src/cli-rpc-ops.c16
-rw-r--r--cli/src/cli.h2
3 files changed, 17 insertions, 5 deletions
diff --git a/cli/src/cli-cmd-volume.c b/cli/src/cli-cmd-volume.c
index 18d17b4546d..b5a177a869d 100644
--- a/cli/src/cli-cmd-volume.c
+++ b/cli/src/cli-cmd-volume.c
@@ -1376,7 +1376,7 @@ cli_cmd_volume_status_cbk (struct cli_state *state,
int
-cli_print_brick_status (char *brick, int port, int online, int pid)
+cli_print_brick_status (char *brick, int port, int online, char *pid)
{
int fieldlen = CLI_VOL_STATUS_BRICK_LEN;
char buf[80] = {0,};
@@ -1400,7 +1400,7 @@ cli_print_brick_status (char *brick, int port, int online, int pid)
printf ("%s", p);
while (num_tabs-- != 0)
printf ("\t");
- cli_out ("%d\t%c\t%d", port, online?'Y':'N', pid);
+ cli_out ("%d\t%c\t%s", port, online?'Y':'N', pid);
bricklen = 0;
}
}
diff --git a/cli/src/cli-rpc-ops.c b/cli/src/cli-rpc-ops.c
index 2841a32d589..8a88e57d595 100644
--- a/cli/src/cli-rpc-ops.c
+++ b/cli/src/cli-rpc-ops.c
@@ -3807,7 +3807,8 @@ gf_cli3_1_status_cbk (struct rpc_req *req, struct iovec *iov,
int port = 0;
int online = 0;
char key[1024] = {0,};
- int pid = 0;
+ int pid = -1;
+ char *pid_str = NULL;
char brick[8192] = {0,};
char *volname = NULL;
@@ -3875,11 +3876,22 @@ gf_cli3_1_status_cbk (struct rpc_req *req, struct iovec *iov,
memset (key, 0, sizeof (key));
snprintf (key, sizeof (key), "brick%d.pid", i);
ret = dict_get_int32 (dict, key, &pid);
+ if (ret)
+ goto out;
+ if (pid == -1)
+ ret = gf_asprintf (&pid_str, "%s", "N/A");
+ else
+ ret = gf_asprintf (&pid_str, "%d", pid);
+
+ if (ret == -1)
+ goto out;
snprintf (brick, sizeof (brick) -1, "%s:%s", hostname, path);
cli_print_line (CLI_BRICK_STATUS_LINE_LEN);
- cli_print_brick_status (brick, port, online, pid);
+ cli_print_brick_status (brick, port, online, pid_str);
+ if (pid_str)
+ GF_FREE (pid_str);
}
ret = rsp.op_ret;
diff --git a/cli/src/cli.h b/cli/src/cli.h
index 70310f103ed..1d2e069735a 100644
--- a/cli/src/cli.h
+++ b/cli/src/cli.h
@@ -236,7 +236,7 @@ cli_cmd_volume_status_parse (const char **words, int wordcount,
dict_t **options);
int
-cli_print_brick_status (char *brick, int port, int online, int pid);
+cli_print_brick_status (char *brick, int port, int online, char *pid);
void
cli_print_line (int len);