From 8ecd449dd8a32d7ecc9122dc7c891d00dfec8daf Mon Sep 17 00:00:00 2001 From: YueGuobin Date: Thu, 7 May 2026 09:37:51 +0800 Subject: [PATCH] Fix: Add error logging when closing/deleting projects on computes Previously errors during close() and delete_on_computes() were silently swallowed without any logging, making it difficult to diagnose failures when remote computes are unreachable. - close(): log warning instead of silent pass - delete_on_computes(): wrap HTTP DELETE in try/except with warning log Co-Authored-By: Claude Opus 4.6 --- gns3server/controller/project.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gns3server/controller/project.py b/gns3server/controller/project.py index 96976730f..7d4a7cd37 100644 --- a/gns3server/controller/project.py +++ b/gns3server/controller/project.py @@ -890,9 +890,8 @@ class Project: for compute in list(self._project_created_on_compute): try: await compute.post(f"/projects/{self._id}/close", dont_connect=True) - # We don't care if a compute is down at this step - except (ComputeError, ControllerError, TimeoutError): - pass + except (ComputeError, ControllerError, TimeoutError) as e: + log.warning(f"Could not close project '{self._id}' on compute '{compute.id}': {e}") self._clean_pictures() self._status = "closed" if not ignore_notification: @@ -1075,7 +1074,10 @@ class Project: """ for compute in list(self._project_created_on_compute): if compute.id != "local": - await compute.delete(f"/projects/{self._id}") + try: + await compute.delete(f"/projects/{self._id}") + except (ComputeError, TimeoutError) as e: + log.warning(f"Could not delete project '{self._id}' on compute '{compute.id}': {e}") self._project_created_on_compute.remove(compute) @classmethod