From e316fa5211791e628c7c238940bfdeed10935049 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 8 Nov 2019 09:26:44 -0600 Subject: [PATCH] mgr/ssh: factor out update_{rgw,mds} into common helper Signed-off-by: Sage Weil --- src/pybind/mgr/ssh/module.py | 49 ++++++++++++++---------------------- 1 file changed, 19 insertions(+), 30 deletions(-) diff --git a/src/pybind/mgr/ssh/module.py b/src/pybind/mgr/ssh/module.py index 51220703eeb23..5e8ea6639fe3f 100644 --- a/src/pybind/mgr/ssh/module.py +++ b/src/pybind/mgr/ssh/module.py @@ -833,6 +833,23 @@ class SSHOrchestrator(MgrModule, orchestrator.OrchestratorClientMixin): self.service_cache.invalidate(host) return "Removed {} from host '{}'".format(name, host) + def _update_service(self, daemon_type, add_func, spec): + daemons = self._get_services(daemon_type, service_name=spec.name) + results = [] + if len(daemons) > spec.count: + # remove some + to_remove = len(daemons) - spec.count + for d in daemons[0:to_remove]: + results.append(self._worker_pool.apply_async( + self._remove_daemon, + ('%s.%s' % (d.service_type, d.service_instance), + d.nodename))) + elif len(daemons) < spec.count: + # add some + spec.count -= len(daemons) + return add_func(spec) + return SSHWriteCompletion(results) + def _create_mon(self, host, network): """ Create a new monitor on the given host. @@ -996,21 +1013,7 @@ class SSHOrchestrator(MgrModule, orchestrator.OrchestratorClientMixin): return SSHWriteCompletion(results) def update_mds(self, spec): - daemons = self._get_services('mds', service_name=spec.name) - results = [] - if len(daemons) > spec.count: - # remove some - to_remove = len(daemons) - spec.count - for d in daemons[0:to_remove]: - results.append(self._worker_pool.apply_async( - self._remove_daemon, - ('%s.%s' % (d.service_type, d.service_instance), - d.nodename))) - elif len(daemons) < spec.count: - # add some - spec.count -= len(daemons) - return self.add_mds(spec) - return SSHWriteCompletion(results) + return self._update_service('mds', self.add_mds, spec) def _create_mds(self, mds_id, host): # get mgr. key @@ -1090,18 +1093,4 @@ class SSHOrchestrator(MgrModule, orchestrator.OrchestratorClientMixin): return SSHWriteCompletion(results) def update_rgw(self, spec): - daemons = self._get_services('rgw', service_name=spec.name) - results = [] - if len(daemons) > spec.count: - # remove some - to_remove = len(daemons) - spec.count - for d in daemons[0:to_remove]: - results.append(self._worker_pool.apply_async( - self._remove_daemon, - ('%s.%s' % (d.service_type, d.service_instance), - d.nodename))) - elif len(daemons) < spec.count: - # add some - spec.count -= len(daemons) - return self.add_rgw(spec) - return SSHWriteCompletion(results) + return self._update_service('rgw', self.add_rgw, spec) -- 2.39.5