From 4234706f30bcfe00e39532b1c83d8fb698c5bcc9 Mon Sep 17 00:00:00 2001 From: Jimmy Berry Date: Thu, 31 Aug 2017 16:15:04 -0500 Subject: [PATCH 1/3] osclib/list: only present submit and delete requests in main list. --- osclib/list_command.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osclib/list_command.py b/osclib/list_command.py index c22f6364..dc908f51 100644 --- a/osclib/list_command.py +++ b/osclib/list_command.py @@ -32,7 +32,7 @@ class ListCommand: change_devel_requests = splitter.filter_only() splitter.reset() - splitter.filter_add('./action[not(@type="add_role" or @type="change_devel")]') + splitter.filter_add('./action[@type="submit" or @type="delete"]') splitter.group_by('./action/target/@devel_project') splitter.split() From 77e70feef706eb184ea5c64992931a998d430314 Mon Sep 17 00:00:00 2001 From: Jimmy Berry Date: Thu, 31 Aug 2017 16:18:40 -0500 Subject: [PATCH 2/3] osclib/list: rework change_devel_requests to include set_bugowner. Since set_bugowner requests are essentially equivalent to Factory change_devel requests they should be presented in the same manor. --- osclib/list_command.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/osclib/list_command.py b/osclib/list_command.py index dc908f51..539ecca8 100644 --- a/osclib/list_command.py +++ b/osclib/list_command.py @@ -28,10 +28,6 @@ class ListCommand: if not len(requests): return splitter = RequestSplitter(self.api, requests, in_ring=True) - splitter.filter_add('./action[@type="change_devel"]') - change_devel_requests = splitter.filter_only() - splitter.reset() - splitter.filter_add('./action[@type="submit" or @type="delete"]') splitter.group_by('./action/target/@devel_project') splitter.split() @@ -71,12 +67,17 @@ class ListCommand: non_ring_packages.append(request.find('./action/target').get('package')) print 'Not in a ring:', ' '.join(sorted(non_ring_packages)) - if len(change_devel_requests): - print '\nChange devel requests:' - for request in change_devel_requests: - target_package = request.find('./action/target').get('package') - url = self.api.makeurl(['request', 'show', request.get('id')]) - print('- request({}): {}'.format(target_package, url)) + # Print requests not handled by staging process to highlight them. + for request_type in ('change_devel', 'set_bugowner'): + splitter.reset() + splitter.filter_add('./action[@type="{}"]'.format(request_type)) + requests = splitter.filter_only() + if len(requests): + print('\n{} request(s)'.format(request_type)) + for request in sorted(requests, key=lambda s: s.get('id')): + print(' {} {}'.format( + self.api.makeurl(['request', 'show', request.get('id')]), + request.find('./action/target').get('package'))) def project_strip(self, source_project): home = source_project.startswith('home:') From 0f869ab8867dbe15b41b9bf0978141879e947a6a Mon Sep 17 00:00:00 2001 From: Jimmy Berry Date: Thu, 31 Aug 2017 16:33:26 -0500 Subject: [PATCH 3/3] osclib/request_finder: restrict to submit and delete request types. This avoid set_bugowner and change_devel requests from causing a select command to die due to more than one request. --- osclib/request_finder.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/osclib/request_finder.py b/osclib/request_finder.py index 400ea137..d2817cc5 100644 --- a/osclib/request_finder.py +++ b/osclib/request_finder.py @@ -65,7 +65,7 @@ class RequestFinder(object): :param package: name of the package """ - query = 'states=new,review&project={}&view=collection&package={}' + query = 'types=submit,delete&states=new,review&project={}&view=collection&package={}' query = query.format(self.api.project, urllib2.quote(package)) url = makeurl(self.api.apiurl, ['request'], query) f = http_GET(url) @@ -100,7 +100,7 @@ class RequestFinder(object): :param newcand: the review state of staging-group must be new """ - query = 'states=new,review&project={}&view=collection'.format(self.api.project) + query = 'types=submit,delete&states=new,review&project={}&view=collection'.format(self.api.project) url = makeurl(self.api.apiurl, ['request'], query) f = http_GET(url) root = ET.parse(f).getroot()