From: Michael Tremer Date: Sun, 30 Apr 2023 09:32:05 +0000 (+0000) Subject: builds: Hide any retries X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=17c5c6be7624cc286e784db11f37f2161234a107;p=pbs.git builds: Hide any retries Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/builds.py b/src/buildservice/builds.py index ea7a91b1..3691cc7d 100644 --- a/src/buildservice/builds.py +++ b/src/buildservice/builds.py @@ -408,13 +408,25 @@ class Build(base.DataObject): return ret - @lazy_property + @property def jobs(self): + """ + Returns the current set of jobs + """ + for job in self._jobs: + # Skip any superseeded jobs + if job.is_superseeded(): + continue + + yield job + + @lazy_property + def _jobs(self): """ Get a list of all build jobs that are in this build. """ return self._get_jobs("SELECT * FROM jobs \ - WHERE build_id = %s AND test IS FALSE", self.id) + WHERE build_id = %s AND test IS FALSE", self.id) @property def test_jobs(self): diff --git a/src/buildservice/jobs.py b/src/buildservice/jobs.py index ea426900..88729566 100644 --- a/src/buildservice/jobs.py +++ b/src/buildservice/jobs.py @@ -335,6 +335,15 @@ class Job(base.DataObject): def distro(self): return self.build.distro + def is_superseeded(self): + """ + Returns True if this job has been superseeded by another one + """ + if self.data.superseeded_by: + return True + + return False + def get_superseeded_by(self): if self.data.superseeded_by: return self.backend.jobs.get_by_id(self.data.superseeded_by) @@ -568,7 +577,7 @@ class Job(base.DataObject): log.debug("Cloned job %s as %s" % (self, job)) # Update cache - self.build.jobs.append(job) + self.build._jobs.append(job) return job