sd.rank = int(d['rank']) if d.get('rank') is not None else None
sd.rank_generation = int(d['rank_generation']) if d.get(
'rank_generation') is not None else None
- if sd.daemon_type == 'osd':
- sd.osdspec_affinity = self.osd_service.get_osdspec_affinity(sd.daemon_id)
if 'state' in d:
sd.status_desc = d['state']
sd.status = {
for h, dm in self.cache.get_daemons_with_volatile_status():
osds_to_remove = []
for name, dd in dm.items():
- if dd.daemon_type == 'osd' and (dd.service_name() == service_name or not dd.osdspec_affinity):
+ if dd.daemon_type == 'osd' and dd.service_name() == service_name:
osds_to_remove.append(str(dd.daemon_id))
if osds_to_remove:
osds_msg[h] = osds_to_remove
error_ok=True)
return out, err, code
- def get_osdspec_affinity(self, osd_id: str) -> str:
- return self.mgr.get('osd_metadata').get(osd_id, {}).get('osdspec_affinity', '')
-
def post_remove(self, daemon: DaemonDescription, is_failed_deploy: bool) -> None:
# Do not remove the osd.N keyring, if we failed to deploy the OSD, because
# we cannot recover from it. The OSD keys are created by ceph-volume and not by
with mock.patch("cephadm.module.CephadmOrchestrator.get_ceph_option", get_ceph_option),\
mock.patch("cephadm.services.osd.RemoveUtil._run_mon_cmd"), \
mock.patch("cephadm.module.CephadmOrchestrator.get_osdmap"), \
- mock.patch("cephadm.services.osd.OSDService.get_osdspec_affinity", return_value='test_spec'), \
mock.patch("cephadm.module.CephadmOrchestrator.remote"), \
mock.patch("cephadm.agent.CephadmAgentHelpers._request_agent_acks"), \
mock.patch("cephadm.agent.CephadmAgentHelpers._apply_agent", return_value=False), \