From e8af131b016e118fb01a0eb24c0a7f9490ae9301 Mon Sep 17 00:00:00 2001 From: Sebastian Wagner Date: Wed, 10 Nov 2021 13:46:48 +0100 Subject: [PATCH] mgr/cephadm: check_for_moved_osds: don't run post_remove Signed-off-by: Sebastian Wagner (cherry picked from commit 70d27f24f837f2d962ce7d1f2672b0d71f5f2f7a) --- src/pybind/mgr/cephadm/serve.py | 9 +++++---- src/pybind/mgr/cephadm/tests/test_cephadm.py | 12 ++++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/pybind/mgr/cephadm/serve.py b/src/pybind/mgr/cephadm/serve.py index 9ee940cd9b698..725c39e191f0b 100644 --- a/src/pybind/mgr/cephadm/serve.py +++ b/src/pybind/mgr/cephadm/serve.py @@ -568,7 +568,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: @@ -1125,7 +1125,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 """ @@ -1150,8 +1150,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) diff --git a/src/pybind/mgr/cephadm/tests/test_cephadm.py b/src/pybind/mgr/cephadm/tests/test_cephadm.py index b2d77ab0c7812..c7ac8e626cf44 100644 --- a/src/pybind/mgr/cephadm/tests/test_cephadm.py +++ b/src/pybind/mgr/cephadm/tests/test_cephadm.py @@ -125,6 +125,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): @@ -962,6 +963,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", [ -- 2.39.5