summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames E. Blair <jim@acmegating.com>2022-10-26 16:10:01 -0700
committerJames E. Blair <jim@acmegating.com>2022-11-10 15:52:46 -0800
commit1245d100ca8ca3f206c33ecb9817a65daa65729d (patch)
treeca05ec31efe3a420ef223bceb7eda90e9582c14d
parent57451d04b99b83b1568094253b8942e365927a29 (diff)
downloadzuul-1245d100ca8ca3f206c33ecb9817a65daa65729d.tar.gz
Refactor merge mode name lookup
This is repeated in a few places, centralize it. Change-Id: I7bbed1f5f9faad31affa71ef17fbfc1740c54db8
-rw-r--r--zuul/driver/github/githubreporter.py3
-rw-r--r--zuul/driver/gitlab/gitlabreporter.py11
-rw-r--r--zuul/model.py7
-rwxr-xr-xzuul/web/__init__.py5
4 files changed, 14 insertions, 12 deletions
diff --git a/zuul/driver/github/githubreporter.py b/zuul/driver/github/githubreporter.py
index e5c5ebfbd..1f44303bd 100644
--- a/zuul/driver/github/githubreporter.py
+++ b/zuul/driver/github/githubreporter.py
@@ -189,8 +189,7 @@ class GithubReporter(BaseReporter):
merge_mode = item.current_build_set.getMergeMode()
if merge_mode not in self.merge_modes:
- mode = [x[0] for x in model.MERGER_MAP.items()
- if x[1] == merge_mode][0]
+ mode = model.get_merge_mode_name(merge_mode)
self.log.warning('Merge mode %s not supported by Github', mode)
raise MergeFailure('Merge mode %s not supported by Github' % mode)
diff --git a/zuul/driver/gitlab/gitlabreporter.py b/zuul/driver/gitlab/gitlabreporter.py
index 819c89c47..b909bc3d7 100644
--- a/zuul/driver/gitlab/gitlabreporter.py
+++ b/zuul/driver/gitlab/gitlabreporter.py
@@ -16,9 +16,8 @@ import time
import logging
import voluptuous as v
+from zuul import model
from zuul.reporter import BaseReporter
-from zuul.model import MERGER_MERGE_RESOLVE, MERGER_MERGE, MERGER_MAP, \
- MERGER_SQUASH_MERGE
from zuul.lib.logutil import get_annotated_logger
from zuul.driver.gitlab.gitlabsource import GitlabSource
from zuul.driver.util import scalar_or_list
@@ -33,9 +32,9 @@ class GitlabReporter(BaseReporter):
# Merge modes supported by gitlab
merge_modes = {
- MERGER_MERGE: 'merge',
- MERGER_MERGE_RESOLVE: 'merge',
- MERGER_SQUASH_MERGE: 'squash'
+ model.MERGER_MERGE: 'merge',
+ model.MERGER_MERGE_RESOLVE: 'merge',
+ model.MERGER_SQUASH_MERGE: 'squash'
}
def __init__(self, driver, connection, pipeline, config=None):
@@ -110,7 +109,7 @@ class GitlabReporter(BaseReporter):
merge_mode = item.current_build_set.getMergeMode()
if merge_mode not in self.merge_modes:
- mode = [x[0] for x in MERGER_MAP.items() if x[1] == merge_mode][0]
+ mode = model.get_merge_mode_name(merge_mode)
self.log.warning('Merge mode %s not supported by Gitlab', mode)
raise MergeFailure('Merge mode %s not supported by Gitlab' % mode)
diff --git a/zuul/model.py b/zuul/model.py
index 97db54dea..4625abe22 100644
--- a/zuul/model.py
+++ b/zuul/model.py
@@ -123,6 +123,13 @@ def add_debug_line(debug_messages, msg, indent=0):
debug_messages.append(indent + msg)
+def get_merge_mode_name(merge_mode):
+ "Look up the merge mode name given the constant"
+ for k, v in MERGER_MAP.items():
+ if v == merge_mode:
+ return k
+
+
class ZuulMark:
# The yaml mark class differs between the C and python versions.
# The C version does not provide a snippet, and also appears to
diff --git a/zuul/web/__init__.py b/zuul/web/__init__.py
index 487c115c1..de8e91c2c 100755
--- a/zuul/web/__init__.py
+++ b/zuul/web/__init__.py
@@ -1241,10 +1241,7 @@ class ZuulWebAPI(object):
result = project.toDict()
result['configs'] = []
md = tenant.layout.getProjectMetadata(project.canonical_name).toDict()
- for k, v in model.MERGER_MAP.items():
- if v == md['merge_mode']:
- md['merge_mode'] = k
- break
+ md['merge_mode'] = model.get_merge_mode_name(md['merge_mode'])
result['metadata'] = md
configs = tenant.layout.getAllProjectConfigs(project.canonical_name)
for config_obj in configs: