]> git.ipfire.org Git - pbs.git/commitdiff
packages: Fix deletion
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 22 Jan 2025 13:51:33 +0000 (13:51 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 22 Jan 2025 13:51:33 +0000 (13:51 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/packages.py

index ea5f78cc6afa19278f54cd143f750b17624ea836..5f96d7507b7ac515a61223bdceb0d7f949badb6f 100644 (file)
@@ -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