]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #34856 from jschmid1/cephadm_osdspec_affinity
authorSebastian Wagner <sebastian.wagner@suse.com>
Tue, 5 May 2020 14:00:12 +0000 (16:00 +0200)
committerGitHub <noreply@github.com>
Tue, 5 May 2020 14:00:12 +0000 (16:00 +0200)
mgr/cephadm: add support for proper osd daemon tracking

Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
1  2 
src/pybind/mgr/cephadm/module.py
src/pybind/mgr/orchestrator/_interface.py

index d8237588bbba64e80ff71fee2bd46da46fc94844,00aced7eca63d02eecffa98b7da65672f297fd33..07cf44ef0d24d6e5fee602f583f7f9cb9bb50d7b
@@@ -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: