From b89ac7ca4d956a354841812c230e247034eb39a5 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Thu, 30 Nov 2017 14:06:32 -0500 Subject: [PATCH] mgr/dashboard: use unique instance id as daemon identifier Signed-off-by: Jason Dillaman --- src/pybind/mgr/dashboard/rbd_mirroring.html | 4 ++-- src/pybind/mgr/dashboard/rbd_mirroring.py | 18 +++++++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/pybind/mgr/dashboard/rbd_mirroring.html b/src/pybind/mgr/dashboard/rbd_mirroring.html index 2720685474a..c59b9bfbf1c 100644 --- a/src/pybind/mgr/dashboard/rbd_mirroring.html +++ b/src/pybind/mgr/dashboard/rbd_mirroring.html @@ -78,8 +78,8 @@ - + @@ -87,8 +87,8 @@ - + diff --git a/src/pybind/mgr/dashboard/rbd_mirroring.py b/src/pybind/mgr/dashboard/rbd_mirroring.py index d8a5241d601..e549ed51727 100644 --- a/src/pybind/mgr/dashboard/rbd_mirroring.py +++ b/src/pybind/mgr/dashboard/rbd_mirroring.py @@ -18,19 +18,23 @@ class DaemonsAndPools(RemoteViewCache): for server in self._module.list_servers(): for service in server['services']: if service['type'] == 'rbd-mirror': - metadata = self._module.get_metadata('rbd-mirror', - service['id']) - status = self._module.get_daemon_status('rbd-mirror', - service['id']) + id = service['id'] + metadata = self._module.get_metadata('rbd-mirror', id) + status = self._module.get_daemon_status('rbd-mirror', id) try: status = json.loads(status['json']) except: status = {} + instance_id = metadata['instance_id'] + if (id == instance_id): + # new version that supports per-cluster leader elections + id = metadata['id'] + # extract per-daemon service data and health daemon = { - 'id': service['id'], - 'instance_id': metadata['instance_id'], + 'id': id, + 'instance_id': instance_id, 'version': metadata['ceph_version'], 'server_hostname': server['hostname'], 'service': service, @@ -41,7 +45,7 @@ class DaemonsAndPools(RemoteViewCache): daemon = dict(daemon, **self.get_daemon_health(daemon)) daemons.append(daemon) - return sorted(daemons, key=lambda k: k['id']) + return sorted(daemons, key=lambda k: k['instance_id']) def get_daemon_health(self, daemon): health = { -- 2.39.5
ID InstanceID Hostname Version Health
{daemon.id} {daemon.instance_id}{daemon.id} {daemon.server_hostname} {daemon.version | short_version} {daemon.health}