From 244004136cc4b106f1fdd4420af279f27e780a44 Mon Sep 17 00:00:00 2001 From: Eric Callahan Date: Thu, 23 Feb 2023 12:17:11 -0500 Subject: [PATCH] klippy_apis: handle invalid klippy responses Signed-off-by: Eric Callahan --- moonraker/components/klippy_apis.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/moonraker/components/klippy_apis.py b/moonraker/components/klippy_apis.py index e52071c..8ba7df1 100644 --- a/moonraker/components/klippy_apis.py +++ b/moonraker/components/klippy_apis.py @@ -186,7 +186,9 @@ class KlippyAPI(Subscribable): OBJ_LIST_ENDPOINT, {}, default) if isinstance(result, dict) and 'objects' in result: return result['objects'] - return result + if default is not Sentinel.MISSING: + return default + raise self.server.error("Invalid response received from Klippy", 500) async def query_objects(self, objects: Mapping[str, Optional[List[str]]], @@ -197,7 +199,9 @@ class KlippyAPI(Subscribable): STATUS_ENDPOINT, params, default) if isinstance(result, dict) and 'status' in result: return result['status'] - return result + if default is not Sentinel.MISSING: + return default + raise self.server.error("Invalid response received from Klippy", 500) async def subscribe_objects(self, objects: Mapping[str, Optional[List[str]]], @@ -218,7 +222,9 @@ class KlippyAPI(Subscribable): SUBSCRIPTION_ENDPOINT, params, default) if isinstance(result, dict) and 'status' in result: return result['status'] - return result + if default is not Sentinel.MISSING: + return default + raise self.server.error("Invalid response received from Klippy", 500) async def subscribe_gcode_output(self) -> str: template = {'response_template':