From 845d6c76701a3de6a11b76b004176971411c714e Mon Sep 17 00:00:00 2001 From: ndarshan Date: Tue, 22 Jul 2014 14:19:19 +0530 Subject: cli: Xml output for geo-replication status command This patch adds xml output for geo-replication status and status detail command. sample: -------------------------------------------------------------- master :2a301d66-b9d2-44b4-b827-d680d67123eb:ssh://XXXXXXXXXX::slave localhost.localdomain 2a301d66-b9d2-44b4-b827-d680d67123eb /root/master_b1 ssh://XXXXXXXXXXX::slave faulty N/A N/A ------------------------------------------------------------- Change-Id: Ia19dbe751c3ab1ec7cb8923cdd6c8b99c374072f BUG: 1133464 Signed-off-by: ndarshan Reviewed-on: http://review.gluster.org/8089 Tested-by: Gluster Build System Reviewed-by: Kaushal M Signed-off-by: ndarshan Reviewed-on: http://review.gluster.org/8532 Reviewed-by: Sachin Pandit Reviewed-by: Vijay Bellur --- xlators/mgmt/glusterd/src/glusterd-geo-rep.c | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'xlators/mgmt/glusterd') diff --git a/xlators/mgmt/glusterd/src/glusterd-geo-rep.c b/xlators/mgmt/glusterd/src/glusterd-geo-rep.c index def83fb2055..f4c5f1cb685 100644 --- a/xlators/mgmt/glusterd/src/glusterd-geo-rep.c +++ b/xlators/mgmt/glusterd/src/glusterd-geo-rep.c @@ -3471,6 +3471,10 @@ glusterd_read_status_file (glusterd_volinfo_t *volinfo, char *slave, char *statefile = NULL; char *socketfile = NULL; dict_t *confd = NULL; + char *slavekey = NULL; + char *slaveentry = NULL; + char *brick_host_uuid = NULL; + int brick_host_uuid_length = 0; int gsync_count = 0; int i = 0; int ret = 0; @@ -3676,9 +3680,34 @@ store_status: sts_val->node[strlen(node)] = '\0'; memcpy (sts_val->brick, brickinfo->path, strlen(brickinfo->path)); sts_val->brick[strlen(brickinfo->path)] = '\0'; + + ret = glusterd_get_slave (volinfo, slave, &slavekey); + if (ret < 0) { + GF_FREE (sts_val); + goto out; + } + memcpy (sts_val->slavekey, slavekey, strlen(slavekey)); + sts_val->slavekey[strlen(slavekey)] = '\0'; + + brick_host_uuid = uuid_utoa(brickinfo->uuid); + brick_host_uuid_length = strlen (brick_host_uuid); + memcpy (sts_val->brick_host_uuid, brick_host_uuid, + brick_host_uuid_length); + sts_val->brick_host_uuid[brick_host_uuid_length] = '\0'; + memcpy (sts_val->master, master, strlen(master)); sts_val->master[strlen(master)] = '\0'; + ret = dict_get_str (volinfo->gsync_slaves, slavekey, + &slaveentry); + if (ret < 0) { + GF_FREE (sts_val); + goto out; + } + memcpy (sts_val->session_slave, slaveentry, + strlen(slaveentry)); + sts_val->session_slave[strlen(slaveentry)] = '\0'; + snprintf (sts_val_name, sizeof (sts_val_name), "status_value%d", gsync_count); ret = dict_set_bin (dict, sts_val_name, sts_val, sizeof(gf_gsync_status_t)); if (ret) { -- cgit