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:
parent
16a081d1d2
commit
ada5acbe72
@ -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:
|
||||
|
@ -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] }
|
||||
|
Loading…
x
Reference in New Issue
Block a user