From: Guillaume Abrioux Date: Tue, 9 Apr 2024 15:13:19 +0000 (+0000) Subject: node-proxy: do not fail when empty data is received X-Git-Tag: v19.2.1~323^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3d4d377ed62be7099e3b0f78d564ac42786c80de;p=ceph.git node-proxy: do not fail when empty data is received If for some reason the redfish returns empty data, node-proxy fails because it can't access non-existing keys in `_sys` dict. It basically throws a KeyError exception. Fixes: https://tracker.ceph.com/issues/65395 Signed-off-by: Guillaume Abrioux (cherry picked from commit 9f334105389ee4e2661b7072e0c98bcc5788e319) --- diff --git a/src/ceph-node-proxy/ceph_node_proxy/redfishdellsystem.py b/src/ceph-node-proxy/ceph_node_proxy/redfishdellsystem.py index f0d24c667c9..ffd88652fbe 100644 --- a/src/ceph-node-proxy/ceph_node_proxy/redfishdellsystem.py +++ b/src/ceph-node-proxy/ceph_node_proxy/redfishdellsystem.py @@ -45,31 +45,31 @@ class RedfishDellSystem(BaseRedfishSystem): return normalize_dict(result) def get_sn(self) -> str: - return self._sys['SKU'] + return self._sys.get('SKU', '') def get_status(self) -> Dict[str, Dict[str, Dict]]: - return self._sys['status'] + return self._sys.get('status', {}) def get_memory(self) -> Dict[str, Dict[str, Dict]]: - return self._sys['memory'] + return self._sys.get('memory', {}) def get_processors(self) -> Dict[str, Dict[str, Dict]]: - return self._sys['processors'] + return self._sys.get('processors', {}) def get_network(self) -> Dict[str, Dict[str, Dict]]: - return self._sys['network'] + return self._sys.get('network', {}) def get_storage(self) -> Dict[str, Dict[str, Dict]]: - return self._sys['storage'] + return self._sys.get('storage', {}) def get_firmwares(self) -> Dict[str, Dict[str, Dict]]: - return self._sys['firmwares'] + return self._sys.get('firmwares', {}) def get_power(self) -> Dict[str, Dict[str, Dict]]: - return self._sys['power'] + return self._sys.get('power', {}) def get_fans(self) -> Dict[str, Dict[str, Dict]]: - return self._sys['fans'] + return self._sys.get('fans', {}) def _update_network(self) -> None: fields = ['Description', 'Name', 'SpeedMbps', 'Status']