]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: move _refresh_host_devices to serve.py
authorSebastian Wagner <sebastian.wagner@suse.com>
Fri, 11 Sep 2020 11:05:06 +0000 (13:05 +0200)
committerSebastian Wagner <sebastian.wagner@suse.com>
Wed, 18 Nov 2020 10:52:17 +0000 (11:52 +0100)
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit f674fa22a78e84bf573b9c7f2846e7032a1621f3)

src/pybind/mgr/cephadm/module.py
src/pybind/mgr/cephadm/serve.py

index fa82008b3f03d43190c3cb42d721dbd982d4686a..84708ed96c9d108faf2272caa65662c41fce2863 100644 (file)
@@ -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()
 
index 8fc3703c63c80a4240ccf5132645c0ac55fc6b49..8fde738fcfc1d8912994ae1f45925403ec60e2e8 100644 (file)
@@ -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