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: v15.2.9~35^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1e8850a0a366de82cf8c8b6248e8de7e662d1822;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 (cherry picked from commit ad4ea787d063ba65269f38f185ff18a327cb7bbb) --- diff --git a/src/pybind/mgr/cephadm/inventory.py b/src/pybind/mgr/cephadm/inventory.py index 188cd0082a6..6e6813df2fa 100644 --- a/src/pybind/mgr/cephadm/inventory.py +++ b/src/pybind/mgr/cephadm/inventory.py @@ -33,6 +33,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)