]> git.ipfire.org Git - pbs.git/commitdiff
builds: Hide any retries
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 30 Apr 2023 09:32:05 +0000 (09:32 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 30 Apr 2023 09:32:05 +0000 (09:32 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/builds.py
src/buildservice/jobs.py

index ea7a91b1d4bef07ddecc2d7f8777890ceca89549..3691cc7ddae32fe5a3e58b062e478298a4b20837 100644 (file)
@@ -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):
index ea42690091c517597208822648fb5852c3ef52c2..88729566c73ced41b8c33389f29f81134d8904a8 100644 (file)
@@ -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