stagingapi: add support for Backports

This commit is contained in:
Ludwig Nussel 2018-06-29 11:29:21 +02:00
parent 6bdf227553
commit 9e59de4feb
3 changed files with 26 additions and 1 deletions

View File

@ -107,6 +107,27 @@ DEFAULT = {
'mail-noreply': 'noreply@opensuse.org', 'mail-noreply': 'noreply@opensuse.org',
'mail-release-list': 'opensuse-releaseteam@opensuse.org', 'mail-release-list': 'opensuse-releaseteam@opensuse.org',
}, },
r'openSUSE:(?P<project>Backports:(?P<version>[^:]+))': {
'staging': 'openSUSE:%(project)s:Staging',
'staging-group': 'factory-staging',
'staging-archs': 'x86_64',
'lock': 'openSUSE:%(project)s:Staging',
'lock-ns': 'openSUSE',
'onlyadi': True,
'leaper-override-group': 'leap-reviewers',
'review-team': 'opensuse-review-team',
'legal-review-group': 'legal-auto',
# review-team optionally added by leaper.py.
'repo-checker': 'repo-checker',
'repo_checker-arch-whitelist': 'x86_64',
# 16 hour staging window for follow-ups since lower throughput.
'splitter-staging-age-max': '57600',
# No special packages since they will pass through Leap first.
'splitter-special-packages': '',
# Allow `unselect --cleanup` to operate immediately on:
# - Update crawler requests (leaper)
'unselect-cleanup-whitelist': 'leaper',
},
# Allows devel projects to utilize tools that require config, but not # Allows devel projects to utilize tools that require config, but not
# complete StagingAPI support. # complete StagingAPI support.
r'(?P<project>.*$)': { r'(?P<project>.*$)': {
@ -114,6 +135,7 @@ DEFAULT = {
'staging-group': None, 'staging-group': None,
'staging-archs': '', 'staging-archs': '',
'staging-dvd-archs': '', 'staging-dvd-archs': '',
'onlyadi': False,
'rings': None, 'rings': None,
'nonfree': None, 'nonfree': None,
'rebuild': None, 'rebuild': None,

View File

@ -127,7 +127,7 @@ class RequestSplitter(object):
ring = self.ring_get(target_package) ring = self.ring_get(target_package)
if ring: if ring:
target.set('ring', ring) target.set('ring', ring)
elif request_type == 'delete': elif not self.api.conlyadi and request_type == 'delete':
# Delete requests should always be considered in a ring. # Delete requests should always be considered in a ring.
target.set('ring', 'delete') target.set('ring', 'delete')
@ -140,6 +140,8 @@ class RequestSplitter(object):
request.set('postponed', 'False') request.set('postponed', 'False')
def ring_get(self, target_package): def ring_get(self, target_package):
if self.api.conlyadi:
return None
if self.api.crings: if self.api.crings:
ring = self.api.ring_packages_for_links.get(target_package) ring = self.api.ring_packages_for_links.get(target_package)
if ring: if ring:

View File

@ -47,6 +47,7 @@ class TestConfig(unittest.TestCase):
projects = ( projects = (
'openSUSE:Factory', 'openSUSE:Factory',
'openSUSE:Leap:15.0', 'openSUSE:Leap:15.0',
'openSUSE:Backports:SLE-15',
'SUSE:SLE-15:GA', 'SUSE:SLE-15:GA',
'SUSE:SLE-12:GA', 'SUSE:SLE-12:GA',
'GNOME:Factory', 'GNOME:Factory',