]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
python-common: do not pass affinity to ceph_volume when None 34856/head
authorJoshua Schmid <jschmid@suse.de>
Thu, 30 Apr 2020 13:27:49 +0000 (15:27 +0200)
committerJoshua Schmid <jschmid@suse.de>
Mon, 4 May 2020 10:17:49 +0000 (12:17 +0200)
Signed-off-by: Joshua Schmid <jschmid@suse.de>
src/pybind/mgr/cephadm/module.py
src/python-common/ceph/deployment/translate.py

index 4bf248dfc02854b439daafe774fae349637fec7a..00aced7eca63d02eecffa98b7da65672f297fd33 100644 (file)
@@ -2073,20 +2073,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
         return [self._apply(spec) for spec in specs]
 
     def get_osdspec_affinity(self, osd_id: str) -> str:
-        ret, out, err = self.mon_command({
-            'prefix': 'osd metadata',
-            'id': int(osd_id),
-            'format': 'json'
-        })
-        if ret != 0:
-            self.log.warning(f"Caught error on calling 'osd metadata {osd_id}' -> {err}")
-            return ''
-        try:
-            metadata = json.loads(out)
-        except json.decoder.JSONDecodeError:
-            self.log.error(f"Could not decode json -> {out}")
-            return ''
-        return metadata.get('osdspec_affinity', '')
+        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()
index 1431836b2ae999faefcf450fe99021b34fb55630..3e82a7889769e31e8d6ced1659f13748a6ba41b3 100644 (file)
@@ -101,6 +101,7 @@ class to_ceph_volume(object):
             cmd += " --report"
             cmd += " --format json"
 
-        cmd = f"CEPH_VOLUME_OSDSPEC_AFFINITY={self.spec.service_id} " + cmd
+        if self.spec.service_id is not None:
+            cmd = f"CEPH_VOLUME_OSDSPEC_AFFINITY={self.spec.service_id} " + cmd
 
         return cmd