From: Jason Dillaman Date: Thu, 30 Nov 2017 19:06:32 +0000 (-0500) Subject: mgr/dashboard: use unique instance id as daemon identifier X-Git-Tag: wip-pdonnell-testing-20180317.202121~827^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=b89ac7ca4d956a354841812c230e247034eb39a5;p=ceph-ci.git mgr/dashboard: use unique instance id as daemon identifier Signed-off-by: Jason Dillaman --- 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 = {
ID InstanceID Hostname Version Health
{daemon.id} {daemon.instance_id}{daemon.id} {daemon.server_hostname} {daemon.version | short_version} {daemon.health}