From a505a2248bcce45e7d43f90d6f20e72432cb1ca8 Mon Sep 17 00:00:00 2001 From: Guillaume Abrioux Date: Wed, 28 Jan 2026 13:10:26 +0100 Subject: [PATCH] node-proxy: use safe field access in storage update Replace direct dictionary access with .get() method when processing storage fields to handle missing optional fields gracefully. (extra change: extract get_members_names() call for better readability.) Fixes: https://tracker.ceph.com/issues/74749 Signed-off-by: Guillaume Abrioux --- src/ceph-node-proxy/ceph_node_proxy/redfishdellsystem.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ceph-node-proxy/ceph_node_proxy/redfishdellsystem.py b/src/ceph-node-proxy/ceph_node_proxy/redfishdellsystem.py index 8d611e2148b..b746cbeb63a 100644 --- a/src/ceph-node-proxy/ceph_node_proxy/redfishdellsystem.py +++ b/src/ceph-node-proxy/ceph_node_proxy/redfishdellsystem.py @@ -132,7 +132,8 @@ class RedfishDellSystem(BaseRedfishSystem): 'PhysicalLocation'] result: Dict[str, Dict[str, Dict]] = dict() self.log.debug('Updating storage') - for member in self.endpoints['systems'].get_members_names(): + members_names = self.endpoints['systems'].get_members_names() + for member in members_names: result[member] = {} members_data = self.endpoints['systems'][member]['Storage'].get_members_data() for entity in members_data: @@ -142,7 +143,7 @@ class RedfishDellSystem(BaseRedfishSystem): result[member][drive_id] = dict() result[member][drive_id]['redfish_endpoint'] = data['@odata.id'] for field in fields: - result[member][drive_id][to_snake_case(field)] = data[field] + result[member][drive_id][to_snake_case(field)] = data.get(field) result[member][drive_id]['entity'] = entity self._sys['storage'] = normalize_dict(result) -- 2.47.3