diff --git a/osclib/request_splitter.py b/osclib/request_splitter.py index 6d39ef66..728350c4 100644 --- a/osclib/request_splitter.py +++ b/osclib/request_splitter.py @@ -306,6 +306,7 @@ class RequestSplitter(object): def strategies_try(self): strategies = ( 'special', + 'quick', 'super', 'devel', ) @@ -374,6 +375,9 @@ class Strategy(object): info['args'] = self.kwargs return info + def desirable(self, splitter): + return splitter.grouped.keys() + class StrategyNone(Strategy): def apply(self, splitter): splitter.filter_add('./action[not(@type="add_role" or @type="change_devel")]') @@ -451,6 +455,12 @@ class StrategySuper(StrategyDevel): splitter.groups = [] splitter.group_by('./action/target/@devel_project_super', True) +class StrategyQuick(StrategyNone): + def apply(self, splitter): + super(StrategyQuick, self).apply(splitter) + splitter.filter_add('./review[@by_user="leaper" and @state="accepted"]') + splitter.filter_add('not(./review[not(@by_user="leaper" or @by_group="factory-staging")])') + class StrategySpecial(StrategyNone): PACKAGES = [ 'boost', @@ -466,6 +476,3 @@ class StrategySpecial(StrategyNone): super(StrategySpecial, self).apply(splitter) splitter.filter_add_requests(self.PACKAGES) splitter.group_by('./action/target/@package') - - def desirable(self, splitter): - return splitter.grouped.keys()