continue
if service_name is not None and service_name != nm:
continue
+
+ if spec.service_type != 'osd':
+ size = spec.placement.get_target_count(self._schedulable_hosts())
+ else:
+ # osd counting is special
+ size = 0
+
sm[nm] = orchestrator.ServiceDescription(
spec=spec,
- size=spec.placement.get_target_count(self._schedulable_hosts()),
+ size=size,
running=0,
events=self.events.get_for_service(spec.service_name()),
created=self.spec_store.spec_created[nm],
dds = wait(cephadm_module, cephadm_module.list_daemons())
own_dds = [dd for dd in dds if dd.service_name() == spec.service_name()]
- if host:
+ if host and spec.service_type != 'osd':
assert own_dds
yield [dd.name() for dd in own_dds]
with with_osd_daemon(cephadm_module, _run_cephadm, 'test', 1, ceph_volume_lvm_list=_ceph_volume_list):
pass
+ @mock.patch("cephadm.serve.CephadmServe._run_cephadm")
+ def test_osd_count(self, _run_cephadm, cephadm_module: CephadmOrchestrator):
+ _run_cephadm.return_value = ('{}', '', 0)
+ dg = DriveGroupSpec(service_id='', data_devices=DeviceSelection(all=True))
+ with with_host(cephadm_module, 'test', refresh_hosts=False):
+ with with_service(cephadm_module, dg, host='test'):
+ with with_osd_daemon(cephadm_module, _run_cephadm, 'test', 1):
+ assert wait(cephadm_module, cephadm_module.describe_service())[0].size == 1
+
@mock.patch("cephadm.serve.CephadmServe._run_cephadm", _run_cephadm('[]'))
def test_host_rm_last_admin(self, cephadm_module: CephadmOrchestrator):
with pytest.raises(OrchestratorError):