From ad4ea787d063ba65269f38f185ff18a327cb7bbb Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 11 Jan 2021 12:41:12 -0600 Subject: [PATCH] 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 --- src/pybind/mgr/cephadm/inventory.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/pybind/mgr/cephadm/inventory.py b/src/pybind/mgr/cephadm/inventory.py index a643eb15341b0..ebae690483c68 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) -- 2.39.5