]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/mirroring: json pretty formatting 65911/head
authorKotresh HR <khiremat@redhat.com>
Wed, 18 Feb 2026 10:48:51 +0000 (16:18 +0530)
committerKotresh HR <khiremat@redhat.com>
Tue, 3 Mar 2026 12:53:02 +0000 (18:23 +0530)
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 <khiremat@redhat.com>
src/pybind/mgr/mirroring/fs/snapshot_mirror.py
src/pybind/mgr/mirroring/module.py

index d34e10295f4ea904c9e3e3f93702ac65f2447ed8..884146109a417619442e872b3dcaac13041ca7d7 100644 (file)
@@ -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]
index 10201bac1bc35ffdc9d642252181703fc2407916..4a9813c6df92f1a787eaa932c1fc9a74bed89033 100644 (file)
@@ -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)