Skip to content

Commit f3930de

Browse files
committed
src/trigger.py: Switch key data structure for main loop
Build configurations list will not be known up front when external configuration files are enabled in Maestro. Switching main loop to iterate over monitored trees will allow obtaining this information right before its use. Signed-off-by: Paweł Wieczorek <[email protected]>
1 parent c675b4f commit f3930de

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/trigger.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class Trigger(Service):
2626
def __init__(self, configs, args):
2727
super().__init__(configs, args, 'trigger')
2828
self._build_configs = configs['build_configs']
29+
self._trees = configs['trees']
2930
self._current_user = self._api.user.whoami()
3031

3132
def _log_revision(self, message, build_config, head_commit):
@@ -134,9 +135,11 @@ def _run_trigger(self, build_config, force, timeout, trees):
134135
except Exception as ex:
135136
self.traceback(ex)
136137

137-
def _iterate_build_configs(self, force, timeout, trees):
138-
for name, config in self._build_configs.items():
139-
self._run_trigger(config, force, timeout, trees)
138+
def _iterate_trees(self, force, timeout, trees):
139+
for tree in self._trees.keys():
140+
build_configs = {name: config for name, config in self._build_configs.items() if config['tree'] == tree}
141+
for name, config in build_configs.items():
142+
self._run_trigger(config, force, timeout, trees)
140143

141144
def _setup(self, args):
142145
return {
@@ -159,7 +162,7 @@ def _run(self, ctx):
159162
time.sleep(startup_delay)
160163

161164
while True:
162-
self._iterate_build_configs(force, timeout, trees)
165+
self._iterate_trees(force, timeout, trees)
163166
if poll_period:
164167
self.log.info(f"Sleeping for {poll_period}s")
165168
time.sleep(poll_period)

0 commit comments

Comments
 (0)