)
def rm(self, service_name):
- # type: (str) -> None
- if service_name in self.specs:
+ # type: (str) -> bool
+ found = service_name in self.specs
+ if found:
del self.specs[service_name]
del self.spec_created[service_name]
self.mgr.set_store(SPEC_STORE_PREFIX + service_name, None)
+ return found
def find(self, service_name: Optional[str] = None) -> List[ServiceSpec]:
specs = []
@trivial_completion
def remove_service(self, service_name):
self.log.info('Remove service %s' % service_name)
- self.spec_store.rm(service_name)
- self._kick_serve_loop()
- return ['Removed service %s' % service_name]
+ found = self.spec_store.rm(service_name)
+ if found:
+ self._kick_serve_loop()
+ return ['Removed service %s' % service_name]
+ else:
+ # must be idempotent: still a success.
+ return [f'Failed to remove service. <{service_name}> was not found.']
@trivial_completion
def get_inventory(self, host_filter=None, refresh=False):
logger.debug('Combine hosts with existing daemons %s + new hosts %s' % (
existing, chosen))
return existing + chosen
-
out = wait(cephadm_module, c)
assert out == ["Removed rgw.myrgw.myhost.myid from host 'test'"]
- @mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm(
- json.dumps([
- dict(
- name='rgw.myrgw.foobar',
- style='cephadm',
- fsid='fsid',
- container_id='container_id',
- version='version',
- state='running',
- )
- ])
- ))
- def test_remove_service(self, cephadm_module):
- with self._with_host(cephadm_module, 'test'):
- c = cephadm_module.list_daemons(refresh=True)
- wait(cephadm_module, c)
- c = cephadm_module.remove_service('rgw.myrgw')
- out = wait(cephadm_module, c)
- assert out == ["Removed service rgw.myrgw"]
-
@mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm('{}'))
def test_rbd_mirror(self, cephadm_module):
with self._with_host(cephadm_module, 'test'):