3604df
From c44c4f3d98ad758037c24f81c05997c16755e433 Mon Sep 17 00:00:00 2001
3604df
From: Samikshan Bairagya <samikshan@gmail.com>
3604df
Date: Wed, 30 Nov 2016 14:35:59 +0530
3604df
Subject: [PATCH 211/227] glusterd, cli: Fix volume options output format in
3604df
 get-state cli
3604df
3604df
Currently the get-state cli outputs the volume options in the
3604df
following format:
3604df
3604df
Volume1.rebalance.skipped: 0
3604df
Volume1.rebalance.lookedup: 0
3604df
Volume1.rebalance.files: 0
3604df
Volume1.rebalance.data: 0Bytes
3604df
[Volume1.options]
3604df
features.barrier: on
3604df
transport.address-family: inet
3604df
performance.readdir-ahead: on
3604df
nfs.disable: on
3604df
3604df
Volume2.name: tv2
3604df
Volume2.id: 35854708-bb72-45a5-bdbd-77c51e5ebfb9
3604df
Volume2.type: Distribute
3604df
3604df
This above format is a valid ini file format syntactically, but is
3604df
not very easily parseable. This patch changes the format to look like
3604df
the following and should be more easily parseable:
3604df
3604df
Volume1.rebalance.skipped: 0
3604df
Volume1.rebalance.lookedup: 0
3604df
Volume1.rebalance.files: 0
3604df
Volume1.rebalance.data: 0Bytes
3604df
Volume1.options.features.barrier: on
3604df
Volume1.options.transport.address-family: inet
3604df
Volume1.options.performance.readdir-ahead: on
3604df
Volume1.options.nfs.disable: on
3604df
3604df
Volume2.name: tv2
3604df
Volume2.id: 35854708-bb72-45a5-bdbd-77c51e5ebfb9
3604df
Volume2.type: Distribute
3604df
3604df
>Reviewed-on: http://review.gluster.org/15975
3604df
>Smoke: Gluster Build System <jenkins@build.gluster.org>
3604df
>Reviewed-by: Shubhendu Tripathi <shtripat@redhat.com>
3604df
>NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
3604df
>Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
3604df
>CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
3604df
3604df
Change-Id: I9768b45de288d9817ec669d3a801874eb1914750
3604df
BUG: 1397257
3604df
Signed-off-by: Samikshan Bairagya <samikshan@gmail.com>
3604df
Reviewed-on: https://code.engineering.redhat.com/gerrit/91885
3604df
Tested-by: Atin Mukherjee <amukherj@redhat.com>
3604df
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
3604df
---
3604df
 xlators/mgmt/glusterd/src/glusterd-handler.c | 25 +++++++++++++++++++++----
3604df
 1 file changed, 21 insertions(+), 4 deletions(-)
3604df
3604df
diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c
3604df
index a41960d..f8dc91b 100644
3604df
--- a/xlators/mgmt/glusterd/src/glusterd-handler.c
3604df
+++ b/xlators/mgmt/glusterd/src/glusterd-handler.c
3604df
@@ -56,6 +56,7 @@
3604df
 #endif
3604df
 
3604df
 extern glusterd_op_info_t opinfo;
3604df
+static int volcount;
3604df
 
3604df
 int glusterd_big_locked_notify (struct rpc_clnt *rpc, void *mydata,
3604df
                                 rpc_clnt_event_t event,
3604df
@@ -4950,7 +4951,7 @@ glusterd_handle_get_vol_opt (rpcsvc_request_t *req)
3604df
 }
3604df
 
3604df
 static int
3604df
-glusterd_print_dict_options (dict_t *opts, char *key, data_t *val, void *data)
3604df
+glusterd_print_global_options (dict_t *opts, char *key, data_t *val, void *data)
3604df
 {
3604df
         FILE *fp = NULL;
3604df
 
3604df
@@ -4968,6 +4969,21 @@ out:
3604df
 }
3604df
 
3604df
 static int
3604df
+glusterd_print_volume_options (dict_t *opts, char *key, data_t *val, void *data)
3604df
+{
3604df
+        FILE *fp = NULL;
3604df
+
3604df
+        GF_VALIDATE_OR_GOTO (THIS->name, key, out);
3604df
+        GF_VALIDATE_OR_GOTO (THIS->name, val, out);
3604df
+        GF_VALIDATE_OR_GOTO (THIS->name, data, out);
3604df
+
3604df
+        fp = (FILE *) data;
3604df
+        fprintf (fp, "Volume%d.options.%s: %s\n", volcount, key, val->data);
3604df
+out:
3604df
+        return 0;
3604df
+}
3604df
+
3604df
+static int
3604df
 glusterd_print_snapinfo_by_vol (FILE *fp, glusterd_volinfo_t *volinfo, int volcount)
3604df
 {
3604df
         int                     ret = -1;
3604df
@@ -5130,7 +5146,7 @@ glusterd_get_state (rpcsvc_request_t *req, dict_t *dict)
3604df
         fprintf (fp, "\n[Global options]\n");
3604df
 
3604df
         if (priv->opts)
3604df
-                dict_foreach (priv->opts, glusterd_print_dict_options, fp);
3604df
+                dict_foreach (priv->opts, glusterd_print_global_options, fp);
3604df
 
3604df
         rcu_read_lock ();
3604df
         fprintf (fp, "\n[Peers]\n");
3604df
@@ -5353,10 +5369,11 @@ glusterd_get_state (rpcsvc_request_t *req, dict_t *dict)
3604df
                                  volinfo->rep_brick.dst_brick->hostname,
3604df
                                  volinfo->rep_brick.dst_brick->path);
3604df
                 }
3604df
-                fprintf (fp, "[Volume%d.options]\n", count);
3604df
+
3604df
+                volcount = count;
3604df
                 if (volinfo->dict)
3604df
                         dict_foreach (volinfo->dict,
3604df
-                                      glusterd_print_dict_options, fp);
3604df
+                                      glusterd_print_volume_options, fp);
3604df
 
3604df
                 fprintf (fp, "\n");
3604df
         }
3604df
-- 
3604df
2.9.3
3604df