]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/pybind/mgr/status/module.py
update sources to 12.2.8
[ceph.git] / ceph / src / pybind / mgr / status / module.py
index 606fb93e638c281761d8581358c50a4d9ff6e16e..12eddf516b350f60c3bf726372059a390d6beff6 100644 (file)
@@ -5,9 +5,10 @@ High level status display commands
 
 from collections import defaultdict
 from prettytable import PrettyTable
-import prettytable
-import fnmatch
 import errno
+import fnmatch
+import prettytable
+import six
 
 from mgr_module import MgrModule
 
@@ -187,7 +188,7 @@ class Module(MgrModule):
                     ])
 
             # Find the standby replays
-            for gid_str, daemon_info in mdsmap['info'].iteritems():
+            for gid_str, daemon_info in six.iteritems(mdsmap['info']):
                 if daemon_info['state'] != "up:standby-replay":
                     continue
 
@@ -242,7 +243,7 @@ class Module(MgrModule):
             output += "MDS version: {0}".format(mds_versions.keys()[0])
         else:
             version_table = PrettyTable(["version", "daemons"])
-            for version, daemons in mds_versions.iteritems():
+            for version, daemons in six.iteritems(mds_versions):
                 version_table.add_row([
                     version,
                     ", ".join(daemons)
@@ -252,7 +253,7 @@ class Module(MgrModule):
         return 0, "", output
 
     def handle_osd_status(self, cmd):
-        osd_table = PrettyTable(['id', 'host', 'used', 'avail', 'wr ops', 'wr data', 'rd ops', 'rd data'])
+        osd_table = PrettyTable(['id', 'host', 'used', 'avail', 'wr ops', 'wr data', 'rd ops', 'rd data', 'state'])
         osdmap = self.get("osd_map")
 
         filter_osds = set()
@@ -279,17 +280,26 @@ class Module(MgrModule):
             if bucket_filter and osd_id not in filter_osds:
                 continue
 
-            metadata = self.get_metadata('osd', "%s" % osd_id)
-            stats = osd_stats[osd_id]
+            hostname = ""
+            kb_used = 0
+            kb_avail = 0
+
+            if osd_id in osd_stats:
+                metadata = self.get_metadata('osd', "%s" % osd_id)
+                stats = osd_stats[osd_id]
+                hostname = metadata['hostname']
+                kb_used = stats['kb_used'] * 1024
+                kb_avail = stats['kb_avail'] * 1024
 
-            osd_table.add_row([osd_id, metadata['hostname'],
-                               self.format_bytes(stats['kb_used'] * 1024, 5),
-                               self.format_bytes(stats['kb_avail'] * 1024, 5),
+            osd_table.add_row([osd_id, hostname,
+                               self.format_bytes(kb_used, 5),
+                               self.format_bytes(kb_avail, 5),
                                self.format_dimless(self.get_rate("osd", osd_id.__str__(), "osd.op_w") +
                                self.get_rate("osd", osd_id.__str__(), "osd.op_rw"), 5),
                                self.format_bytes(self.get_rate("osd", osd_id.__str__(), "osd.op_in_bytes"), 5),
                                self.format_dimless(self.get_rate("osd", osd_id.__str__(), "osd.op_r"), 5),
                                self.format_bytes(self.get_rate("osd", osd_id.__str__(), "osd.op_out_bytes"), 5),
+                               ','.join(osd['state']),
                                ])
 
         return 0, "", osd_table.get_string()