From 63f7536594ce43cfe015202adf84d6c90e1c99ba Mon Sep 17 00:00:00 2001 From: Bill Dodd Date: Sat, 19 Jan 2019 15:27:57 -0600 Subject: [PATCH] get standard properties for each firmware entry (#51028) --- lib/ansible/module_utils/redfish_utils.py | 29 +++++++++++++---------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/lib/ansible/module_utils/redfish_utils.py b/lib/ansible/module_utils/redfish_utils.py index b3816755606..adbb3316d2f 100644 --- a/lib/ansible/module_utils/redfish_utils.py +++ b/lib/ansible/module_utils/redfish_utils.py @@ -506,26 +506,29 @@ class RedfishUtils(object): def get_firmware_inventory(self): result = {} - firmware = {} response = self.get_request(self.root_uri + self.firmware_uri) if response['ret'] is False: return response result['ret'] = True data = response['data'] + result['entries'] = [] for device in data[u'Members']: - d = device[u'@odata.id'] - d = d.replace(self.firmware_uri, "") # leave just device name - if "Installed" in d: - uri = self.root_uri + self.firmware_uri + d - # Get details for each device that is relevant - response = self.get_request(uri) - if response['ret'] is False: - return response - result['ret'] = True - data = response['data'] - firmware[data[u'Name']] = data[u'Version'] - result["entries"] = firmware + uri = self.root_uri + device[u'@odata.id'] + # Get details for each device + response = self.get_request(uri) + if response['ret'] is False: + return response + result['ret'] = True + data = response['data'] + firmware = {} + # Get these standard properties if present + for key in ['Name', 'Id', 'Status', 'Version', 'Updateable', + 'SoftwareId', 'LowestSupportedVersion', 'Manufacturer', + 'ReleaseDate']: + if key in data: + firmware[key] = data.get(key) + result['entries'].append(firmware) return result def get_manager_attributes(self):