def buildChangeQueues(self): self.log.debug("Building shared change queues") change_queues = [] for project in self.sched.projects.values(): if project.hasQueue(self.name): change_queue = ChangeQueue(self.name) change_queue.addProject(project) change_queues.append(change_queue) self.log.debug("Created queue: %s" % change_queue) self.log.debug("Combining shared queues") new_change_queues = [] for a in change_queues: merged_a = False for b in new_change_queues: if not a.getJobs().isdisjoint(b.getJobs()): self.log.debug("Merging queue %s into %s" % (a, b)) b.mergeChangeQueue(a) merged_a = True break # this breaks out of 'for b' and continues 'for a' if not merged_a: self.log.debug("Keeping queue %s" % (a)) new_change_queues.append(a) self.change_queues = new_change_queues self.log.info(" Shared change queues:") for x in self.change_queues: self.log.info(" %s" % x)
def buildChangeQueues(self): self.log.debug("Building shared change queues") change_queues = [] for project in self.pipeline.getProjects(): change_queue = ChangeQueue(self.pipeline) change_queue.addProject(project) change_queues.append(change_queue) self.log.debug("Created queue: %s" % change_queue) self.log.debug("Combining shared queues") new_change_queues = [] for a in change_queues: merged_a = False for b in new_change_queues: if not a.getJobs().isdisjoint(b.getJobs()): self.log.debug("Merging queue %s into %s" % (a, b)) b.mergeChangeQueue(a) merged_a = True break # this breaks out of 'for b' and continues 'for a' if not merged_a: self.log.debug("Keeping queue %s" % (a)) new_change_queues.append(a) self.change_queues = new_change_queues self.log.info(" Shared change queues:") for x in self.change_queues: self.log.info(" %s" % x)
def _postConfig(self): super(IndependentPipelineManager, self)._postConfig() change_queue = ChangeQueue(self.pipeline, dependent=False) for project in self.pipeline.getProjects(): change_queue.addProject(project) self.pipeline.addQueue(change_queue)