2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-05-21 11:12:04 +00:00

fix issue 6270, support new interface of powersupplyredundancy on python

This commit is contained in:
xuweibj 2019-05-04 22:50:39 -04:00
parent 16a081d1d2
commit ada5acbe72
2 changed files with 30 additions and 0 deletions

View File

@ -404,6 +404,25 @@ rmdir \"/tmp/$userid\" \n")
self.callback.info("%s: BMC Setting %s..." % (node, openbmc.RSPCONFIG_APIS[key]['display_name']))
def _get_powersupplyredundancy_value(self, node, obmc):
try:
psr_info = obmc.get_powersupplyredundancy()
for key, value in psr_info.items():
if key == 'PowerSupplyRedundancyEnabled':
result = '%s: %s: %s' % (node, openbmc.RSPCONFIG_APIS['powersupplyredundancy']['display_name'],
openbmc.RSPCONFIG_APIS['powersupplyredundancy']['attr_values'][str(value)][0])
return self.callback.info(result)
except SelfServerException as e:
return self.callback.error(e.message, node)
except SelfClientException as e:
if e.code == 404:
return self.callback.error('404 Not Found - Requested endpoint does not exist or may ' \
'indicate function is not supported on this OpenBMC firmware.', node)
if e.code == 403:
return self.callback.error('403 Forbidden - Requested endpoint does not exist or may ' \
'indicate function is not yet supported by OpenBMC firmware.', node)
return self.callback.error(e.message, node)
def _get_apis_values(self, key, **kw):
node = kw['node']
obmc = openbmc.OpenBMCRest(name=node, nodeinfo=kw['nodeinfo'], messager=self.callback,
@ -416,6 +435,9 @@ rmdir \"/tmp/$userid\" \n")
return self.callback.error(e.message, node)
except SelfClientException as e:
if e.code == 404:
if key == 'powersupplyredundancy':
return self._get_powersupplyredundancy_value(node, obmc)
return self.callback.error('404 Not Found - Requested endpoint does not exist or may ' \
'indicate function is not supported on this OpenBMC firmware.', node)
if e.code == 403:

View File

@ -200,12 +200,16 @@ RSPCONFIG_APIS = {
'baseurl': "/sensors/chassis/PowerSupplyRedundancy/",
'set_url': "action/setValue",
'get_url': "action/getValue",
'get_url_new': '/control/power_supply_redundancy',
'get_method': 'POST',
'get_method_new': 'GET',
'get_data': [],
'display_name': "BMC PowerSupplyRedundancy",
'attr_values': {
'disabled': ["Disabled"],
'enabled': ["Enabled"],
'False': ['Disabled'],
'True': ["Enabled"],
},
},
'powerrestorepolicy': {
@ -790,6 +794,10 @@ class OpenBMCRest(object):
data={"data": attr_info['get_data']}
return self.request(method, get_url, payload=data, cmd="get_%s" % key)
def get_powersupplyredundancy(self):
attr_info = RSPCONFIG_APIS['powersupplyredundancy']
return self.request(attr_info['get_method_new'], attr_info['get_url_new'], cmd='get_powersupplyredundancy')
def set_admin_passwd(self, passwd):
payload = { "data": [passwd] }