From: Michael Tremer Date: Wed, 3 May 2023 10:47:41 +0000 (+0000) Subject: builds: Delete all test builds when a build is being deleted X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=847486509ba8b4cd1d3fe01bd0e2d239369c9b9e;p=pbs.git builds: Delete all test builds when a build is being deleted Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/builds.py b/src/buildservice/builds.py index 86fb62b4..2de05361 100644 --- a/src/buildservice/builds.py +++ b/src/buildservice/builds.py @@ -300,6 +300,10 @@ class Build(base.DataObject): Deletes this build including all jobs, packages and the source package. """ + # Delete all test builds + if self.test_builds: + await self.test_builds.delete(user=user) + # Delete all jobs await asyncio.gather( *(job.delete(user=user) for job in self._jobs), @@ -1054,6 +1058,23 @@ class Group(base.DataObject): return list(builds) + # Delete + + async def delete(self, user=None): + # Delete all builds in this group + await asyncio.gather( + *(build.delete(user=user) for build in self.builds), + ) + + # Mark as deleted + self._set_attribute_now("deleted_at") + if user: + self._set_attribute("deleted_by", user) + + @property + def deleted_at(self): + return self.data.deleted_at + class Comments(base.Object): def _get_comments(self, query, *args):