From 984e7859a77e2d3e6e07ee2c994a708d4d88cdbc Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Tue, 9 Sep 2025 09:12:40 -0400 Subject: [PATCH] Enhance vague error messages Certain scenarios resulted in blank errors during failure. Provide a fallback that preserves some amount of information. Change-Id: Ib08f3a602f2133d04662ec45c7caf90477ffbb70 --- pyghmi/ipmi/oem/lenovo/imm.py | 5 +++-- pyghmi/redfish/oem/generic.py | 5 +++-- pyghmi/redfish/oem/lenovo/xcc.py | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/pyghmi/ipmi/oem/lenovo/imm.py b/pyghmi/ipmi/oem/lenovo/imm.py index 7710bbe2..f9559d37 100644 --- a/pyghmi/ipmi/oem/lenovo/imm.py +++ b/pyghmi/ipmi/oem/lenovo/imm.py @@ -2098,13 +2098,14 @@ class XCCClient(IMMClient): 'progress': 100 * wc.get_upload_progress()}) if uploadthread.rspstatus >= 300 or uploadthread.rspstatus < 200: rsp = uploadthread.rsp - errmsg = '' + errmsg = f'Upload failed with HTTP status {uploadthread.rspstatus}' try: rsp = json.loads(rsp) errmsg = ( rsp['error']['@Message.ExtendedInfo'][0]['Message']) except Exception: - raise Exception(uploadthread.rsp) + errmsg = errmsg + ': ' + str(rsp) + raise Exception(errmsg) raise Exception(errmsg) rsp = json.loads(uploadthread.rsp) monitorurl = rsp['@odata.id'] diff --git a/pyghmi/redfish/oem/generic.py b/pyghmi/redfish/oem/generic.py index eb95b4ca..17bbfd1c 100644 --- a/pyghmi/redfish/oem/generic.py +++ b/pyghmi/redfish/oem/generic.py @@ -1088,14 +1088,15 @@ class OEMHandler(object): if (uploadthread.rspstatus >= 300 or uploadthread.rspstatus < 200): rsp = uploadthread.rsp - errmsg = '' + errmsg = f'Update attempt resulted in response status {uploadthread.rspstatus}' try: rsp = json.loads(rsp) errmsg = ( rsp['error'][ '@Message.ExtendedInfo'][0]['Message']) except Exception: - raise Exception(uploadthread.rsp) + errmsg = errmsg + ': ' + repr(rsp) + raise Exception(errmsg) raise Exception(errmsg) return self.continue_update(uploadthread, progress) finally: diff --git a/pyghmi/redfish/oem/lenovo/xcc.py b/pyghmi/redfish/oem/lenovo/xcc.py index f476d50a..a1f81089 100644 --- a/pyghmi/redfish/oem/lenovo/xcc.py +++ b/pyghmi/redfish/oem/lenovo/xcc.py @@ -1320,14 +1320,15 @@ class OEMHandler(generic.OEMHandler): if (uploadthread.rspstatus >= 300 or uploadthread.rspstatus < 200): rsp = uploadthread.rsp - errmsg = '' + errmsg = f'Update attempt resulted in response status {uploadthread.rspstatus}' try: rsp = json.loads(rsp) errmsg = ( rsp['error'][ '@Message.ExtendedInfo'][0]['Message']) except Exception: - raise Exception(uploadthread.rsp) + errmsg = f'Update attempt resulted in response status {uploadthread.rspstatus}: "{repr(rsp)}"' + raise Exception(errmsg) raise Exception(errmsg) rsp = json.loads(uploadthread.rsp) monitorurl = rsp['@odata.id']