| |
@@ -3675,7 +3675,7 @@
|
| |
update.execute()
|
| |
|
| |
|
| |
- def add_external_repo_to_tag(tag_info, repo_info, priority, merge_mode='koji'):
|
| |
+ def add_external_repo_to_tag(tag_info, repo_info, priority, merge_mode='koji', arches=None):
|
| |
"""Add an external repo to a tag"""
|
| |
|
| |
context.session.assertPerm('tag')
|
| |
@@ -3691,6 +3691,9 @@
|
| |
repo = get_external_repo(repo_info, strict=True)
|
| |
repo_id = repo['id']
|
| |
|
| |
+ if arches is not None:
|
| |
+ arches = koji.parse_arches(arches, strict=True)
|
| |
+
|
| |
tag_repos = get_tag_external_repos(tag_info=tag_id)
|
| |
if [tr for tr in tag_repos if tr['external_repo_id'] == repo_id]:
|
| |
raise koji.GenericError('tag %s already associated with external repo %s' %
|
| |
@@ -3701,7 +3704,7 @@
|
| |
|
| |
insert = InsertProcessor('tag_external_repos')
|
| |
insert.set(tag_id=tag_id, external_repo_id=repo_id, priority=priority,
|
| |
- merge_mode=merge_mode)
|
| |
+ merge_mode=merge_mode, arches=arches)
|
| |
insert.make_create()
|
| |
insert.execute()
|
| |
|
| |
@@ -3726,7 +3729,7 @@
|
| |
update.execute()
|
| |
|
| |
|
| |
- def edit_tag_external_repo(tag_info, repo_info, priority=None, merge_mode=None):
|
| |
+ def edit_tag_external_repo(tag_info, repo_info, priority=None, merge_mode=None, arches=None):
|
| |
"""Edit a tag<->external repo association
|
| |
This allows you to update the priority and merge_mode without removing/adding the repo.
|
| |
|
| |
@@ -3746,8 +3749,11 @@
|
| |
(repo['name'], tag['name']))
|
| |
tag_repo = tag_repos[0]
|
| |
|
| |
+ if arches is not None:
|
| |
+ arches = koji.parse_arches(arches, strict=True)
|
| |
+
|
| |
data = {}
|
| |
- for k in ('priority', 'merge_mode'):
|
| |
+ for k in ('priority', 'merge_mode', 'arches'):
|
| |
val = locals().get(k)
|
| |
# None value means no change
|
| |
if val is not None and val != tag_repo[k]:
|
| |
@@ -3755,7 +3761,7 @@
|
| |
if not data:
|
| |
return False
|
| |
else:
|
| |
- for k in ('priority', 'merge_mode'):
|
| |
+ for k in ('priority', 'merge_mode', 'arches'):
|
| |
data.setdefault(k, tag_repo[k])
|
| |
remove_external_repo_from_tag(tag_id, repo_id)
|
| |
add_external_repo_to_tag(tag_id, repo_id, **data)
|
| |
@@ -3800,6 +3806,7 @@
|
| |
'tag.name': 'tag_name',
|
| |
'url': 'url',
|
| |
'merge_mode': 'merge_mode',
|
| |
+ 'arches': 'arches',
|
| |
}
|
| |
columns, aliases = zip(*fields.items())
|
| |
|
| |
@@ -10549,7 +10556,7 @@
|
| |
deleteExternalRepo = staticmethod(delete_external_repo)
|
| |
|
| |
def addExternalRepoToTag(self, tag_info, repo_info, priority,
|
| |
- merge_mode='koji'):
|
| |
+ merge_mode='koji', arches=None):
|
| |
"""Add an external repo to a tag.
|
| |
|
| |
:param tag_info: Tag name or ID number
|
| |
@@ -10558,9 +10565,11 @@
|
| |
:param str merge_mode: This must be one of the values of the
|
| |
koji.REPO_MERGE_MODES set. If unspecified,
|
| |
the default is "koji".
|
| |
+ :param str arches: space-separated list of arches handled by the repo.
|
| |
"""
|
| |
# wrap the local method so we don't expose the event parameter
|
| |
- add_external_repo_to_tag(tag_info, repo_info, priority, merge_mode)
|
| |
+ add_external_repo_to_tag(tag_info, repo_info, priority,
|
| |
+ merge_mode=merge_mode, arches=arches)
|
| |
|
| |
def removeExternalRepoFromTag(self, tag_info, repo_info):
|
| |
"""
|
| |
Fixes: https://pagure.io/koji/issue/2538