From d126c8a357bd816abe934ee8f34b25f3730cad27 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 19 Nov 2019 15:33:09 +0100 Subject: [PATCH] Fix for reviews (OBS issue is fixed) --- osclib/adi_command.py | 4 ++-- osclib/check_command.py | 10 +++++----- osclib/stagingapi.py | 13 ++++++++++++- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/osclib/adi_command.py b/osclib/adi_command.py index 82a77c9a..31e00647 100644 --- a/osclib/adi_command.py +++ b/osclib/adi_command.py @@ -42,9 +42,9 @@ class AdiCommand: return for review in info.findall('missing_reviews/review'): print(query_project + ' ' + Fore.WHITE + 'review: ' + '{} for {}[{}]'.format( - Fore.YELLOW + review.get('by', 'https://github.com/openSUSE/open-build-service/issues/8575') + Fore.RESET, + Fore.YELLOW + self.api.format_review(review) + Fore.RESET, Fore.CYAN + review.get('package') + Fore.RESET, - review.get('id', 'https://github.com/openSUSE/open-build-service/issues/8575'))) + review.get('request'))) return for check in info.findall('missing_checks/check'): print(query_project + ' ' + Fore.MAGENTA + 'missing: {}'.format(check.get('name'))) diff --git a/osclib/check_command.py b/osclib/check_command.py index 1a4f0914..29d6fdcf 100644 --- a/osclib/check_command.py +++ b/osclib/check_command.py @@ -31,13 +31,13 @@ class CheckCommand(object): break # Missing reviews - for r in project.findall('missing_reviews/*'): - report.append(' - %s: Missing reviews: %s' % (r.get('package'), r.get('by'))) + for r in project.findall('missing_reviews/review'): + report.append(' - %s: Missing reviews: %s' % (r.get('package'), self.api.format_review(r))) if not verbose: break # Building repositories - if project.find('building_repositories/*') is not None: + if project.find('building_repositories/repo') is not None: report.append(' - At least following repositories are still building:') for r in project.findall('building_repositories/*'): report.append(' %s/%s: %s' % (r.get('repository'), r.get('arch'), r.get('state'))) @@ -45,9 +45,9 @@ class CheckCommand(object): break # Broken packages - if project.find('broken_packages/*') is not None: + if project.find('broken_packages/package') is not None: report.append(' - Following packages are broken:') - for r in project.findall('broken_packages/*'): + for r in project.findall('broken_packages/package'): report.append(' %s (%s): %s' % (r.get('package'), r.get('repository'), r.get('state'))) if not verbose: break diff --git a/osclib/stagingapi.py b/osclib/stagingapi.py index c964a31c..a44f7eab 100644 --- a/osclib/stagingapi.py +++ b/osclib/stagingapi.py @@ -796,6 +796,17 @@ class StagingAPI(object): return False + def format_review(self, review): + if review.get('by_group'): + return 'group:{}'.format(review.get('by_group')) + if review.get('by_user'): + return review.get('by_user') + if review.get('by_package'): + return '{}/{}'.format(review.get('by_project'), review.get('by_package')) + if review.get('by_project'): + return review.get('by_project') + raise oscerr.WrongArgs('Invalid review') + def job_history_fail_count(self, history): fail_count = 0 for job in reversed(history.findall('jobhist')): @@ -1198,7 +1209,7 @@ class StagingAPI(object): def switch_flag_in_prj(self, project, flag='build', state='disable', repository=None, arch=None): query = { 'cmd': 'set_flag', 'flag': flag, 'status': state } if repository: - query['repository'] = _repository + query['repository'] = repository if arch: query['arch'] = arch url = self.makeurl(['source', project], query)