From: Sebastian Wagner Date: Fri, 11 Sep 2020 11:05:06 +0000 (+0200) Subject: mgr/cephadm: move _refresh_host_devices to serve.py X-Git-Tag: v15.2.8~14^2~29 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e77f092cfc6af12a3fbb4e497e0c4e9f93cf94da;p=ceph.git mgr/cephadm: move _refresh_host_devices to serve.py Signed-off-by: Sebastian Wagner (cherry picked from commit f674fa22a78e84bf573b9c7f2846e7032a1621f3) --- diff --git a/src/pybind/mgr/cephadm/module.py b/src/pybind/mgr/cephadm/module.py index fa82008b3f03..84708ed96c9d 100644 --- a/src/pybind/mgr/cephadm/module.py +++ b/src/pybind/mgr/cephadm/module.py @@ -1364,38 +1364,6 @@ To check that the host is reachable: self.log.debug(f'Refreshed OSDSpec previews for host <{host}>') return True - def _refresh_host_devices(self, host) -> Optional[str]: - try: - out, err, code = self._run_cephadm( - host, 'osd', - 'ceph-volume', - ['--', 'inventory', '--format=json', '--filter-for-batch']) - if code: - return 'host %s ceph-volume inventory returned %d: %s' % ( - host, code, err) - except Exception as e: - return 'host %s ceph-volume inventory failed: %s' % (host, e) - devices = json.loads(''.join(out)) - try: - out, err, code = self._run_cephadm( - host, 'mon', - 'list-networks', - [], - no_fsid=True) - if code: - return 'host %s list-networks returned %d: %s' % ( - host, code, err) - except Exception as e: - return 'host %s list-networks failed: %s' % (host, e) - networks = json.loads(''.join(out)) - self.log.debug('Refreshed host %s devices (%d) networks (%s)' % ( - host, len(devices), len(networks))) - devices = inventory.Devices.from_json(devices) - self.cache.update_host_devices_networks(host, devices.devices, networks) - self.update_osdspec_previews(host) - self.cache.save_host(host) - return None - def _deploy_etc_ceph_ceph_conf(self, host: str) -> Optional[str]: config = self.get_minimal_ceph_conf() diff --git a/src/pybind/mgr/cephadm/serve.py b/src/pybind/mgr/cephadm/serve.py index 8fc3703c63c8..8fde738fcfc1 100644 --- a/src/pybind/mgr/cephadm/serve.py +++ b/src/pybind/mgr/cephadm/serve.py @@ -3,6 +3,8 @@ import json import logging from typing import TYPE_CHECKING, Optional +from ceph.deployment import inventory + import orchestrator from cephadm.utils import forall_hosts, cephadmNoImage, str_to_datetime from orchestrator import OrchestratorError @@ -101,7 +103,7 @@ class CephadmServe: if self.mgr.cache.host_needs_device_refresh(host): self.log.debug('refreshing %s devices' % host) - r = self.mgr._refresh_host_devices(host) + r = self._refresh_host_devices(host) if r: failures.append(r) @@ -217,3 +219,35 @@ class CephadmServe: self.mgr.cache.update_host_daemons(host, dm) self.mgr.cache.save_host(host) return None + + def _refresh_host_devices(self, host) -> Optional[str]: + try: + out, err, code = self.mgr._run_cephadm( + host, 'osd', + 'ceph-volume', + ['--', 'inventory', '--format=json', '--filter-for-batch']) + if code: + return 'host %s ceph-volume inventory returned %d: %s' % ( + host, code, err) + except Exception as e: + return 'host %s ceph-volume inventory failed: %s' % (host, e) + devices = json.loads(''.join(out)) + try: + out, err, code = self.mgr._run_cephadm( + host, 'mon', + 'list-networks', + [], + no_fsid=True) + if code: + return 'host %s list-networks returned %d: %s' % ( + host, code, err) + except Exception as e: + return 'host %s list-networks failed: %s' % (host, e) + networks = json.loads(''.join(out)) + self.log.debug('Refreshed host %s devices (%d) networks (%s)' % ( + host, len(devices), len(networks))) + devices = inventory.Devices.from_json(devices) + self.mgr.cache.update_host_devices_networks(host, devices.devices, networks) + self.mgr.update_osdspec_previews(host) + self.mgr.cache.save_host(host) + return None