From 3abd5b98cea3c37056ba7492af863bd59f8ecb77 Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Mon, 20 Apr 2026 11:47:35 -0400 Subject: [PATCH] Handle older XCC3 firmware that can't provide the indicated service data Change-Id: I29bb8ce4cee5fba9b7b29b018e442045c5270712 --- pyghmi/redfish/oem/lenovo/xcc3.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pyghmi/redfish/oem/lenovo/xcc3.py b/pyghmi/redfish/oem/lenovo/xcc3.py index b2abd9b8..9ee5851f 100644 --- a/pyghmi/redfish/oem/lenovo/xcc3.py +++ b/pyghmi/redfish/oem/lenovo/xcc3.py @@ -749,9 +749,14 @@ class OEMHandler(generic.OEMHandler): fd.join() def get_diagnostic_data(self, savefile, progress=None, autosuffix=False): - tsk = self._do_web_request( - '/redfish/v1/Systems/1/LogServices/DiagnosticLog/Actions/LogService.CollectDiagnosticData', - {"DiagnosticDataType": "Manager", "SelectDataTypes": ["adapter","worknote","thermal"]}) + try: + tsk = self._do_web_request( + '/redfish/v1/Systems/1/LogServices/DiagnosticLog/Actions/LogService.CollectDiagnosticData', + {"DiagnosticDataType": "Manager", "SelectDataTypes": ["adapter","worknote","thermal"]}) + except pygexc.RedfishError as e: + tsk = self._do_web_request( + '/redfish/v1/Systems/1/LogServices/DiagnosticLog/Actions/LogService.CollectDiagnosticData', + {"DiagnosticDataType": "Manager", "SelectDataTypes": ["adapter"]}) taskrunning = True taskurl = tsk.get('TaskMonitor', None) pct = 0 if taskurl else 100