From 183f7c34a303333fa5fdfbfa79f18bed725c3a83 Mon Sep 17 00:00:00 2001 From: Michael Fritch Date: Fri, 11 Sep 2020 08:10:26 -0600 Subject: [PATCH] mgr/cephadm: pass `DaemonDescription` during pre/post remove add more context than simply passing the `daemon_id` Signed-off-by: Michael Fritch --- src/pybind/mgr/cephadm/module.py | 14 +++++++------- .../mgr/cephadm/services/cephadmservice.py | 16 ++++++++++------ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/pybind/mgr/cephadm/module.py b/src/pybind/mgr/cephadm/module.py index d188637baa425..24d3eb9e46d53 100644 --- a/src/pybind/mgr/cephadm/module.py +++ b/src/pybind/mgr/cephadm/module.py @@ -2038,14 +2038,14 @@ To check that the host is reachable: Remove a daemon """ (daemon_type, daemon_id) = name.split('.', 1) + daemon = orchestrator.DaemonDescription( + daemon_type=daemon_type, + daemon_id=daemon_id, + hostname=host) - with set_exception_subject('service', orchestrator.DaemonDescription( - daemon_type=daemon_type, - daemon_id=daemon_id, - hostname=host, - ).service_id(), overwrite=True): + with set_exception_subject('service', daemon.service_id(), overwrite=True): - self.cephadm_services[daemon_type].pre_remove(daemon_id) + self.cephadm_services[daemon_type].pre_remove(daemon) args = ['--name', name, '--force'] self.log.info('Removing daemon %s from %s' % (name, host)) @@ -2056,7 +2056,7 @@ To check that the host is reachable: self.cache.rm_daemon(host, name) self.cache.invalidate_host_daemons(host) - self.cephadm_services[daemon_type].post_remove(daemon_id) + self.cephadm_services[daemon_type].post_remove(daemon) return "Removed {} from host '{}'".format(name, host) diff --git a/src/pybind/mgr/cephadm/services/cephadmservice.py b/src/pybind/mgr/cephadm/services/cephadmservice.py index 73b7c88d3c5c4..0593b39d96930 100644 --- a/src/pybind/mgr/cephadm/services/cephadmservice.py +++ b/src/pybind/mgr/cephadm/services/cephadmservice.py @@ -212,17 +212,19 @@ class CephadmService(metaclass=ABCMeta): logger.info(out) return HandleCommandResult(r.retval, out, r.stderr) - def pre_remove(self, daemon_id: str) -> None: + def pre_remove(self, daemon: DaemonDescription) -> None: """ Called before the daemon is removed. """ - logger.debug(f'Pre remove daemon {self.TYPE}.{daemon_id}') + assert self.TYPE == daemon.daemon_type + logger.debug(f'Pre remove daemon {self.TYPE}.{daemon.daemon_id}') - def post_remove(self, daemon_id: str) -> None: + def post_remove(self, daemon: DaemonDescription) -> None: """ Called after the daemon is removed. """ - logger.debug(f'Post remove daemon {self.TYPE}.{daemon_id}') + assert self.TYPE == daemon.daemon_type + logger.debug(f'Post remove daemon {self.TYPE}.{daemon.daemon_id}') class CephService(CephadmService): @@ -359,8 +361,10 @@ class MonService(CephService): raise OrchestratorError( 'Removing %s would break mon quorum (new quorum %s, new mons %s)' % (mon_id, new_quorum, new_mons)) - def pre_remove(self, daemon_id: str) -> None: - super().pre_remove(daemon_id) + def pre_remove(self, daemon: DaemonDescription) -> None: + super().pre_remove(daemon) + + daemon_id: str = daemon.daemon_id self._check_safe_to_destroy(daemon_id) # remove mon from quorum before we destroy the daemon -- 2.39.5