]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr: fix "osd status" command exception if OSD not in pgmap stats
authorYanhu Cao <gmayyyha@gmail.com>
Mon, 9 Oct 2017 05:47:11 +0000 (13:47 +0800)
committerShinobu Kinjo <shinobu@redhat.com>
Tue, 21 Nov 2017 22:04:50 +0000 (17:04 -0500)
Fixes: http://tracker.ceph.com/issues/21707
Signed-off-by: Yanhu Cao <gmayyyha@gmail.com>
(cherry picked from commit ce3953248a04c065643938898029cfbf9c843ea3)

src/pybind/mgr/status/module.py

index 606fb93e638c281761d8581358c50a4d9ff6e16e..70a7e36e6b0702b406d71b30ae21dbf1f1e04434 100644 (file)
@@ -279,12 +279,20 @@ 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]
-
-            osd_table.add_row([osd_id, metadata['hostname'],
-                               self.format_bytes(stats['kb_used'] * 1024, 5),
-                               self.format_bytes(stats['kb_avail'] * 1024, 5),
+            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, 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),