From: Sebastian Wagner Date: Fri, 23 Feb 2018 15:21:24 +0000 (+0100) Subject: mgr/dashboard_v2: Fixed exception in rbd_mirroring X-Git-Tag: wip-pdonnell-testing-20180317.202121~127^2~13 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=1f5051ab8a43e2e94c261ee01a2a0dcbf2066b63;p=ceph-ci.git mgr/dashboard_v2: Fixed exception in rbd_mirroring Fixed issue when rbd-mirroring is enabled without any Pools. Signed-off-by: Sebastian Wagner --- diff --git a/src/pybind/mgr/dashboard_v2/controllers/rbd_mirroring.py b/src/pybind/mgr/dashboard_v2/controllers/rbd_mirroring.py index 6fc90892dae..a9115a3dbf3 100644 --- a/src/pybind/mgr/dashboard_v2/controllers/rbd_mirroring.py +++ b/src/pybind/mgr/dashboard_v2/controllers/rbd_mirroring.py @@ -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', {})