From 9e59de4feb956a0c5424a87703d9efbcee493bcf Mon Sep 17 00:00:00 2001 From: Ludwig Nussel Date: Fri, 29 Jun 2018 11:29:21 +0200 Subject: [PATCH] stagingapi: add support for Backports --- osclib/conf.py | 22 ++++++++++++++++++++++ osclib/request_splitter.py | 4 +++- tests/config_tests.py | 1 + 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/osclib/conf.py b/osclib/conf.py index cc4f52be..3a381de3 100644 --- a/osclib/conf.py +++ b/osclib/conf.py @@ -107,6 +107,27 @@ DEFAULT = { 'mail-noreply': 'noreply@opensuse.org', 'mail-release-list': 'opensuse-releaseteam@opensuse.org', }, + r'openSUSE:(?PBackports:(?P[^:]+))': { + '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 # complete StagingAPI support. r'(?P.*$)': { @@ -114,6 +135,7 @@ DEFAULT = { 'staging-group': None, 'staging-archs': '', 'staging-dvd-archs': '', + 'onlyadi': False, 'rings': None, 'nonfree': None, 'rebuild': None, diff --git a/osclib/request_splitter.py b/osclib/request_splitter.py index 75c83abe..901b1156 100644 --- a/osclib/request_splitter.py +++ b/osclib/request_splitter.py @@ -127,7 +127,7 @@ class RequestSplitter(object): ring = self.ring_get(target_package) if 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. target.set('ring', 'delete') @@ -140,6 +140,8 @@ class RequestSplitter(object): request.set('postponed', 'False') def ring_get(self, target_package): + if self.api.conlyadi: + return None if self.api.crings: ring = self.api.ring_packages_for_links.get(target_package) if ring: diff --git a/tests/config_tests.py b/tests/config_tests.py index 8f7b2698..d610ef46 100644 --- a/tests/config_tests.py +++ b/tests/config_tests.py @@ -47,6 +47,7 @@ class TestConfig(unittest.TestCase): projects = ( 'openSUSE:Factory', 'openSUSE:Leap:15.0', + 'openSUSE:Backports:SLE-15', 'SUSE:SLE-15:GA', 'SUSE:SLE-12:GA', 'GNOME:Factory',