From: Michael Tremer Date: Wed, 22 Jan 2025 13:51:33 +0000 (+0000) Subject: packages: Fix deletion X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=76c560fad70a0fbf24956d837689fcd93e139165;p=pbs.git packages: Fix deletion Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/packages.py b/src/buildservice/packages.py index ea5f78cc..5f96d750 100644 --- a/src/buildservice/packages.py +++ b/src/buildservice/packages.py @@ -289,33 +289,34 @@ class Package(database.Base, database.BackendMixin, database.SoftDeleteMixin): DateTime(timezone=False), nullable=False, server_default=sqlalchemy.func.current_timestamp(), ) - async def delete(self, user=None): + async def delete(self, *args, **kwargs): + """ + Deletes this package + """ # Check if this package can be deleted - if not self.can_be_deleted(): + if not await self.can_be_deleted(): log.debug("Won't delete package %s as it is still in use") return log.info("Deleting package %s" % self) - # Mark as deleted - await self._set_attribute_now("deleted_at") - if user: - await self._set_attribute("deleted_by", user) + # Delete from the database + await super().delete(*args, **kwargs) # Unlink the payload if self.path: await self.backend.unlink(self.path) # Reset path - await self._set_attribute("path", None) + self.path = None - def can_be_deleted(self): + async def can_be_deleted(self): """ Checks if this package is being used somewhere else and therefore cannot be deleted. """ # If there any builds using this package, it cannot be deleted - if self.builds: + if await self.get_builds(): return False # This package can be deleted