mirror of
				https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu
				synced 2025-11-04 10:34:05 +00:00 
			
		
		
		
	AgePolicy: Move self.options usage to constructor/initialization
Signed-off-by: Niels Thykier <niels@thykier.net>
This commit is contained in:
		
							parent
							
								
									8e9e099a67
								
							
						
					
					
						commit
						f67fc00292
					
				@ -179,14 +179,17 @@ class AgePolicy(BasePolicy):
 | 
			
		||||
    def __init__(self, options, suite_info, mindays):
 | 
			
		||||
        super().__init__('age', options, suite_info, {SuiteClass.PRIMARY_SOURCE_SUITE})
 | 
			
		||||
        self._min_days = mindays
 | 
			
		||||
        if options.default_urgency not in mindays:  # pragma: no cover
 | 
			
		||||
            raise ValueError("Missing age-requirement for default urgency (MINDAYS_%s)" % options.default_urgency)
 | 
			
		||||
        self._min_days_default = mindays[options.default_urgency]
 | 
			
		||||
        self._min_days_default = None  # initialised later
 | 
			
		||||
        # britney's "day" begins at 7pm (we want aging to occur in the 22:00Z run and we run Britney 2-4 times a day)
 | 
			
		||||
        # NB: _date_now is used in tests
 | 
			
		||||
        self._date_now = int(((time.time() / (60*60)) - 19) / 24)
 | 
			
		||||
        self._dates = {}
 | 
			
		||||
        self._urgencies = {}
 | 
			
		||||
        self._default_urgency = self.options.default_urgency
 | 
			
		||||
        self._penalty_immune_urgencies = frozenset()
 | 
			
		||||
        if hasattr(self.options, 'no_penalties'):
 | 
			
		||||
            self._penalty_immune_urgencies = frozenset(x.strip() for x in self.options.no_penalties.split())
 | 
			
		||||
        self._bounty_min_age = None  # initialised later
 | 
			
		||||
 | 
			
		||||
    def register_hints(self, hint_parser):
 | 
			
		||||
        hint_parser.register_hint_type('age-days', simple_policy_hint_parser_function(AgeDayHint, int), min_args=2)
 | 
			
		||||
@ -196,6 +199,19 @@ class AgePolicy(BasePolicy):
 | 
			
		||||
        super().initialise(britney)
 | 
			
		||||
        self._read_dates_file()
 | 
			
		||||
        self._read_urgencies_file()
 | 
			
		||||
        if self._default_urgency not in self._min_days:  # pragma: no cover
 | 
			
		||||
            raise ValueError("Missing age-requirement for default urgency (MINDAYS_%s)" % self._default_urgency)
 | 
			
		||||
        self._min_days_default = self._min_days[self._default_urgency]
 | 
			
		||||
        try:
 | 
			
		||||
            self._bounty_min_age = int(self.options.bounty_min_age)
 | 
			
		||||
        except ValueError:
 | 
			
		||||
            if self.options.bounty_min_age in self._min_days:
 | 
			
		||||
                self._bounty_min_age = self._min_days[self.options.bounty_min_age]
 | 
			
		||||
            else:  # pragma: no cover
 | 
			
		||||
                raise ValueError('Please fix BOUNTY_MIN_AGE in the britney configuration')
 | 
			
		||||
        except AttributeError:
 | 
			
		||||
            # The option wasn't defined in the configuration
 | 
			
		||||
            self._bounty_min_age = 0
 | 
			
		||||
 | 
			
		||||
    def save_state(self, britney):
 | 
			
		||||
        super().save_state(britney)
 | 
			
		||||
@ -204,19 +220,19 @@ class AgePolicy(BasePolicy):
 | 
			
		||||
    def apply_policy_impl(self, age_info, suite, source_name, source_data_tdist, source_data_srcdist, excuse):
 | 
			
		||||
        # retrieve the urgency for the upload, ignoring it if this is a NEW package
 | 
			
		||||
        # (not present in the target suite)
 | 
			
		||||
        urgency = self._urgencies.get(source_name, self.options.default_urgency)
 | 
			
		||||
        urgency = self._urgencies.get(source_name, self._default_urgency)
 | 
			
		||||
 | 
			
		||||
        if urgency not in self._min_days:
 | 
			
		||||
            age_info['unknown-urgency'] = urgency
 | 
			
		||||
            urgency = self.options.default_urgency
 | 
			
		||||
            urgency = self._default_urgency
 | 
			
		||||
 | 
			
		||||
        if not source_data_tdist:
 | 
			
		||||
            if self._min_days[urgency] < self._min_days_default:
 | 
			
		||||
                age_info['urgency-reduced'] = {
 | 
			
		||||
                    'from': urgency,
 | 
			
		||||
                    'to': self.options.default_urgency,
 | 
			
		||||
                    'to': self._default_urgency,
 | 
			
		||||
                }
 | 
			
		||||
                urgency = self.options.default_urgency
 | 
			
		||||
                urgency = self._default_urgency
 | 
			
		||||
 | 
			
		||||
        if source_name not in self._dates:
 | 
			
		||||
            self._dates[source_name] = (source_data_srcdist.version, self._date_now)
 | 
			
		||||
@ -231,27 +247,17 @@ class AgePolicy(BasePolicy):
 | 
			
		||||
            excuse.addhtml('Required age reduced by %d days because of %s' %
 | 
			
		||||
                         (excuse.bounty[bounty], bounty))
 | 
			
		||||
            min_days -= excuse.bounty[bounty]
 | 
			
		||||
        if not hasattr(self.options, 'no_penalties') or \
 | 
			
		||||
          urgency not in self.options.no_penalties:
 | 
			
		||||
        if urgency not in self._penalty_immune_urgencies:
 | 
			
		||||
            for penalty in excuse.penalty:
 | 
			
		||||
                self.logger.info('Applying penalty for %s given by %s: %d days',
 | 
			
		||||
                                 source_name, penalty, excuse.penalty[penalty])
 | 
			
		||||
                excuse.addhtml('Required age increased by %d days because of %s' %
 | 
			
		||||
                         (excuse.penalty[penalty], penalty))
 | 
			
		||||
                min_days += excuse.penalty[penalty]
 | 
			
		||||
        try:
 | 
			
		||||
            bounty_min_age = int(self.options.bounty_min_age)
 | 
			
		||||
        except ValueError:
 | 
			
		||||
            if self.options.bounty_min_age in self._min_days:
 | 
			
		||||
                bounty_min_age = self._min_days[self.options.bounty_min_age]
 | 
			
		||||
            else:
 | 
			
		||||
                raise ValueError('Please fix BOUNTY_MIN_AGE in the britney configuration')
 | 
			
		||||
        except AttributeError:
 | 
			
		||||
            # The option wasn't defined in the configuration
 | 
			
		||||
            bounty_min_age = 0
 | 
			
		||||
 | 
			
		||||
        # the age in BOUNTY_MIN_AGE can be higher than the one associated with
 | 
			
		||||
        # the real urgency, so don't forget to take it into account
 | 
			
		||||
        bounty_min_age =  min(bounty_min_age, self._min_days[urgency])
 | 
			
		||||
        bounty_min_age =  min(self._bounty_min_age, self._min_days[urgency])
 | 
			
		||||
        if min_days < bounty_min_age:
 | 
			
		||||
            min_days = bounty_min_age
 | 
			
		||||
            excuse.addhtml('Required age is not allowed to drop below %d days' % min_days)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user