]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: check_for_moved_osds: verify OSDs are up
authorSebastian Wagner <sewagner@redhat.com>
Thu, 9 Sep 2021 11:29:56 +0000 (13:29 +0200)
committerSebastian Wagner <sewagner@redhat.com>
Mon, 3 Jan 2022 13:59:53 +0000 (14:59 +0100)
Signed-off-by: Sebastian Wagner <sewagner@redhat.com>
(cherry picked from commit 47dd258cf56039d510c8d8a0d275c9104b9f49eb)

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

index 6ca92478c4acdb551df1910f234422a85f4926a4..3343c344e9e9d9cf98f6929f458bd52af0efe95c 100644 (file)
@@ -2255,6 +2255,15 @@ Then run the following:
                 r[str(osd_id)] = o.get('uuid', '')
         return r
 
+    def get_osd_by_id(self, osd_id: int) -> Optional[Dict[str, Any]]:
+        osd = [x for x in self.get('osd_map')['osds']
+               if x['osd'] == osd_id]
+
+        if len(osd) != 1:
+            return None
+
+        return osd[0]
+
     def _trigger_preview_refresh(self,
                                  specs: Optional[List[DriveGroupSpec]] = None,
                                  service_name: Optional[str] = None,
index adea058d776691e9097b3acdf9dbee1d1244b0bf..9ee940cd9b6989c7b35d6424d3087f6d7afb29ee 100644 (file)
@@ -553,7 +553,7 @@ class CephadmServe:
         for dd in self.mgr.cache.get_daemons_by_type('osd'):
             assert dd.daemon_id
             all_osds[int(dd.daemon_id)].append(dd)
-        for dds in all_osds.values():
+        for osd_id, dds in all_osds.items():
             if len(dds) <= 1:
                 continue
             running = [dd for dd in dds if dd.status == DaemonDescriptionStatus.running]
@@ -562,6 +562,9 @@ class CephadmServe:
             logger.info(msg)
             if len(running) != 1:
                 continue
+            osd = self.mgr.get_osd_by_id(osd_id)
+            if not osd or not osd['up']:
+                continue
             for e in error:
                 assert e.hostname
                 try:
index d20787a311d5e0ef9b8da564460a144a3dd30e81..3b717c502798936d5e3ebfbed935f5d4f680ba36 100644 (file)
@@ -75,6 +75,7 @@ def with_osd_daemon(cephadm_module: CephadmOrchestrator, _run_cephadm, host: str
             {
                 'osd': 1,
                 'up_from': 0,
+                'up': True,
                 'uuid': 'uuid'
             }
         ]