]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/cephadm: check_for_moved_osds: don't run post_remove
authorSebastian Wagner <sewagner@redhat.com>
Wed, 10 Nov 2021 12:46:48 +0000 (13:46 +0100)
committerSebastian Wagner <sewagner@redhat.com>
Wed, 10 Nov 2021 13:06:27 +0000 (14:06 +0100)
Signed-off-by: Sebastian Wagner <sewagner@redhat.com>
src/pybind/mgr/cephadm/serve.py
src/pybind/mgr/cephadm/tests/test_cephadm.py

index c8e81793da97cb6abf814c72bd3240d517346002..80de87d404ceb4496dc05b0f8cbb948748e6f327 100644 (file)
@@ -536,7 +536,7 @@ class CephadmServe:
             for e in error:
                 assert e.hostname
                 try:
-                    self._remove_daemon(e.name(), e.hostname)
+                    self._remove_daemon(e.name(), e.hostname, no_post_remove=True)
                     self.mgr.events.for_daemon(
                         e.name(), 'INFO', f"Removed duplicated daemon on host '{e.hostname}'")
                 except OrchestratorError as ex:
@@ -1136,7 +1136,7 @@ class CephadmServe:
                     self.mgr.cephadm_services[servict_type].post_remove(dd, is_failed_deploy=True)
                 raise
 
-    def _remove_daemon(self, name: str, host: str) -> str:
+    def _remove_daemon(self, name: str, host: str, no_post_remove: bool = False) -> str:
         """
         Remove a daemon
         """
@@ -1161,8 +1161,9 @@ class CephadmServe:
                 self.mgr.cache.rm_daemon(host, name)
             self.mgr.cache.invalidate_host_daemons(host)
 
-            self.mgr.cephadm_services[daemon_type_to_service(
-                daemon_type)].post_remove(daemon, is_failed_deploy=False)
+            if not no_post_remove:
+                self.mgr.cephadm_services[daemon_type_to_service(
+                    daemon_type)].post_remove(daemon, is_failed_deploy=False)
 
             return "Removed {} from host '{}'".format(name, host)
 
index a3a81f994648357529a98630006c5f8461b67093..0e6a46e737df65071da7273319b63fb8b26a182d 100644 (file)
@@ -126,6 +126,7 @@ def with_osd_daemon(cephadm_module: CephadmOrchestrator, _run_cephadm, host: str
     dd = cephadm_module.cache.get_daemon(f'osd.{osd_id}', host=host)
     assert dd.name() == f'osd.{osd_id}'
     yield dd
+    cephadm_module._remove_daemons([(f'osd.{osd_id}', host)])
 
 
 class TestCephadm(object):
@@ -966,6 +967,17 @@ class TestCephadm(object):
                                               "Removed duplicated daemon on host 'host2'"),
                         ]
 
+                        with pytest.raises(AssertionError):
+                            cephadm_module.assert_issued_mon_command({
+                                'prefix': 'auth rm',
+                                'entity': 'osd.1',
+                            })
+
+                cephadm_module.assert_issued_mon_command({
+                    'prefix': 'auth rm',
+                    'entity': 'osd.1',
+                })
+
     @pytest.mark.parametrize(
         "spec",
         [