diff --git a/gns3server/db/repositories/pools.py b/gns3server/db/repositories/pools.py index 84ce6e47a..336c29c8d 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() @@ -203,6 +211,7 @@ class ResourcePoolsRepository(BaseRepository): resource_pool_db.resources.remove(resource) await self._db_session.commit() await self._db_session.refresh(resource_pool_db) + return resource_pool_db async def get_pool_resources(self, resource_pool_id: UUID) -> List[models.Resource]: