summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamikshan Bairagya <samikshan@gmail.com>2016-11-30 14:35:59 +0530
committerAtin Mukherjee <amukherj@redhat.com>2016-12-01 05:12:04 -0800
commit331a45942333e27f596b1930f7d459f59850c8a4 (patch)
tree2cd414d6fa1a08ebdc0dd9b9728c2e7580daf885
parent5bc501fde8d8d81ed4bd12edc306bc2c6fa268e4 (diff)
glusterd, cli: Fix volume options output format in get-state cli
Currently the get-state cli outputs the volume options in the following format: Volume1.rebalance.skipped: 0 Volume1.rebalance.lookedup: 0 Volume1.rebalance.files: 0 Volume1.rebalance.data: 0Bytes [Volume1.options] features.barrier: on transport.address-family: inet performance.readdir-ahead: on nfs.disable: on Volume2.name: tv2 Volume2.id: 35854708-bb72-45a5-bdbd-77c51e5ebfb9 Volume2.type: Distribute This above format is a valid ini file format syntactically, but is not very easily parseable. This patch changes the format to look like the following and should be more easily parseable: Volume1.rebalance.skipped: 0 Volume1.rebalance.lookedup: 0 Volume1.rebalance.files: 0 Volume1.rebalance.data: 0Bytes Volume1.options.features.barrier: on Volume1.options.transport.address-family: inet Volume1.options.performance.readdir-ahead: on Volume1.options.nfs.disable: on Volume2.name: tv2 Volume2.id: 35854708-bb72-45a5-bdbd-77c51e5ebfb9 Volume2.type: Distribute Change-Id: I9768b45de288d9817ec669d3a801874eb1914750 BUG: 1399995 Signed-off-by: Samikshan Bairagya <samikshan@gmail.com> Reviewed-on: http://review.gluster.org/15975 Smoke: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Shubhendu Tripathi <shtripat@redhat.com> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> Reviewed-by: Atin Mukherjee <amukherj@redhat.com> CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-handler.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c
index c5cce555eb8..aec03922f7b 100644
--- a/xlators/mgmt/glusterd/src/glusterd-handler.c
+++ b/xlators/mgmt/glusterd/src/glusterd-handler.c
@@ -56,6 +56,7 @@
#endif
extern glusterd_op_info_t opinfo;
+static int volcount;
int glusterd_big_locked_notify (struct rpc_clnt *rpc, void *mydata,
rpc_clnt_event_t event,
@@ -4944,7 +4945,7 @@ glusterd_handle_get_vol_opt (rpcsvc_request_t *req)
}
static int
-glusterd_print_dict_options (dict_t *opts, char *key, data_t *val, void *data)
+glusterd_print_global_options (dict_t *opts, char *key, data_t *val, void *data)
{
FILE *fp = NULL;
@@ -4962,6 +4963,21 @@ out:
}
static int
+glusterd_print_volume_options (dict_t *opts, char *key, data_t *val, void *data)
+{
+ FILE *fp = NULL;
+
+ GF_VALIDATE_OR_GOTO (THIS->name, key, out);
+ GF_VALIDATE_OR_GOTO (THIS->name, val, out);
+ GF_VALIDATE_OR_GOTO (THIS->name, data, out);
+
+ fp = (FILE *) data;
+ fprintf (fp, "Volume%d.options.%s: %s\n", volcount, key, val->data);
+out:
+ return 0;
+}
+
+static int
glusterd_print_snapinfo_by_vol (FILE *fp, glusterd_volinfo_t *volinfo, int volcount)
{
int ret = -1;
@@ -5122,7 +5138,7 @@ glusterd_get_state (rpcsvc_request_t *req, dict_t *dict)
fprintf (fp, "\n[Global options]\n");
if (priv->opts)
- dict_foreach (priv->opts, glusterd_print_dict_options, fp);
+ dict_foreach (priv->opts, glusterd_print_global_options, fp);
rcu_read_lock ();
fprintf (fp, "\n[Peers]\n");
@@ -5345,10 +5361,11 @@ glusterd_get_state (rpcsvc_request_t *req, dict_t *dict)
volinfo->rep_brick.dst_brick->hostname,
volinfo->rep_brick.dst_brick->path);
}
- fprintf (fp, "[Volume%d.options]\n", count);
+
+ volcount = count;
if (volinfo->dict)
dict_foreach (volinfo->dict,
- glusterd_print_dict_options, fp);
+ glusterd_print_volume_options, fp);
fprintf (fp, "\n");
}