From: Sage Weil Date: Mon, 11 Jan 2021 18:41:12 +0000 (-0600) Subject: mgr/cephadm: tolerate old host inventory without 'hostname' key X-Git-Tag: v16.1.0~42^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ad4ea787d063ba65269f38f185ff18a327cb7bbb;p=ceph.git mgr/cephadm: tolerate old host inventory without 'hostname' key Older cephadm clusters lack the 'hostname' key in the host spec. e.g., "cpach": {"addr": "cpach", "labels": ["mon"]}, "eutow": {"addr": "eutow", "labels": ["mon"]}, "stud": {"addr": "stud", "labels": ["mon"]}} Populate hostname from the dict key if necessary for compatibility. Signed-off-by: Sage Weil --- diff --git a/src/pybind/mgr/cephadm/inventory.py b/src/pybind/mgr/cephadm/inventory.py index a643eb15341b..ebae690483c6 100644 --- a/src/pybind/mgr/cephadm/inventory.py +++ b/src/pybind/mgr/cephadm/inventory.py @@ -31,6 +31,10 @@ class Inventory: i = self.mgr.get_store('inventory') if i: self._inventory: Dict[str, dict] = json.loads(i) + # handle old clusters missing 'hostname' key from hostspec + for k, v in self._inventory.items(): + if 'hostname' not in v: + v['hostname'] = k else: self._inventory = dict() logger.debug('Loaded inventory %s' % self._inventory)