From 9f9dd866308973f2bf7d4b1fef961027688df13b Mon Sep 17 00:00:00 2001 From: Ricardo Dias Date: Wed, 21 Feb 2018 16:09:46 +0000 Subject: [PATCH] mgr/dashboard_v2: get rgw service list using CephService Signed-off-by: Ricardo Dias --- .../mgr/dashboard_v2/controllers/rgw.py | 71 +++++++++---------- 1 file changed, 35 insertions(+), 36 deletions(-) diff --git a/src/pybind/mgr/dashboard_v2/controllers/rgw.py b/src/pybind/mgr/dashboard_v2/controllers/rgw.py index 900d5b66a5b3f..4f8e169e917ed 100644 --- a/src/pybind/mgr/dashboard_v2/controllers/rgw.py +++ b/src/pybind/mgr/dashboard_v2/controllers/rgw.py @@ -3,8 +3,9 @@ from __future__ import absolute_import import json -from ..tools import ApiController, RESTController, AuthRequired from .. import logger +from ..services.ceph_service import CephService +from ..tools import ApiController, RESTController, AuthRequired @ApiController('rgw') @@ -19,28 +20,27 @@ class RgwDaemon(RESTController): def list(self): daemons = [] - for server in self.mgr.list_servers(): + for hostname, server in CephService.get_service_map('rgw').items(): for service in server['services']: - if service['type'] == 'rgw': - metadata = self.mgr.get_metadata('rgw', service['id']) - status = self.mgr.get_daemon_status('rgw', service['id']) - if 'json' in status: - try: - status = json.loads(status['json']) - except ValueError: - logger.warning("%s had invalid status json", service['id']) - status = {} - else: - logger.warning('%s has no key "json" in status', service['id']) + metadata = service['metadata'] + status = service['status'] + if 'json' in status: + try: + status = json.loads(status['json']) + except ValueError: + logger.warning("%s had invalid status json", service['id']) + status = {} + else: + logger.warning('%s has no key "json" in status', service['id']) - # extract per-daemon service data and health - daemon = { - 'id': service['id'], - 'version': metadata['ceph_version'], - 'server_hostname': server['hostname'] - } + # extract per-daemon service data and health + daemon = { + 'id': service['id'], + 'version': metadata['ceph_version'], + 'server_hostname': hostname + } - daemons.append(daemon) + daemons.append(daemon) return sorted(daemons, key=lambda k: k['id']) @@ -50,22 +50,21 @@ class RgwDaemon(RESTController): 'rgw_id': svc_id, 'rgw_status': [] } - for server in self.mgr.list_servers(): - for service in server['services']: - if service['type'] == 'rgw' and service['id'] == svc_id: - metadata = self.mgr.get_metadata('rgw', service['id']) - status = self.mgr.get_daemon_status('rgw', service['id']) - if 'json' in status: - try: - status = json.loads(status['json']) - except ValueError: - logger.warning("%s had invalid status json", service['id']) - status = {} - else: - logger.warning('%s has no key "json" in status', service['id']) + service = CephService.get_service('rgw', svc_id) + if not service: + return daemon - daemon['rgw_metadata'] = metadata - daemon['rgw_status'] = status + metadata = service['metadata'] + status = service['status'] + if 'json' in status: + try: + status = json.loads(status['json']) + except ValueError: + logger.warning("%s had invalid status json", service['id']) + status = {} + else: + logger.warning('%s has no key "json" in status', service['id']) - break + daemon['rgw_metadata'] = metadata + daemon['rgw_status'] = status return daemon -- 2.39.5