diff --git a/zuul/model.py b/zuul/model.py index 904e8f3516..d6fc1f02d7 100644 --- a/zuul/model.py +++ b/zuul/model.py @@ -412,12 +412,13 @@ class ChangeQueue(object): self._jobs |= set(self.pipeline.getJobTree(project).getJobs()) def enqueueChange(self, change): - item = QueueItem(self, self.pipeline, change) + item = QueueItem(self.pipeline, change) self.enqueueItem(item) item.enqueue_time = time.time() return item def enqueueItem(self, item): + item.pipeline = self.pipeline if self.dependent and self.queue: item.item_ahead = self.queue[-1] item.item_ahead.items_behind.append(item) @@ -659,8 +660,7 @@ class BuildSet(object): class QueueItem(object): """A changish inside of a Pipeline queue""" - def __init__(self, change_queue, pipeline, change): - self.change_queue = change_queue + def __init__(self, pipeline, change): self.pipeline = pipeline self.change = change # a changeish self.build_sets = [] diff --git a/zuul/scheduler.py b/zuul/scheduler.py index 7ca1e35cb2..5a085e23e6 100644 --- a/zuul/scheduler.py +++ b/zuul/scheduler.py @@ -1255,19 +1255,18 @@ class BasePipelineManager(object): item.change.branch) self.log.info("Reported change %s status: all-succeeded: %s, " "merged: %s" % (item.change, succeeded, merged)) + change_queue = self.pipeline.getQueue(item.change.project) if not (succeeded and merged): self.log.debug("Reported change %s failed tests or failed " "to merge" % (item.change)) - item.change_queue.decreaseWindowSize() + change_queue.decreaseWindowSize() self.log.debug("%s window size decreased to %s" % - (item.change_queue, - item.change_queue.window)) + (change_queue, change_queue.window)) raise MergeFailure("Change %s failed to merge" % item.change) else: - item.change_queue.increaseWindowSize() + change_queue.increaseWindowSize() self.log.debug("%s window size increased to %s" % - (item.change_queue, - item.change_queue.window)) + (change_queue, change_queue.window)) def _reportItem(self, item): if item.reported: