From b1a430cf3b8194f16cd51eacf467d104c6fc0e9d Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Fri, 7 Jun 2019 17:02:28 -0400 Subject: [PATCH] Provide better error handling for XCC/IMM The UEFI configuration can fail out. Change-Id: I0e6fc5630f6bb9df02512b8d3a3818e5f1d283a0 --- pyghmi/ipmi/oem/lenovo/config.py | 3 ++- pyghmi/ipmi/oem/lenovo/imm.py | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pyghmi/ipmi/oem/lenovo/config.py b/pyghmi/ipmi/oem/lenovo/config.py index a57200b9..89ff5395 100644 --- a/pyghmi/ipmi/oem/lenovo/config.py +++ b/pyghmi/ipmi/oem/lenovo/config.py @@ -268,7 +268,8 @@ class LenovoFirmwareConfig(object): if len(data) != 0: break self.connection.ipmi_session.pause(2) - + if not data: + raise Exception("BMC failed to return configuration information") xml = etree.fromstring(data) sortid = 0 for config in xml.iter("config"): diff --git a/pyghmi/ipmi/oem/lenovo/imm.py b/pyghmi/ipmi/oem/lenovo/imm.py index 861bee9b..246818e7 100644 --- a/pyghmi/ipmi/oem/lenovo/imm.py +++ b/pyghmi/ipmi/oem/lenovo/imm.py @@ -171,7 +171,10 @@ class IMMClient(object): def get_system_configuration(self, hideadvanced=True): if not self.fwc: self.fwc = config.LenovoFirmwareConfig(self.ipmicmd) - self.fwo = self.fwc.get_fw_options() + try: + self.fwo = self.fwc.get_fw_options() + except Exception: + raise Exception(self.bmcname + ' failed to retrieve UEFI configuration') self.fwovintage = util._monotonic_time() retcfg = {} for opt in self.fwo: