From: Sebastian Wagner Date: Tue, 5 May 2020 14:00:12 +0000 (+0200) Subject: Merge pull request #34856 from jschmid1/cephadm_osdspec_affinity X-Git-Tag: v16.1.0~2418 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=91afff19d0deb5d380c63b3ab0512ad69a4902ac;p=ceph.git Merge pull request #34856 from jschmid1/cephadm_osdspec_affinity mgr/cephadm: add support for proper osd daemon tracking Reviewed-by: Sebastian Wagner --- 91afff19d0deb5d380c63b3ab0512ad69a4902ac diff --cc src/pybind/mgr/cephadm/module.py index d8237588bbba6,00aced7eca63d..07cf44ef0d24d --- a/src/pybind/mgr/cephadm/module.py +++ b/src/pybind/mgr/cephadm/module.py @@@ -2044,17 -2072,18 +2060,20 @@@ class CephadmOrchestrator(orchestrator. def apply_drivegroups(self, specs: List[DriveGroupSpec]): return [self._apply(spec) for spec in specs] + def get_osdspec_affinity(self, osd_id: str) -> str: + return self.get('osd_metadata').get(osd_id, {}).get('osdspec_affinity', '') + def find_destroyed_osds(self) -> Dict[str, List[str]]: osd_host_map: Dict[str, List[str]] = dict() - ret, out, err = self.mon_command({ - 'prefix': 'osd tree', - 'states': ['destroyed'], - 'format': 'json' - }) - if ret != 0: - raise OrchestratorError(f"Caught error on calling 'osd tree destroyed' -> {err}") + try: + ret, out, err = self.check_mon_command({ + 'prefix': 'osd tree', + 'states': ['destroyed'], + 'format': 'json' + }) + except MonCommandFailed as e: + logger.exception('osd tree failed') + raise OrchestratorError(str(e)) try: tree = json.loads(out) except json.decoder.JSONDecodeError: