]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
node-proxy: use safe field access in storage update
authorGuillaume Abrioux <gabrioux@ibm.com>
Wed, 28 Jan 2026 12:10:26 +0000 (13:10 +0100)
committerGuillaume Abrioux <gabrioux@ibm.com>
Wed, 18 Feb 2026 08:52:38 +0000 (09:52 +0100)
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 <gabrioux@ibm.com>
src/ceph-node-proxy/ceph_node_proxy/redfishdellsystem.py

index 8d611e2148b4ebfcf9861fefc3700ce7298247ec..b746cbeb63a1b207b10fbe33a9ee34d9a5a47ada 100644 (file)
@@ -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)