From d2848a600eb42ac689efe6e457bd009711094e9d Mon Sep 17 00:00:00 2001 From: YueGuobin Date: Mon, 1 Jun 2026 12:43:56 +0800 Subject: [PATCH] Complete fix: delete resource records when deleting resource pool This completes the fix from PR #2315 by ensuring that when a resource pool is deleted, all associated resource records are also deleted from the resources table, preventing orphaned resource records. Changes: - Modified delete_resource_pool() to first delete all resource records in the pool before deleting the pool itself - This complements the existing fix in remove_resource_from_pool() which handles single resource removal --- gns3server/db/repositories/pools.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gns3server/db/repositories/pools.py b/gns3server/db/repositories/pools.py index 61ee13029..b5d81c607 100644 --- a/gns3server/db/repositories/pools.py +++ b/gns3server/db/repositories/pools.py @@ -156,6 +156,14 @@ class ResourcePoolsRepository(BaseRepository): Delete a resource pool. """ + # Get all resources in the pool first + resources = await self.get_pool_resources(resource_pool_id) + + # Delete all resource records + for resource in resources: + await self.delete_resource(resource.resource_id) + + # Now delete the resource pool query = delete(models.ResourcePool).where(models.ResourcePool.resource_pool_id == resource_pool_id) result = await self._db_session.execute(query) await self._db_session.commit()