mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Add GetFirmwareVersion command to redfish_info (#4900)
* Add GetManagerInventory command to redfish_info Adding GetManagerInventory command to redfish_info, similar to GetSystemInventory to report Manager specific information like: - FirmwareVersion - Model - ManagerType Fixes #4899 * Update changelogs/fragments/4899-add-GetManagerInventory-for-redfish_info.yml Co-authored-by: Felix Fontein <felix@fontein.de> Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
674b1da8bf
commit
93dcd3f54d
3 changed files with 36 additions and 1 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
minor_changes:
|
||||||
|
- redfish_info - add ``GetManagerInventory`` to report list of Manager inventory information (https://github.com/ansible-collections/community.general/issues/4899).
|
|
@ -3029,3 +3029,26 @@ class RedfishUtils(object):
|
||||||
if not result["entries"]:
|
if not result["entries"]:
|
||||||
return {'ret': False, 'msg': "No HostInterface objects found"}
|
return {'ret': False, 'msg': "No HostInterface objects found"}
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def get_manager_inventory(self, manager_uri):
|
||||||
|
result = {}
|
||||||
|
inventory = {}
|
||||||
|
# Get these entries, but does not fail if not found
|
||||||
|
properties = ['FirmwareVersion', 'ManagerType', 'Manufacturer', 'Model',
|
||||||
|
'PartNumber', 'PowerState', 'SerialNumber', 'Status', 'UUID']
|
||||||
|
|
||||||
|
response = self.get_request(self.root_uri + manager_uri)
|
||||||
|
if response['ret'] is False:
|
||||||
|
return response
|
||||||
|
result['ret'] = True
|
||||||
|
data = response['data']
|
||||||
|
|
||||||
|
for property in properties:
|
||||||
|
if property in data:
|
||||||
|
inventory[property] = data[property]
|
||||||
|
|
||||||
|
result["entries"] = inventory
|
||||||
|
return result
|
||||||
|
|
||||||
|
def get_multi_manager_inventory(self):
|
||||||
|
return self.aggregate_managers(self.get_manager_inventory)
|
||||||
|
|
|
@ -277,6 +277,14 @@ EXAMPLES = '''
|
||||||
baseuri: "{{ baseuri }}"
|
baseuri: "{{ baseuri }}"
|
||||||
username: "{{ username }}"
|
username: "{{ username }}"
|
||||||
password: "{{ password }}"
|
password: "{{ password }}"
|
||||||
|
|
||||||
|
- name: Get Manager Inventory
|
||||||
|
community.general.redfish_info:
|
||||||
|
category: Manager
|
||||||
|
command: GetManagerInventory
|
||||||
|
baseuri: "{{ baseuri }}"
|
||||||
|
username: "{{ username }}"
|
||||||
|
password: "{{ password }}"
|
||||||
'''
|
'''
|
||||||
|
|
||||||
RETURN = '''
|
RETURN = '''
|
||||||
|
@ -301,7 +309,7 @@ CATEGORY_COMMANDS_ALL = {
|
||||||
"Sessions": ["GetSessions"],
|
"Sessions": ["GetSessions"],
|
||||||
"Update": ["GetFirmwareInventory", "GetFirmwareUpdateCapabilities", "GetSoftwareInventory"],
|
"Update": ["GetFirmwareInventory", "GetFirmwareUpdateCapabilities", "GetSoftwareInventory"],
|
||||||
"Manager": ["GetManagerNicInventory", "GetVirtualMedia", "GetLogs", "GetNetworkProtocols",
|
"Manager": ["GetManagerNicInventory", "GetVirtualMedia", "GetLogs", "GetNetworkProtocols",
|
||||||
"GetHealthReport", "GetHostInterfaces"],
|
"GetHealthReport", "GetHostInterfaces", "GetManagerInventory"],
|
||||||
}
|
}
|
||||||
|
|
||||||
CATEGORY_COMMANDS_DEFAULT = {
|
CATEGORY_COMMANDS_DEFAULT = {
|
||||||
|
@ -485,6 +493,8 @@ def main():
|
||||||
result["health_report"] = rf_utils.get_multi_manager_health_report()
|
result["health_report"] = rf_utils.get_multi_manager_health_report()
|
||||||
elif command == "GetHostInterfaces":
|
elif command == "GetHostInterfaces":
|
||||||
result["host_interfaces"] = rf_utils.get_hostinterfaces()
|
result["host_interfaces"] = rf_utils.get_hostinterfaces()
|
||||||
|
elif command == "GetManagerInventory":
|
||||||
|
result["manager"] = rf_utils.get_multi_manager_inventory()
|
||||||
|
|
||||||
# Return data back
|
# Return data back
|
||||||
module.exit_json(redfish_facts=result)
|
module.exit_json(redfish_facts=result)
|
||||||
|
|
Loading…
Reference in a new issue