From 1131f6f42b78acd1ac53da7ff533dd25062358a0 Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Wed, 11 Feb 2026 11:03:31 -0500 Subject: [PATCH] Provide a specific override for XCC3 generic error When XCC3 errors due to bad certificate, it's uselessly vague. Catch this message and replace with a more recognizable one. Change-Id: I1154e884382f171880a4e91e7c54eb227c9d64bd --- pyghmi/redfish/oem/lenovo/xcc3.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pyghmi/redfish/oem/lenovo/xcc3.py b/pyghmi/redfish/oem/lenovo/xcc3.py index f3c8966d..a3b6396e 100644 --- a/pyghmi/redfish/oem/lenovo/xcc3.py +++ b/pyghmi/redfish/oem/lenovo/xcc3.py @@ -724,7 +724,16 @@ class OEMHandler(generic.OEMHandler): data={'Image': url, 'Inserted': True}, method='PATCH') if code == 500: - raise Exception("Unexpected response when attaching remote media: " + repr(msg)) + errmsg = "Unexpected response when attaching remote media: " + repr(msg) + try: + if url.startswith('https://'): + dmsg = json.loads(msg.decode('utf-8')) + if dmsg.get('error', {}).get('code', '') == 'Base.1.16.0.InternalError': + errmsg = 'XCC3 reported an internal error while attaching https media, check the certificate authorities on the XCC3' + except Exception: + pass + raise Exception(errmsg) + self._invalidate_url_cache(vmurl) raise pygexc.BypassGenericBehavior() break else: