diff --git a/xCAT-openbmc-py/lib/python/agent/hwctl/executor/openbmc_bmcconfig.py b/xCAT-openbmc-py/lib/python/agent/hwctl/executor/openbmc_bmcconfig.py index 104a3bd2f..322827da5 100644 --- a/xCAT-openbmc-py/lib/python/agent/hwctl/executor/openbmc_bmcconfig.py +++ b/xCAT-openbmc-py/lib/python/agent/hwctl/executor/openbmc_bmcconfig.py @@ -145,7 +145,7 @@ class OpenBMCBmcConfigTask(ParallelNodesCommand): for key in keys: self._dump_download(obmc, node, str(key)) - except SelfServerException as e: + except (SelfServerException, SelfClientException) as e: self.callback.error(e.message, node) def dump_process(self, **kw): @@ -174,7 +174,7 @@ class OpenBMCBmcConfigTask(ParallelNodesCommand): else: self.callback.error('Could not find dump %s after waiting %d seconds.' % (dump_id, 20 * 15), node) - except SelfServerException as e: + except (SelfServerException, SelfClientException) as e: self.callback.error(e.message, node) def gard_clear(self, **kw): @@ -188,7 +188,7 @@ class OpenBMCBmcConfigTask(ParallelNodesCommand): obmc.clear_gard() self.callback.info('%s: GARD cleared' % node) - except SelfServerException as e: + except (SelfServerException, SelfClientException) as e: self.callback.error(e.message, node) def pre_set_sshcfg(self, *arg, **kw): diff --git a/xCAT-openbmc-py/lib/python/agent/hwctl/openbmc_client.py b/xCAT-openbmc-py/lib/python/agent/hwctl/openbmc_client.py index 7d4c48775..a73281a3a 100644 --- a/xCAT-openbmc-py/lib/python/agent/hwctl/openbmc_client.py +++ b/xCAT-openbmc-py/lib/python/agent/hwctl/openbmc_client.py @@ -198,8 +198,8 @@ RSPCONFIG_APIS = { 'get_data': [], 'display_name': "BMC PowerSupplyRedundancy", 'attr_values': { - 'disabled': "Disables", - 'enabled': "Enabled", + 'disabled': ["Disables"], + 'enabled': ["Enabled"], }, }, 'powerrestorepolicy': { @@ -751,7 +751,11 @@ class OpenBMCRest(object): data = attr_info['attr_values'][value] else: data = value - self.request('PUT', set_url, payload={"data": data}, cmd="set_%s" % key) + + method = 'PUT' + if key == 'powersupplyredundancy': + method = 'POST' + self.request(method, set_url, payload={"data": data}, cmd="set_%s" % key) def get_apis_values(self, key): attr_info = RSPCONFIG_APIS[key]