[PR #7081/fe3eec01 backport][stable-6] Follow DMTF redfish deprecation on StorageControllers (#7092)
Follow DMTF redfish deprecation on StorageControllers (#7081)
* Get controller information from "Controllers" field instead of "StorageControllers" which is deprecated
* Add changelog fragment
* Changelog fragment writing guide formatting
* For consistency, get_disk_inventory and get_volume_inventory use Controllers key instead of StorageControllers to obtain controller name
---------
Co-authored-by: Pierre-yves FONTANIERE <pyf@cc.in2p3.fr>
(cherry picked from commit fe3eec0122
)
Co-authored-by: Pierre-yves Fontaniere <pyfontan@cc.in2p3.fr>
pull/7100/head
parent
bcfcdd1052
commit
4205a94f0c
|
@ -0,0 +1,2 @@
|
||||||
|
minor_changes:
|
||||||
|
- redfish_utils - use ``Controllers`` key in redfish data to obtain Storage controllers properties (https://github.com/ansible-collections/community.general/pull/7081).
|
|
@ -652,7 +652,8 @@ class RedfishUtils(object):
|
||||||
properties = ['CacheSummary', 'FirmwareVersion', 'Identifiers',
|
properties = ['CacheSummary', 'FirmwareVersion', 'Identifiers',
|
||||||
'Location', 'Manufacturer', 'Model', 'Name', 'Id',
|
'Location', 'Manufacturer', 'Model', 'Name', 'Id',
|
||||||
'PartNumber', 'SerialNumber', 'SpeedGbps', 'Status']
|
'PartNumber', 'SerialNumber', 'SpeedGbps', 'Status']
|
||||||
key = "StorageControllers"
|
key = "Controllers"
|
||||||
|
deprecated_key = "StorageControllers"
|
||||||
|
|
||||||
# Find Storage service
|
# Find Storage service
|
||||||
response = self.get_request(self.root_uri + systems_uri)
|
response = self.get_request(self.root_uri + systems_uri)
|
||||||
|
@ -680,7 +681,30 @@ class RedfishUtils(object):
|
||||||
data = response['data']
|
data = response['data']
|
||||||
|
|
||||||
if key in data:
|
if key in data:
|
||||||
controller_list = data[key]
|
controllers_uri = data[key][u'@odata.id']
|
||||||
|
|
||||||
|
response = self.get_request(self.root_uri + controllers_uri)
|
||||||
|
if response['ret'] is False:
|
||||||
|
return response
|
||||||
|
result['ret'] = True
|
||||||
|
data = response['data']
|
||||||
|
|
||||||
|
if data[u'Members']:
|
||||||
|
for controller_member in data[u'Members']:
|
||||||
|
controller_member_uri = controller_member[u'@odata.id']
|
||||||
|
response = self.get_request(self.root_uri + controller_member_uri)
|
||||||
|
if response['ret'] is False:
|
||||||
|
return response
|
||||||
|
result['ret'] = True
|
||||||
|
data = response['data']
|
||||||
|
|
||||||
|
controller_result = {}
|
||||||
|
for property in properties:
|
||||||
|
if property in data:
|
||||||
|
controller_result[property] = data[property]
|
||||||
|
controller_results.append(controller_result)
|
||||||
|
elif deprecated_key in data:
|
||||||
|
controller_list = data[deprecated_key]
|
||||||
for controller in controller_list:
|
for controller in controller_list:
|
||||||
controller_result = {}
|
controller_result = {}
|
||||||
for property in properties:
|
for property in properties:
|
||||||
|
@ -735,7 +759,25 @@ class RedfishUtils(object):
|
||||||
return response
|
return response
|
||||||
data = response['data']
|
data = response['data']
|
||||||
controller_name = 'Controller 1'
|
controller_name = 'Controller 1'
|
||||||
if 'StorageControllers' in data:
|
if 'Controllers' in data:
|
||||||
|
controllers_uri = data['Controllers'][u'@odata.id']
|
||||||
|
|
||||||
|
response = self.get_request(self.root_uri + controllers_uri)
|
||||||
|
if response['ret'] is False:
|
||||||
|
return response
|
||||||
|
result['ret'] = True
|
||||||
|
cdata = response['data']
|
||||||
|
|
||||||
|
if cdata[u'Members']:
|
||||||
|
controller_member_uri = cdata[u'Members'][0][u'@odata.id']
|
||||||
|
|
||||||
|
response = self.get_request(self.root_uri + controller_member_uri)
|
||||||
|
if response['ret'] is False:
|
||||||
|
return response
|
||||||
|
result['ret'] = True
|
||||||
|
cdata = response['data']
|
||||||
|
controller_name = cdata['Name']
|
||||||
|
elif 'StorageControllers' in data:
|
||||||
sc = data['StorageControllers']
|
sc = data['StorageControllers']
|
||||||
if sc:
|
if sc:
|
||||||
if 'Name' in sc[0]:
|
if 'Name' in sc[0]:
|
||||||
|
@ -839,15 +881,7 @@ class RedfishUtils(object):
|
||||||
return response
|
return response
|
||||||
data = response['data']
|
data = response['data']
|
||||||
controller_name = 'Controller %s' % str(idx)
|
controller_name = 'Controller %s' % str(idx)
|
||||||
if 'StorageControllers' in data:
|
if 'Controllers' in data:
|
||||||
sc = data['StorageControllers']
|
|
||||||
if sc:
|
|
||||||
if 'Name' in sc[0]:
|
|
||||||
controller_name = sc[0]['Name']
|
|
||||||
else:
|
|
||||||
sc_id = sc[0].get('Id', '1')
|
|
||||||
controller_name = 'Controller %s' % sc_id
|
|
||||||
elif 'Controllers' in data:
|
|
||||||
response = self.get_request(self.root_uri + data['Controllers'][u'@odata.id'])
|
response = self.get_request(self.root_uri + data['Controllers'][u'@odata.id'])
|
||||||
if response['ret'] is False:
|
if response['ret'] is False:
|
||||||
return response
|
return response
|
||||||
|
@ -865,6 +899,14 @@ class RedfishUtils(object):
|
||||||
else:
|
else:
|
||||||
controller_id = member_data.get('Id', '1')
|
controller_id = member_data.get('Id', '1')
|
||||||
controller_name = 'Controller %s' % controller_id
|
controller_name = 'Controller %s' % controller_id
|
||||||
|
elif 'StorageControllers' in data:
|
||||||
|
sc = data['StorageControllers']
|
||||||
|
if sc:
|
||||||
|
if 'Name' in sc[0]:
|
||||||
|
controller_name = sc[0]['Name']
|
||||||
|
else:
|
||||||
|
sc_id = sc[0].get('Id', '1')
|
||||||
|
controller_name = 'Controller %s' % sc_id
|
||||||
volume_results = []
|
volume_results = []
|
||||||
volume_list = []
|
volume_list = []
|
||||||
if 'Volumes' in data:
|
if 'Volumes' in data:
|
||||||
|
|
Loading…
Reference in New Issue