From: Kotresh HR Date: Wed, 18 Feb 2026 10:48:51 +0000 (+0530) Subject: mgr/mirroring: json pretty formatting X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2f29ca6db3b4d4047ad0c3a5ea9015929c743e99;p=ceph.git mgr/mirroring: json pretty formatting The 'daemon status' and 'peer_list' command out don't support json-pretty format and isn't reader friendly. This patch adds support of 'json-pretty' when format='json-pretty' is passed. Fixes: https://tracker.ceph.com/issues/73516 Signed-off-by: Kotresh HR --- diff --git a/src/pybind/mgr/mirroring/fs/snapshot_mirror.py b/src/pybind/mgr/mirroring/fs/snapshot_mirror.py index d34e10295f4..884146109a4 100644 --- a/src/pybind/mgr/mirroring/fs/snapshot_mirror.py +++ b/src/pybind/mgr/mirroring/fs/snapshot_mirror.py @@ -549,7 +549,7 @@ class FSSnapshotMirror: except Exception as e: return e.args[0], '', 'failed to disable mirroring' - def peer_list(self, filesystem): + def peer_list(self, filesystem, format='json'): try: with self.lock: fspolicy = self.pool_policy.get(filesystem, None) @@ -563,7 +563,10 @@ class FSSnapshotMirror: 'site_name': remote['cluster_name'], 'fs_name': remote['fs_name'] } - return 0, json.dumps(peer_res), '' + if format == 'json-pretty': + return 0, json.dumps(peer_res, indent=2), '' + else: + return 0, json.dumps(peer_res), '' except MirrorException as me: return me.args[0], '', me.args[1] except Exception as e: @@ -761,7 +764,7 @@ class FSSnapshotMirror: except MirrorException as me: return me.args[0], '', me.args[1] - def daemon_status(self): + def daemon_status(self, format='json'): try: with self.lock: daemons = [] @@ -812,6 +815,9 @@ class FSSnapshotMirror: fs['peers'].append(peer) daemon['filesystems'].append(fs) daemons.append(daemon) - return 0, json.dumps(daemons), '' + if format == 'json-pretty': + return 0, json.dumps(daemons, indent=2), '' + else: + return 0, json.dumps(daemons), '' except MirrorException as me: return me.args[0], '', me.args[1] diff --git a/src/pybind/mgr/mirroring/module.py b/src/pybind/mgr/mirroring/module.py index 10201bac1bc..4a9813c6df9 100644 --- a/src/pybind/mgr/mirroring/module.py +++ b/src/pybind/mgr/mirroring/module.py @@ -51,9 +51,10 @@ class Module(MgrModule): @MirroringCLICommand.Read('fs snapshot mirror peer_list') def snapshot_mirror_peer_list(self, - fs_name: str): + fs_name: str, + format: str = 'json'): """List configured peers for a file system""" - return self.fs_snapshot_mirror.peer_list(fs_name) + return self.fs_snapshot_mirror.peer_list(fs_name, format) @MirroringCLICommand.Write('fs snapshot mirror peer_remove') def snapshot_mirror_peer_remove(self, @@ -111,6 +112,7 @@ class Module(MgrModule): return self.fs_snapshot_mirror.show_distribution(fs_name) @MirroringCLICommand.Read('fs snapshot mirror daemon status') - def snapshot_mirror_daemon_status(self): + def snapshot_mirror_daemon_status(self, + format: str = 'json'): """Get mirror daemon status""" - return self.fs_snapshot_mirror.daemon_status() + return self.fs_snapshot_mirror.daemon_status(format)