mirror of
https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu
synced 2025-05-29 03:11:33 +00:00
parent
aa880c0d38
commit
da5770559c
@ -65,6 +65,9 @@ Other than source and binary packages, Britney loads the following data:
|
|||||||
* Blocks, which contains user-supplied blocks read from Launchpad bugs
|
* Blocks, which contains user-supplied blocks read from Launchpad bugs
|
||||||
(see LPBlockBugPolicy).
|
(see LPBlockBugPolicy).
|
||||||
|
|
||||||
|
* ExcuseBugs, which contains user-supplied update-excuse read from
|
||||||
|
Launchpad bugs (see LPExcuseBugsPolicy).
|
||||||
|
|
||||||
For a more detailed explanation about the format of these files, please read
|
For a more detailed explanation about the format of these files, please read
|
||||||
the documentation of the related methods. The exact meaning of them will be
|
the documentation of the related methods. The exact meaning of them will be
|
||||||
instead explained in the chapter "Excuses Generation".
|
instead explained in the chapter "Excuses Generation".
|
||||||
@ -202,7 +205,7 @@ from britney2.hints import HintParser
|
|||||||
from britney2.installability.builder import build_installability_tester, ma_parse_depends
|
from britney2.installability.builder import build_installability_tester, ma_parse_depends
|
||||||
from britney2.migrationitem import MigrationItem
|
from britney2.migrationitem import MigrationItem
|
||||||
from britney2.policies.policy import AgePolicy, RCBugPolicy, PiupartsPolicy, PolicyVerdict
|
from britney2.policies.policy import AgePolicy, RCBugPolicy, PiupartsPolicy, PolicyVerdict
|
||||||
from britney2.policies.policy import LPBlockBugPolicy
|
from britney2.policies.policy import LPBlockBugPolicy, LPExcuseBugsPolicy
|
||||||
from britney2.policies.autopkgtest import AutopkgtestPolicy
|
from britney2.policies.autopkgtest import AutopkgtestPolicy
|
||||||
from britney2.policies.sourceppa import SourcePPAPolicy
|
from britney2.policies.sourceppa import SourcePPAPolicy
|
||||||
from britney2.policies.sruadtregression import SRUADTRegressionPolicy
|
from britney2.policies.sruadtregression import SRUADTRegressionPolicy
|
||||||
@ -536,6 +539,7 @@ class Britney(object):
|
|||||||
# Piuparts is noisy & not used by Ubuntu (LP: #1651537)
|
# Piuparts is noisy & not used by Ubuntu (LP: #1651537)
|
||||||
# self.policies.append(PiupartsPolicy(self.options, self.suite_info))
|
# self.policies.append(PiupartsPolicy(self.options, self.suite_info))
|
||||||
self.policies.append(LPBlockBugPolicy(self.options, self.suite_info))
|
self.policies.append(LPBlockBugPolicy(self.options, self.suite_info))
|
||||||
|
self.policies.append(LPExcuseBugsPolicy(self.options, self.suite_info))
|
||||||
if getattr(self.options, 'adt_enable') == 'yes':
|
if getattr(self.options, 'adt_enable') == 'yes':
|
||||||
self.policies.append(AutopkgtestPolicy(self.options, self.suite_info))
|
self.policies.append(AutopkgtestPolicy(self.options, self.suite_info))
|
||||||
self.policies.append(SourcePPAPolicy(self.options, self.suite_info))
|
self.policies.append(SourcePPAPolicy(self.options, self.suite_info))
|
||||||
|
@ -698,3 +698,48 @@ class LPBlockBugPolicy(BasePolicy):
|
|||||||
excuse.addreason('block')
|
excuse.addreason('block')
|
||||||
|
|
||||||
return PolicyVerdict.REJECTED_PERMANENTLY
|
return PolicyVerdict.REJECTED_PERMANENTLY
|
||||||
|
|
||||||
|
class LPExcuseBugsPolicy(BasePolicy):
|
||||||
|
"""update-excuse Launchpad bug policy to link to a bug report, does not prevent migration
|
||||||
|
|
||||||
|
This policy will read an user-supplied "ExcuseBugs" file from the unstable
|
||||||
|
directory (provided by an external script) with rows of the following
|
||||||
|
format:
|
||||||
|
|
||||||
|
<source-name> <bug> <date>
|
||||||
|
|
||||||
|
The dates are expressed as the number of seconds from the Unix epoch
|
||||||
|
(1970-01-01 00:00:00 UTC).
|
||||||
|
"""
|
||||||
|
def __init__(self, options, suite_info):
|
||||||
|
super().__init__('update-excuse', options, suite_info, {'unstable'})
|
||||||
|
|
||||||
|
def initialise(self, britney):
|
||||||
|
super().initialise(britney)
|
||||||
|
self.excuse_bugs = {} # srcpkg -> [(bug, date), ...]
|
||||||
|
|
||||||
|
filename = os.path.join(self.options.unstable, "ExcuseBugs")
|
||||||
|
self.log("Loading user-supplied excuse bug data from %s" % filename)
|
||||||
|
for line in open(filename):
|
||||||
|
l = line.split()
|
||||||
|
if len(l) != 3:
|
||||||
|
self.log("ExcuseBugs, ignoring malformed line %s" % line, type='W')
|
||||||
|
continue
|
||||||
|
try:
|
||||||
|
self.excuse_bugs.setdefault(l[0], [])
|
||||||
|
self.excuse_bugs[l[0]].append((l[1], int(l[2])))
|
||||||
|
except ValueError:
|
||||||
|
self.log("ExcuseBugs, unable to parse \"%s\"" % line, type='E')
|
||||||
|
|
||||||
|
def apply_policy_impl(self, excuse_bugs_info, suite, source_name, source_data_tdist, source_data_srcdist, excuse):
|
||||||
|
try:
|
||||||
|
excuse_bug = self.excuse_bugs[source_name]
|
||||||
|
except KeyError:
|
||||||
|
return PolicyVerdict.PASS
|
||||||
|
|
||||||
|
for bug, date in excuse_bug:
|
||||||
|
excuse_bugs_info[bug] = date
|
||||||
|
excuse.addhtml("Also see <a href=\"https://launchpad.net/bugs/%s\">bug %s</a> last updated on %s" %
|
||||||
|
(bug, bug, time.asctime(time.gmtime(date))))
|
||||||
|
|
||||||
|
return PolicyVerdict.PASS
|
||||||
|
Loading…
x
Reference in New Issue
Block a user