From dc61ea57da18e41be0d51973e679dfe2ab454e49 Mon Sep 17 00:00:00 2001 From: XuWei Date: Sun, 8 Apr 2018 22:27:14 -0400 Subject: [PATCH] Show error msg when set hostname as IP address --- .../agent/hwctl/executor/openbmc_bmcconfig.py | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) 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 8890f5ce2..1da131af4 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 @@ -301,9 +301,10 @@ rmdir \"/tmp/$userid\" \n") def _set_hostname(self, hostname, **kw): node = kw['node'] if hostname == '*': - if kw['nodeinfo']['bmc'] == kw['nodeinfo']['bmcip']: - self.callback.info("%s: set BMC ip as BMC Hostname" % node) - hostname = kw['nodeinfo']['bmc'] + if kw['nodeinfo']['bmc'] != kw['nodeinfo']['bmcip']: + hostname = kw['nodeinfo']['bmc'] + else: + return self.callback.error("Invalid OpenBMC Hostname %s, can't set to OpenBMC" % kw['nodeinfo']['bmc'], node) self._set_apis_values("hostname", hostname, **kw) self._get_netinfo(hostname=True, ntpserver=False, **kw) return @@ -383,7 +384,15 @@ rmdir \"/tmp/$userid\" \n") try: obmc.login() obmc.set_apis_values(key, value) - except (SelfServerException, SelfClientException) as e: + except SelfServerException as e: + return self.callback.error(e.message, node) + except SelfClientException: + if e.code == 404: + return self.callback.error('404 Not Found - Requested endpoint does not exists and 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 exists and may \ + indicate function is not yet supported by OpenBMC firmware.', node) return self.callback.error(e.message, node) self.callback.info("%s: BMC Setting %s..." % (node, openbmc.RSPCONFIG_APIS[key]['display_name'])) @@ -396,7 +405,15 @@ rmdir \"/tmp/$userid\" \n") obmc.login() value = obmc.get_apis_values(key) - except (SelfServerException, SelfClientException) as e: + except SelfServerException as e: + return self.callback.error(e.message, node) + except SelfClientException: + if e.code == 404: + return self.callback.error('404 Not Found - Requested endpoint does not exists and 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 exists and may \ + indicate function is not yet supported by OpenBMC firmware.', node) return self.callback.error(e.message, node) if isinstance(value, dict):