policies: Use suite class instead of suite name

When determining whether a policy applies to a given item, use the
suite class rather than the suite name.

Signed-off-by: Niels Thykier <niels@thykier.net>
ubuntu/rebased
Niels Thykier 7 years ago
parent e7b5339eae
commit 54e5eb0e74

@ -1532,8 +1532,9 @@ class Britney(object):
# the age-days hint, if specified for the package # the age-days hint, if specified for the package
policy_verdict = excuse.policy_verdict policy_verdict = excuse.policy_verdict
policy_info = excuse.policy_info policy_info = excuse.policy_info
suite_class = source_suite.suite_class
for policy in self.policies: for policy in self.policies:
if suite_name in policy.applicable_suites: if suite_class in policy.applicable_suites:
v = policy.apply_policy(policy_info, suite_name, src, source_t, source_u, excuse) v = policy.apply_policy(policy_info, suite_name, src, source_t, source_u, excuse)
if v.value > policy_verdict.value: if v.value > policy_verdict.value:
policy_verdict = v policy_verdict = v

@ -30,13 +30,17 @@ from urllib.request import urlopen
import apt_pkg import apt_pkg
import britney2.hints import britney2.hints
from britney2 import SuiteClass
from britney2.policies.policy import BasePolicy, PolicyVerdict from britney2.policies.policy import BasePolicy, PolicyVerdict
class Result(Enum): class Result(Enum):
FAIL = 1 FAIL = 1
PASS = 2 PASS = 2
NEUTRAL = 3 NEUTRAL = 3
EXCUSES_LABELS = { EXCUSES_LABELS = {
"PASS": '<span style="background:#87d96c">Pass</span>', "PASS": '<span style="background:#87d96c">Pass</span>',
"NEUTRAL": '<span style="background:#e5c545">No test results</span>', "NEUTRAL": '<span style="background:#e5c545">No test results</span>',
@ -50,6 +54,7 @@ EXCUSES_LABELS = {
REF_TRIG = 'migration-reference/0' REF_TRIG = 'migration-reference/0'
def srchash(src): def srchash(src):
'''archive hash prefix for source package''' '''archive hash prefix for source package'''
@ -67,7 +72,7 @@ class AutopkgtestPolicy(BasePolicy):
""" """
def __init__(self, options, suite_info): def __init__(self, options, suite_info):
super().__init__('autopkgtest', options, suite_info, {'unstable'}) super().__init__('autopkgtest', options, suite_info, {SuiteClass.PRIMARY_SOURCE_SUITE})
# tests requested in this and previous runs # tests requested in this and previous runs
# trigger -> src -> [arch] # trigger -> src -> [arch]
self.pending_tests = None self.pending_tests = None

@ -7,6 +7,7 @@ from urllib.parse import quote
import apt_pkg import apt_pkg
from britney2 import SuiteClass
from britney2.hints import Hint, split_into_one_hint_per_package from britney2.hints import Hint, split_into_one_hint_per_package
from britney2.policies import PolicyVerdict from britney2.policies import PolicyVerdict
from britney2.utils import get_dependency_solvers from britney2.utils import get_dependency_solvers
@ -23,7 +24,7 @@ class BasePolicy(object):
:param options The options member of Britney with all the :param options The options member of Britney with all the
config options. config options.
:param applicable_suites A set of suite names where this :param applicable_suites A set of suite classes where this
policy applies. policy applies.
""" """
self.policy_id = policy_id self.policy_id = policy_id
@ -92,7 +93,7 @@ class BasePolicy(object):
:param source_data_srcdist Information about the source :param source_data_srcdist Information about the source
package in the source distribution (e.g. "unstable" or "tpu"). package in the source distribution (e.g. "unstable" or "tpu").
This is the data structure in This is the data structure in suite.sources[source_name]
Britney.sources[suite][source_name] Britney.sources[suite][source_name]
:return A Policy Verdict (e.g. PolicyVerdict.PASS) :return A Policy Verdict (e.g. PolicyVerdict.PASS)
@ -173,7 +174,7 @@ class AgePolicy(BasePolicy):
""" """
def __init__(self, options, suite_info, mindays): def __init__(self, options, suite_info, mindays):
super().__init__('age', options, suite_info, {'unstable'}) super().__init__('age', options, suite_info, {SuiteClass.PRIMARY_SOURCE_SUITE})
self._min_days = mindays self._min_days = mindays
if options.default_urgency not in mindays: # pragma: no cover if options.default_urgency not in mindays: # pragma: no cover
raise ValueError("Missing age-requirement for default urgency (MINDAYS_%s)" % options.default_urgency) raise ValueError("Missing age-requirement for default urgency (MINDAYS_%s)" % options.default_urgency)
@ -408,7 +409,7 @@ class RCBugPolicy(BasePolicy):
""" """
def __init__(self, options, suite_info): def __init__(self, options, suite_info):
super().__init__('rc-bugs', options, suite_info, {'unstable'}) super().__init__('rc-bugs', options, suite_info, {SuiteClass.PRIMARY_SOURCE_SUITE})
self._bugs = {} self._bugs = {}
def register_hints(self, hint_parser): def register_hints(self, hint_parser):
@ -535,7 +536,7 @@ class RCBugPolicy(BasePolicy):
class PiupartsPolicy(BasePolicy): class PiupartsPolicy(BasePolicy):
def __init__(self, options, suite_info): def __init__(self, options, suite_info):
super().__init__('piuparts', options, suite_info, {'unstable'}) super().__init__('piuparts', options, suite_info, {SuiteClass.PRIMARY_SOURCE_SUITE})
self._piuparts = { self._piuparts = {
'unstable': None, 'unstable': None,
'testing': None, 'testing': None,
@ -637,7 +638,8 @@ class PiupartsPolicy(BasePolicy):
class BuildDependsPolicy(BasePolicy): class BuildDependsPolicy(BasePolicy):
def __init__(self, options, suite_info): def __init__(self, options, suite_info):
super().__init__('build-depends', options, suite_info, {'unstable', 'tpu', 'pu'}) super().__init__('build-depends', options, suite_info,
{SuiteClass.PRIMARY_SOURCE_SUITE, SuiteClass.ADDITIONAL_SOURCE_SUITE})
self._britney = None self._britney = None
def initialise(self, britney): def initialise(self, britney):

Loading…
Cancel
Save