diff options
author | Aravinda VK <avishwan@redhat.com> | 2017-11-23 15:28:07 +0530 |
---|---|---|
committer | Aravinda VK <avishwan@redhat.com> | 2017-11-24 13:59:24 +0000 |
commit | d395387f601c9fb57a5fd9f19385b4de3c870de8 (patch) | |
tree | 522bc9fc7bdecddb90ce84deab5103745ca2b7b4 | |
parent | cd27e0ffb8afd69c1df28c38808c49a3af8cc75d (diff) | |
download | glusterfs-d395387f601c9fb57a5fd9f19385b4de3c870de8.tar.gz glusterfs-d395387f601c9fb57a5fd9f19385b4de3c870de8.tar.xz glusterfs-d395387f601c9fb57a5fd9f19385b4de3c870de8.zip |
geo-rep: JSON output for status and config
For Glusterd2 integration, JSON output of status and config
is very useful from gsyncd
Fixes: #361
Change-Id: I53c61f19033ad4ac601ea49469e4e7c7c8e9af3d
Signed-off-by: Aravinda VK <avishwan@redhat.com>
-rw-r--r-- | geo-replication/syncdaemon/gsyncd.py | 2 | ||||
-rw-r--r-- | geo-replication/syncdaemon/gsyncdconfig.py | 2 | ||||
-rw-r--r-- | geo-replication/syncdaemon/gsyncdstatus.py | 13 | ||||
-rw-r--r-- | geo-replication/syncdaemon/subcmds.py | 13 |
4 files changed, 26 insertions, 4 deletions
diff --git a/geo-replication/syncdaemon/gsyncd.py b/geo-replication/syncdaemon/gsyncd.py index fbab5cbf38..f58b532bcd 100644 --- a/geo-replication/syncdaemon/gsyncd.py +++ b/geo-replication/syncdaemon/gsyncd.py @@ -129,6 +129,7 @@ def main(): p.add_argument("-c", "--config-file", help="Config File") p.add_argument("--local-path", help="Local Brick Path") p.add_argument("--debug", action="store_true") + p.add_argument("--json", action="store_true") # Config-check p = sp.add_parser("config-check") @@ -146,6 +147,7 @@ def main(): p.add_argument("--show-defaults", action="store_true") p.add_argument("--only-value", action="store_true") p.add_argument("--use-underscore", action="store_true") + p.add_argument("--json", action="store_true") # Config-set p = sp.add_parser("config-set") diff --git a/geo-replication/syncdaemon/gsyncdconfig.py b/geo-replication/syncdaemon/gsyncdconfig.py index 5aa354b8e6..a584380167 100644 --- a/geo-replication/syncdaemon/gsyncdconfig.py +++ b/geo-replication/syncdaemon/gsyncdconfig.py @@ -329,7 +329,7 @@ def to_float(value): def to_bool(value): - return True if value == "true" else False + return True if value in ["true", "True"] else False def get(name, default_value=None): diff --git a/geo-replication/syncdaemon/gsyncdstatus.py b/geo-replication/syncdaemon/gsyncdstatus.py index 38ca92c73a..1df2433043 100644 --- a/geo-replication/syncdaemon/gsyncdstatus.py +++ b/geo-replication/syncdaemon/gsyncdstatus.py @@ -399,6 +399,15 @@ class GeorepStatus(object): return data - def print_status(self, checkpoint_time=0): - for key, value in self.get_status(checkpoint_time).items(): + def print_status(self, checkpoint_time=0, json_output=False): + status_out = self.get_status(checkpoint_time) + if json_output: + out = {} + # Convert all values as string + for k, v in status_out.items(): + out[k] = str(v) + print json.dumps(out) + return + + for key, value in status_out.items(): print ("%s: %s" % (key, value)) diff --git a/geo-replication/syncdaemon/subcmds.py b/geo-replication/syncdaemon/subcmds.py index 8ce5f219b6..691c84401c 100644 --- a/geo-replication/syncdaemon/subcmds.py +++ b/geo-replication/syncdaemon/subcmds.py @@ -32,7 +32,8 @@ def subcmd_status(args): slave_data, gconf.get("pid-file")) checkpoint_time = gconf.get("checkpoint", 0) - brick_status.print_status(checkpoint_time=checkpoint_time) + brick_status.print_status(checkpoint_time=checkpoint_time, + json_output=args.json) def subcmd_monitor(args): @@ -232,6 +233,7 @@ def config_name_format(val): def subcmd_config_get(args): import sys + import json all_config = gconf.getall(show_defaults=args.show_defaults, show_non_configurable=True) @@ -245,6 +247,15 @@ def subcmd_config_get(args): use_underscore=args.use_underscore) return + if args.json: + out = {} + # Convert all values as string + for k, v in all_config.items(): + out[k] = str(v) + + print(json.dumps(out)) + return + for k in sorted(all_config): print_config(k, all_config[k], use_underscore=args.use_underscore) |