From: Sage Weil Date: Mon, 25 Nov 2019 14:32:59 +0000 (-0600) Subject: mgr/ssh: add/remove labels X-Git-Tag: v15.1.0~742^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=42a95e03d0d72037c1005eacb3d6a557515438b4;p=ceph.git mgr/ssh: add/remove labels Signed-off-by: Sage Weil --- diff --git a/src/pybind/mgr/ssh/module.py b/src/pybind/mgr/ssh/module.py index 98a795599e3..f5e47bffc66 100644 --- a/src/pybind/mgr/ssh/module.py +++ b/src/pybind/mgr/ssh/module.py @@ -579,6 +579,38 @@ class SSHOrchestrator(MgrModule, orchestrator.OrchestratorClientMixin): nodes = [orchestrator.InventoryNode(host_name, inventory.Devices([])) for host_name in self.inventory_cache] return orchestrator.TrivialReadCompletion(nodes) + def add_host_label(self, host, label): + if host not in self.inventory: + raise OrchestratorError('host %s does not exist' % host) + + @log_exceptions + def run(host, label): + if 'labels' not in self.inventory[host]: + self.inventory[host]['labels'] = list() + if label not in self.inventory[host]['labels']: + self.inventory[host]['labels'].append(label) + self._save_inventory() + return 'Added label %s to host %s' % (label, host) + + return SSHWriteCompletion( + self._worker_pool.apply_async(run, (host, label))) + + def remove_host_label(self, host, label): + if host not in self.inventory: + raise OrchestratorError('host %s does not exist' % host) + + @log_exceptions + def run(host, label): + if 'labels' not in self.inventory[host]: + self.inventory[host]['labels'] = list() + if label in self.inventory[host]['labels']: + self.inventory[host]['labels'].remove(label) + self._save_inventory() + return 'Removed label %s to host %s' % (label, host) + + return SSHWriteCompletion( + self._worker_pool.apply_async(run, (host, label))) + def _refresh_host_services(self, host): out, code = self._run_ceph_daemon( host, 'mon', 'ls', [], no_fsid=True)