From ffd2413d39faf309dfef4476b85f207e9fb2fbfb Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 31 Oct 2017 18:27:15 +0000 Subject: [PATCH] jobs: Introduce designated builder property Signed-off-by: Michael Tremer --- src/buildservice/builders.py | 13 +++++-------- src/buildservice/jobs.py | 10 +++++++++- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/buildservice/builders.py b/src/buildservice/builders.py index 9e5cdf6..dc5a50a 100644 --- a/src/buildservice/builders.py +++ b/src/buildservice/builders.py @@ -428,18 +428,15 @@ class Builder(base.DataObject): for job in self.jobqueue: logging.debug("Looking at %s..." % job) + # Only allow building test jobs in test mode if self.testmode and not job.test: continue - # If we are the fastest builder to handle this job, we will - # get it. - if job.candidate_builders: - fastest_builder = job.candidate_builders.pop(0) - - if not self == fastest_builder: - logging.debug("We are not the fastest builder for this job (%s is)" % fastest_builder) - continue + # We will skip this job if we are not the designated builder + if job.designated_builder and not job.designated_builder == self: + logging.debug("We are not the designated builder for this job (%s is)" % job.designated_builder) + continue return job diff --git a/src/buildservice/jobs.py b/src/buildservice/jobs.py index b0022c4..3489122 100644 --- a/src/buildservice/jobs.py +++ b/src/buildservice/jobs.py @@ -349,7 +349,7 @@ class Job(base.DataObject): builder = lazy_property(get_builder, set_builder) - @lazy_property + @property def candidate_builders(self): """ Returns all active builders that could build this job @@ -362,6 +362,14 @@ class Job(base.DataObject): # Sort them by the fastest builder first return sorted(builders, key=lambda b: -b.performance_index) + @property + def designated_builder(self): + """ + Returns the fastest candidate builder builder + """ + if self.candidate_builders: + return self.candidate_builders[0] + @property def arch(self): return self.data.arch -- 2.39.2