From 9755c8b0a8483e1b20afbe6a4942cc03abbd5dff Mon Sep 17 00:00:00 2001 From: Markus Hilger Date: Fri, 14 Aug 2026 22:31:21 +0200 Subject: [PATCH] Say what is wrong with an unusable parameter file A parameter file that is not json, or that holds something other than an object, reached the update as a raw parser message or as a TypeError from the handler that unpacked it. --- .../confluent/plugins/hardwaremanagement/redfish.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/confluent_server/confluent/plugins/hardwaremanagement/redfish.py b/confluent_server/confluent/plugins/hardwaremanagement/redfish.py index 9311fac4..98cd30f2 100644 --- a/confluent_server/confluent/plugins/hardwaremanagement/redfish.py +++ b/confluent_server/confluent/plugins/hardwaremanagement/redfish.py @@ -513,7 +513,14 @@ class IpmiHandler: if self.inputdata.parameterdata: params = self.inputdata.parameterdata if params and isinstance(params, str): - params = json.loads(params) + try: + params = json.loads(params) + except ValueError as ve: + raise pygexc.InvalidParameterValue( + 'The parameter file is not valid json: {0}'.format(ve)) + if params and not isinstance(params, dict): + raise pygexc.InvalidParameterValue( + 'The parameter file must hold a json object, see nodefirmware(8)') return await self.ipmicmd.update_firmware(filename, progress=progress, data=data, bank=bank, otherfields=params) async def handle_update(self):