Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
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):
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)
log.debug("Cloned job %s as %s" % (self, job))
# Update cache
- self.build.jobs.append(job)
+ self.build._jobs.append(job)
return job