From: Sage Weil Date: Fri, 8 Nov 2019 15:26:44 +0000 (-0600) Subject: mgr/ssh: factor out update_{rgw,mds} into common helper X-Git-Tag: v15.1.0~977^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e316fa5211791e628c7c238940bfdeed10935049;p=ceph.git mgr/ssh: factor out update_{rgw,mds} into common helper Signed-off-by: Sage Weil --- diff --git a/src/pybind/mgr/ssh/module.py b/src/pybind/mgr/ssh/module.py index 51220703eeb2..5e8ea6639fe3 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)