mirror of
				https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu
				synced 2025-10-31 00:24:06 +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 | ||||
|     (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 | ||||
| the documentation of the related methods. The exact meaning of them will be | ||||
| 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.migrationitem import MigrationItem | ||||
| 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.sourceppa import SourcePPAPolicy | ||||
| from britney2.policies.sruadtregression import SRUADTRegressionPolicy | ||||
| @ -536,6 +539,7 @@ class Britney(object): | ||||
|         # Piuparts is noisy & not used by Ubuntu (LP: #1651537) | ||||
|         # self.policies.append(PiupartsPolicy(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': | ||||
|             self.policies.append(AutopkgtestPolicy(self.options, self.suite_info)) | ||||
|         self.policies.append(SourcePPAPolicy(self.options, self.suite_info)) | ||||
|  | ||||
| @ -698,3 +698,48 @@ class LPBlockBugPolicy(BasePolicy): | ||||
|         excuse.addreason('block') | ||||
| 
 | ||||
|         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