]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard_v2: Fixed exception in rbd_mirroring
authorSebastian Wagner <sebastian.wagner@suse.com>
Fri, 23 Feb 2018 15:21:24 +0000 (16:21 +0100)
committerRicardo Dias <rdias@suse.com>
Mon, 5 Mar 2018 13:07:16 +0000 (13:07 +0000)
Fixed issue when rbd-mirroring is enabled without any Pools.

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
src/pybind/mgr/dashboard_v2/controllers/rbd_mirroring.py

index 6fc90892dae2e2f59970957a914c588b1eec244e..a9115a3dbf3b943f86317df8578442439af5a3a6 100644 (file)
@@ -26,7 +26,7 @@ def get_daemons_and_pools(mgr):  # pylint: disable=R0915
 
                 try:
                     status = json.loads(status['json'])
-                except ValueError:
+                except (ValueError, KeyError) as _:
                     status = {}
 
                 instance_id = metadata['instance_id']
@@ -248,9 +248,9 @@ class RbdMirror(BaseController):
 
         pool_names = [pool['pool_name'] for pool in CephService.get_pool_list('rbd')]
         _, data = get_daemons_and_pools(self.mgr)
-        if data is None:
-            logger.warning("Failed to get rbd-mirror daemons list")
-            data = {}
+        if isinstance(data, Exception):
+            logger.exception("Failed to get rbd-mirror daemons list")
+            raise type(data)(str(data))
         daemons = data.get('daemons', [])
         pool_stats = data.get('pools', {})