From: Sage Weil Date: Wed, 23 Oct 2019 21:15:23 +0000 (-0500) Subject: mgr/ssh: (broken) mds rm X-Git-Tag: v15.1.0~1123^2~9 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5f5fa157e3545ab59f5492288b6206bcfea35650;p=ceph.git mgr/ssh: (broken) mds rm This wrong because it takes a daemon name, not a group name, and because it relies on mds_metadata--connected daemons, not deployed daemons. Must fix once we have better inventory. Signed-off-by: Sage Weil --- diff --git a/src/pybind/mgr/ssh/module.py b/src/pybind/mgr/ssh/module.py index 54154e8cabe9..75d9317eea1d 100644 --- a/src/pybind/mgr/ssh/module.py +++ b/src/pybind/mgr/ssh/module.py @@ -782,3 +782,23 @@ class SSHOrchestrator(MgrModule, orchestrator.Orchestrator): 'mds', 'allow'], }) return self._create_daemon('mds', mds_id, host, keyring) + + def remove_mds(self, mds_id): + # FIXME: this location should come from the inventory, not + # mds_metadata, so that we can remove/clean-up daemons that + # aren't correctly starting. + self.log.debug('metadtata %s' % self.get('mds_metadata')) + host = self.get('mds_metadata').get(mds_id, {}).get('hostname') + if not host: + raise RuntimeError('Unable to identify location of mds.%s' % mds_id) + return SSHWriteCompletion([ + self._worker_pool.apply_async(self._remove_mds, (mds_id, host)) + ]) + + def _remove_mds(self, mds_id, host): + name = 'mds.' + mds_id + out, code = self._run_ceph_daemon( + host, name, 'rm-daemon', + ['--name', name]) + self.log.debug('remove_mds code %s out %s' % (code, out)) + return "Removed {} from host '{}'".format(name, host)