mirror of
https://opendev.org/x/pyghmi
synced 2025-01-27 19:37:44 +00:00
Fix some redfish incompatibilities
Some implementations require etag to set the identify light. Some implementations do not provide the allowable reset values up front and require chasing yet another url. Fix an issue where a temperature sensor without available reading caused an error. Change-Id: Ie0b3c880b311438938d016857e4466c55447f7a3
This commit is contained in:
parent
430ae6f171
commit
4adf5a049e
@ -773,6 +773,12 @@ class Command(object):
|
||||
{})
|
||||
url = resetinf.get('target', '')
|
||||
valid = resetinf.get('ResetType@Redfish.AllowableValues', [])
|
||||
if not valid:
|
||||
tmpurl = resetinf.get('@Redfish.ActionInfo', None)
|
||||
if tmpurl:
|
||||
resetinf = self._do_web_request(tmpurl)
|
||||
valid = resetinf.get('Parameters', [{}])[0].get(
|
||||
'AllowableValues')
|
||||
resettype = None
|
||||
if 'GracefulRestart' in valid:
|
||||
resettype = 'GracefulRestart'
|
||||
@ -792,10 +798,11 @@ class Command(object):
|
||||
self._do_web_request(url, {'ResetType': action})
|
||||
|
||||
def set_identify(self, on=True, blink=None):
|
||||
thetag = self.sysinfo.get('@odata.etag', None)
|
||||
self._do_web_request(
|
||||
self.sysurl,
|
||||
{'IndicatorLED': 'Blinking' if blink else 'Lit' if on else 'Off'},
|
||||
method='PATCH')
|
||||
method='PATCH', etag=thetag)
|
||||
|
||||
_idstatemap = {
|
||||
'Blinking': 'blink',
|
||||
@ -1499,7 +1506,7 @@ class Command(object):
|
||||
unavailable=unavail)
|
||||
elif sensor['type'] == 'Temperature':
|
||||
for temp in reading['Temperatures']:
|
||||
if temp['Name'] == sensor['name'] and 'ReadingCelsius' in temp:
|
||||
if temp['Name'] == sensor['name']:
|
||||
val = temp.get('ReadingCelsius', None)
|
||||
unavail = val is None
|
||||
return SensorReading(
|
||||
|
Loading…
x
Reference in New Issue
Block a user