Move some manager attributes to pipeline

To reimagine the pipeline as an abstract config object, move some
attributes such as the ref and event filters from the manager to
the pipeline class.

These filters have the same content regardless of what tenant
they are in.

Change-Id: Id2a639a37bf77ddcca89615aa6a3589128fff477
This commit is contained in:
James E. Blair
2025-03-11 10:53:54 -07:00
parent 27a92d07b5
commit 29aa948725
6 changed files with 10 additions and 10 deletions

View File

@ -1586,7 +1586,7 @@ class PipelineParser(object):
with self.pcontext.confAttr(conf, 'require', {}) as require_dict:
for source_name, require_config in require_dict.items():
source = self.pcontext.connections.getSource(source_name)
manager.ref_filters.extend(
pipeline.ref_filters.extend(
source.getRequireFilters(
require_config, self.pcontext))
seen_connections.add(source_name)
@ -1594,7 +1594,7 @@ class PipelineParser(object):
with self.pcontext.confAttr(conf, 'reject', {}) as reject_dict:
for source_name, reject_config in reject_dict.items():
source = self.pcontext.connections.getSource(source_name)
manager.ref_filters.extend(
pipeline.ref_filters.extend(
source.getRejectFilters(reject_config, self.pcontext))
seen_connections.add(source_name)
@ -1607,7 +1607,7 @@ class PipelineParser(object):
trigger = self.pcontext.connections.getTrigger(
connection_name, trigger_config)
pipeline.triggers.append(trigger)
manager.event_filters.extend(
pipeline.event_filters.extend(
trigger.getEventFilters(
connection_name,
conf['trigger'][connection_name],

View File

@ -42,7 +42,7 @@ class GerritDriver(Driver, ConnectionInterface, TriggerInterface,
elif 'scheme' in trigger_item:
d['scheme'] = trigger_item['scheme']
checkers.append(d)
for event_filter in pipeline.manager.event_filters:
for event_filter in pipeline.event_filters:
trigger = event_filter.trigger
if isinstance(trigger, gerrittrigger.GerritTrigger):
con = trigger.connection

View File

@ -109,7 +109,7 @@ class TimerDriver(Driver, TriggerInterface):
def _addJobs(self, tenant):
jobs = {}
for pipeline in tenant.layout.pipelines.values():
for ef in pipeline.manager.event_filters:
for ef in pipeline.event_filters:
if not isinstance(ef.trigger, timertrigger.TimerTrigger):
continue
for timespec in ef.timespecs:

View File

@ -49,7 +49,7 @@ class ZuulDriver(Driver, TriggerInterface, ReporterInterface):
def reconfigure(self, tenant):
for pipeline in tenant.layout.pipelines.values():
for ef in pipeline.manager.event_filters:
for ef in pipeline.event_filters:
if not isinstance(ef.trigger, zuultrigger.ZuulTrigger):
continue
if PARENT_CHANGE_ENQUEUED in ef._types:

View File

@ -74,8 +74,6 @@ class PipelineManager(metaclass=ABCMeta):
pipeline.name,))
self.sched = sched
self.pipeline = pipeline
self.event_filters = []
self.ref_filters = []
self.relative_priority_queues = {}
# Cached dynamic layouts (layout uuid -> layout)
self._layout_cache = {}
@ -213,7 +211,7 @@ class PipelineManager(metaclass=ABCMeta):
return True
else:
return False
for ef in self.event_filters:
for ef in self.pipeline.event_filters:
match_result = ef.matches(event, change)
if match_result:
log.debug("Event %s for change %s matched %s "
@ -706,7 +704,7 @@ class PipelineManager(metaclass=ABCMeta):
cycle = [change]
if not ignore_requirements:
for f in self.ref_filters:
for f in self.pipeline.ref_filters:
for cycle_change in cycle:
if (f.connection_name !=
cycle_change.project.connection_name):

View File

@ -597,6 +597,8 @@ class Pipeline(object):
self.window_increase_factor = None
self.window_decrease_type = None
self.window_decrease_factor = None
self.ref_filters = []
self.event_filters = []
@property
def queues(self):