]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/telemetry: check get_metadata return val 33051/head
authorYaarit Hatuka <yaarit@redhat.com>
Mon, 3 Feb 2020 19:19:39 +0000 (14:19 -0500)
committerYaarit Hatuka <yaarit@redhat.com>
Tue, 4 Feb 2020 02:26:19 +0000 (21:26 -0500)
get_metada() returns 'None' when requesting a missing service, hence
trying to access its content fails. Added a check for osd and mgr
get_metadata() calls.

Fixes: https://tracker.ceph.com/issues/43642
Signed-off-by: Yaarit Hatuka <yaarit@redhat.com>
src/pybind/mgr/telemetry/module.py

index 97b353538931373aac7ad1244019793e6f7058c6..64d663d3c13ff7d1e9115881fc33b7201ad7bce0 100644 (file)
@@ -227,7 +227,11 @@ class Module(MgrModule):
             metadata[key] = defaultdict(int)
 
         for osd in osd_map['osds']:
-            for k, v in self.get_metadata('osd', str(osd['osd'])).items():
+            res = self.get_metadata('osd', str(osd['osd'])).items()
+            if res is None:
+                self.log.debug('Could not get metadata for osd.%s' % str(osd['osd']))
+                continue
+            for k, v in res:
                 if k not in keys:
                     continue
 
@@ -244,7 +248,11 @@ class Module(MgrModule):
             metadata[key] = defaultdict(int)
 
         for mon in mon_map['mons']:
-            for k, v in self.get_metadata('mon', mon['name']).items():
+            res = self.get_metadata('mon', mon['name']).items()
+            if res is None:
+                self.log.debug('Could not get metadata for mon.%s' % (mon['name']))
+                continue
+            for k, v in res:
                 if k not in keys:
                     continue