Feat/add GetChassisInventory to Chassis category of redfish_facts (#54269)
* Implement get_chassis_inventory() in redfish_utils * Add GetChassisInventory command to redfish_facts
This commit is contained in:
parent
2307797a76
commit
3cebb79328
2 changed files with 35 additions and 1 deletions
|
@ -967,6 +967,30 @@ class RedfishUtils(object):
|
||||||
return response
|
return response
|
||||||
return {'ret': True, 'changed': True, 'msg': "Modified BIOS attribute"}
|
return {'ret': True, 'changed': True, 'msg': "Modified BIOS attribute"}
|
||||||
|
|
||||||
|
def get_chassis_inventory(self):
|
||||||
|
result = {}
|
||||||
|
chassis_results = []
|
||||||
|
|
||||||
|
# Get these entries, but does not fail if not found
|
||||||
|
properties = ['ChassisType', 'PartNumber', 'AssetTag',
|
||||||
|
'Manufacturer', 'IndicatorLED', 'SerialNumber', 'Model']
|
||||||
|
|
||||||
|
# Go through list
|
||||||
|
for chassis_uri in self.chassis_uri_list:
|
||||||
|
response = self.get_request(self.root_uri + chassis_uri)
|
||||||
|
if response['ret'] is False:
|
||||||
|
return response
|
||||||
|
result['ret'] = True
|
||||||
|
data = response['data']
|
||||||
|
chassis_result = {}
|
||||||
|
for property in properties:
|
||||||
|
if property in data:
|
||||||
|
chassis_result[property] = data[property]
|
||||||
|
chassis_results.append(chassis_result)
|
||||||
|
|
||||||
|
result["entries"] = chassis_results
|
||||||
|
return result
|
||||||
|
|
||||||
def get_fan_inventory(self):
|
def get_fan_inventory(self):
|
||||||
result = {}
|
result = {}
|
||||||
fan_results = []
|
fan_results = []
|
||||||
|
|
|
@ -137,6 +137,14 @@ EXAMPLES = '''
|
||||||
username: "{{ username }}"
|
username: "{{ username }}"
|
||||||
password: "{{ password }}"
|
password: "{{ password }}"
|
||||||
|
|
||||||
|
- name: Get chassis inventory
|
||||||
|
redfish_facts:
|
||||||
|
category: Chassis
|
||||||
|
command: GetChassisInventory
|
||||||
|
baseuri: "{{ baseuri }}"
|
||||||
|
username: "{{ username }}"
|
||||||
|
password: "{{ password }}"
|
||||||
|
|
||||||
- name: Get all information available in the Manager category
|
- name: Get all information available in the Manager category
|
||||||
redfish_facts:
|
redfish_facts:
|
||||||
category: Manager
|
category: Manager
|
||||||
|
@ -178,7 +186,7 @@ CATEGORY_COMMANDS_ALL = {
|
||||||
"GetMemoryInventory", "GetNicInventory",
|
"GetMemoryInventory", "GetNicInventory",
|
||||||
"GetStorageControllerInventory", "GetDiskInventory",
|
"GetStorageControllerInventory", "GetDiskInventory",
|
||||||
"GetBiosAttributes", "GetBootOrder", "GetBootOverride"],
|
"GetBiosAttributes", "GetBootOrder", "GetBootOverride"],
|
||||||
"Chassis": ["GetFanInventory", "GetPsuInventory", "GetChassisPower", "GetChassisThermals"],
|
"Chassis": ["GetFanInventory", "GetPsuInventory", "GetChassisPower", "GetChassisThermals", "GetChassisInventory"],
|
||||||
"Accounts": ["ListUsers"],
|
"Accounts": ["ListUsers"],
|
||||||
"Update": ["GetFirmwareInventory", "GetFirmwareUpdateCapabilities"],
|
"Update": ["GetFirmwareInventory", "GetFirmwareUpdateCapabilities"],
|
||||||
"Manager": ["GetManagerNicInventory", "GetLogs"],
|
"Manager": ["GetManagerNicInventory", "GetLogs"],
|
||||||
|
@ -293,6 +301,8 @@ def main():
|
||||||
result["thermals"] = rf_utils.get_chassis_thermals()
|
result["thermals"] = rf_utils.get_chassis_thermals()
|
||||||
elif command == "GetChassisPower":
|
elif command == "GetChassisPower":
|
||||||
result["chassis_power"] = rf_utils.get_chassis_power()
|
result["chassis_power"] = rf_utils.get_chassis_power()
|
||||||
|
elif command == "GetChassisInventory":
|
||||||
|
result["chassis"] = rf_utils.get_chassis_inventory()
|
||||||
|
|
||||||
elif category == "Accounts":
|
elif category == "Accounts":
|
||||||
# execute only if we find an Account service resource
|
# execute only if we find an Account service resource
|
||||||
|
|
Loading…
Reference in a new issue