Move change_review_state.
This commit is contained in:
parent
690c76d6fb
commit
6ff892fdf2
@ -139,33 +139,6 @@ def old_md5(apiurl, src_project, tgt_project, src_package, rev):
|
|||||||
return md5_set
|
return md5_set
|
||||||
|
|
||||||
|
|
||||||
def _check_repo_change_review_state(self, opts, id_, newstate, message='', supersed=None):
|
|
||||||
"""Taken from osc/osc/core.py, improved:
|
|
||||||
- verbose option added,
|
|
||||||
- empty by_user=& removed.
|
|
||||||
- numeric id can be int().
|
|
||||||
"""
|
|
||||||
query = {
|
|
||||||
'cmd': 'changereviewstate',
|
|
||||||
'newstate': newstate,
|
|
||||||
'by_user': 'factory-repo-checker',
|
|
||||||
}
|
|
||||||
if supersed:
|
|
||||||
query['superseded_by'] = supersed
|
|
||||||
# if message:
|
|
||||||
# query['comment'] = message
|
|
||||||
|
|
||||||
code = 404
|
|
||||||
url = makeurl(opts.apiurl, ['request', str(id_)], query=query)
|
|
||||||
try:
|
|
||||||
f = http_POST(url, data=message)
|
|
||||||
root = ET.parse(f).getroot()
|
|
||||||
code = root.attrib['code']
|
|
||||||
except urllib2.HTTPError, e:
|
|
||||||
print('ERROR in URL %s [%s]' % (url, e))
|
|
||||||
return code
|
|
||||||
|
|
||||||
|
|
||||||
def _check_repo_find_submit_request(self, opts, project, package):
|
def _check_repo_find_submit_request(self, opts, project, package):
|
||||||
xpath = "(action/target/@project='%s' and "\
|
xpath = "(action/target/@project='%s' and "\
|
||||||
"action/target/@package='%s' and "\
|
"action/target/@package='%s' and "\
|
||||||
@ -213,7 +186,7 @@ def _check_repo_one_request(self, rq, opts):
|
|||||||
msg = 'only one action per request is supported - create a group instead: '\
|
msg = 'only one action per request is supported - create a group instead: '\
|
||||||
'https://github.com/SUSE/hackweek/wiki/Improved-Factory-devel-project-submission-workflow'
|
'https://github.com/SUSE/hackweek/wiki/Improved-Factory-devel-project-submission-workflow'
|
||||||
print('DECLINED', msg)
|
print('DECLINED', msg)
|
||||||
self._check_repo_change_review_state(opts, id_, 'declined', message=msg)
|
self.checkrepo.change_review_state(id_, 'declined', message=msg)
|
||||||
return []
|
return []
|
||||||
|
|
||||||
act = actions[0]
|
act = actions[0]
|
||||||
@ -221,7 +194,7 @@ def _check_repo_one_request(self, rq, opts):
|
|||||||
if type_ != 'submit':
|
if type_ != 'submit':
|
||||||
msg = 'Unchecked request type %s' % type_
|
msg = 'Unchecked request type %s' % type_
|
||||||
print 'ACCEPTED', msg
|
print 'ACCEPTED', msg
|
||||||
self._check_repo_change_review_state(opts, id_, 'accepted', message=msg)
|
self.checkrepo.change_review_state(id_, 'accepted', message=msg)
|
||||||
return []
|
return []
|
||||||
|
|
||||||
pkg = act.find('source').get('package')
|
pkg = act.find('source').get('package')
|
||||||
@ -277,7 +250,7 @@ def _check_repo_one_request(self, rq, opts):
|
|||||||
if lprj != prj or lpkg != pkg and not p.updated:
|
if lprj != prj or lpkg != pkg and not p.updated:
|
||||||
msg = '%s/%s should _link to %s/%s' % (prj, spec, prj, pkg)
|
msg = '%s/%s should _link to %s/%s' % (prj, spec, prj, pkg)
|
||||||
print 'DECLINED', msg
|
print 'DECLINED', msg
|
||||||
self._check_repo_change_review_state(opts, id_, 'declined', message=msg)
|
self.checkrepo.change_review_state(id_, 'declined', message=msg)
|
||||||
p.updated = True
|
p.updated = True
|
||||||
|
|
||||||
if lmd5 != p.rev and not p.updated:
|
if lmd5 != p.rev and not p.updated:
|
||||||
@ -286,7 +259,7 @@ def _check_repo_one_request(self, rq, opts):
|
|||||||
else:
|
else:
|
||||||
msg = '%s is no longer the submitted version, please resubmit HEAD' % spec
|
msg = '%s is no longer the submitted version, please resubmit HEAD' % spec
|
||||||
print '[DECLINED] CHECK MANUALLY', msg
|
print '[DECLINED] CHECK MANUALLY', msg
|
||||||
# self._check_repo_change_review_state(opts, id_, 'declined', message=msg)
|
# self.checkrepo.change_review_state(id_, 'declined', message=msg)
|
||||||
p.updated = True
|
p.updated = True
|
||||||
|
|
||||||
sp = CheckRepoPackage()
|
sp = CheckRepoPackage()
|
||||||
@ -327,7 +300,7 @@ def _check_repo_buildsuccess(self, p, opts):
|
|||||||
if not tocheckrepos:
|
if not tocheckrepos:
|
||||||
msg = 'Missing i586 and x86_64 in the repo list'
|
msg = 'Missing i586 and x86_64 in the repo list'
|
||||||
print msg
|
print msg
|
||||||
self._check_repo_change_review_state(opts, p.request, 'new', message=msg)
|
self.checkrepo.change_review_state(p.request, 'new', message=msg)
|
||||||
# Next line not needed, but for documentation
|
# Next line not needed, but for documentation
|
||||||
p.updated = True
|
p.updated = True
|
||||||
return False
|
return False
|
||||||
@ -361,7 +334,7 @@ def _check_repo_buildsuccess(self, p, opts):
|
|||||||
if arch.attrib['result'] == 'outdated':
|
if arch.attrib['result'] == 'outdated':
|
||||||
msg = "%s's sources were changed after submissions and the old sources never built. Please resubmit" % p.spackage
|
msg = "%s's sources were changed after submissions and the old sources never built. Please resubmit" % p.spackage
|
||||||
print 'DECLINED', msg
|
print 'DECLINED', msg
|
||||||
self._check_repo_change_review_state(opts, p.request, 'declined', message=msg)
|
self.checkrepo.change_review_state(p.request, 'declined', message=msg)
|
||||||
# Next line is not needed, but for documentation
|
# Next line is not needed, but for documentation
|
||||||
p.updated = True
|
p.updated = True
|
||||||
return False
|
return False
|
||||||
@ -387,14 +360,14 @@ def _check_repo_buildsuccess(self, p, opts):
|
|||||||
if alldisabled:
|
if alldisabled:
|
||||||
msg = '%s is disabled or does not build against factory. Please fix and resubmit' % p.spackage
|
msg = '%s is disabled or does not build against factory. Please fix and resubmit' % p.spackage
|
||||||
print 'DECLINED', msg
|
print 'DECLINED', msg
|
||||||
self._check_repo_change_review_state(opts, p.request, 'declined', message=msg)
|
self.checkrepo.change_review_state(p.request, 'declined', message=msg)
|
||||||
# Next line not needed, but for documentation
|
# Next line not needed, but for documentation
|
||||||
p.updated = True
|
p.updated = True
|
||||||
return False
|
return False
|
||||||
if foundbuilding:
|
if foundbuilding:
|
||||||
msg = '%s is still building for repository %s' % (p.spackage, foundbuilding)
|
msg = '%s is still building for repository %s' % (p.spackage, foundbuilding)
|
||||||
print msg
|
print msg
|
||||||
self._check_repo_change_review_state(opts, p.request, 'new', message=msg)
|
self.checkrepo.change_review_state(p.request, 'new', message=msg)
|
||||||
# Next line not needed, but for documentation
|
# Next line not needed, but for documentation
|
||||||
p.updated = True
|
p.updated = True
|
||||||
return False
|
return False
|
||||||
@ -402,7 +375,7 @@ def _check_repo_buildsuccess(self, p, opts):
|
|||||||
msg = '%s failed to build in repository %s - not accepting' % (p.spackage, foundfailed)
|
msg = '%s failed to build in repository %s - not accepting' % (p.spackage, foundfailed)
|
||||||
# failures might be temporary, so don't autoreject but wait for a human to check
|
# failures might be temporary, so don't autoreject but wait for a human to check
|
||||||
print msg
|
print msg
|
||||||
self._check_repo_change_review_state(opts, p.request, 'new', message=msg)
|
self.checkrepo.change_review_state(p.request, 'new', message=msg)
|
||||||
# Next line not needed, but for documentation
|
# Next line not needed, but for documentation
|
||||||
p.updated = True
|
p.updated = True
|
||||||
return False
|
return False
|
||||||
@ -540,7 +513,7 @@ def _check_repo_group(self, id_, reqs, opts):
|
|||||||
if p.error:
|
if p.error:
|
||||||
if not p.updated:
|
if not p.updated:
|
||||||
print p.error
|
print p.error
|
||||||
self._check_repo_change_review_state(opts, p.request, 'new', message=p.error)
|
self.checkrepo.change_review_state(p.request, 'new', message=p.error)
|
||||||
p.updated = True
|
p.updated = True
|
||||||
else:
|
else:
|
||||||
print p.error
|
print p.error
|
||||||
@ -596,7 +569,7 @@ def _check_repo_group(self, id_, reqs, opts):
|
|||||||
if len(smissing):
|
if len(smissing):
|
||||||
msg = 'Please make sure to wait before these depencencies are in %s: %s' % (p.tproject, ', '.join(smissing))
|
msg = 'Please make sure to wait before these depencencies are in %s: %s' % (p.tproject, ', '.join(smissing))
|
||||||
if not p.updated:
|
if not p.updated:
|
||||||
self._check_repo_change_review_state(opts, p.request, 'new', message=msg)
|
self.checkrepo.change_review_state(p.request, 'new', message=msg)
|
||||||
print msg
|
print msg
|
||||||
p.updated = True
|
p.updated = True
|
||||||
else:
|
else:
|
||||||
@ -666,7 +639,7 @@ def _check_repo_group(self, id_, reqs, opts):
|
|||||||
if updated.get(p.request, False) or p.updated:
|
if updated.get(p.request, False) or p.updated:
|
||||||
continue
|
continue
|
||||||
print stdoutdata
|
print stdoutdata
|
||||||
self._check_repo_change_review_state(opts, p.request, 'new', message=stdoutdata)
|
self.checkrepo.change_review_state(p.request, 'new', message=stdoutdata)
|
||||||
p.updated = True
|
p.updated = True
|
||||||
updated[p.request] = 1
|
updated[p.request] = 1
|
||||||
return
|
return
|
||||||
@ -675,7 +648,7 @@ def _check_repo_group(self, id_, reqs, opts):
|
|||||||
continue
|
continue
|
||||||
msg = 'Builds for repo %s' % p.goodrepo
|
msg = 'Builds for repo %s' % p.goodrepo
|
||||||
print 'ACCEPTED', msg
|
print 'ACCEPTED', msg
|
||||||
self._check_repo_change_review_state(opts, p.request, 'accepted', message=msg)
|
self.checkrepo.change_review_state(p.request, 'accepted', message=msg)
|
||||||
p.updated = True
|
p.updated = True
|
||||||
updated[p.request] = 1
|
updated[p.request] = 1
|
||||||
shutil.rmtree(destdir)
|
shutil.rmtree(destdir)
|
||||||
@ -702,12 +675,12 @@ def do_check_repo(self, subcmd, opts, *args):
|
|||||||
opts.verbose = False
|
opts.verbose = False
|
||||||
opts.apiurl = self.get_api_url()
|
opts.apiurl = self.get_api_url()
|
||||||
|
|
||||||
checkrepo = CheckRepo(opts.apiurl)
|
self.checkrepo = CheckRepo(opts.apiurl)
|
||||||
|
|
||||||
# XXX TODO - Remove this the all access to opt.group[s|ed] comes
|
# XXX TODO - Remove this the all access to opt.group[s|ed] comes
|
||||||
# from checkrepo.
|
# from checkrepo.
|
||||||
opts.grouped = checkrepo.grouped
|
opts.grouped = self.checkrepo.grouped
|
||||||
opts.groups = checkrepo.groups
|
opts.groups = self.checkrepo.groups
|
||||||
|
|
||||||
if opts.skip:
|
if opts.skip:
|
||||||
if not len(args):
|
if not len(args):
|
||||||
@ -716,7 +689,7 @@ def do_check_repo(self, subcmd, opts, *args):
|
|||||||
for id_ in args:
|
for id_ in args:
|
||||||
msg = 'skip review'
|
msg = 'skip review'
|
||||||
print 'ACCEPTED', msg
|
print 'ACCEPTED', msg
|
||||||
self._check_repo_change_review_state(opts, id_, 'accepted', message=msg)
|
self.checkrepo.change_review_state(id_, 'accepted', message=msg)
|
||||||
return
|
return
|
||||||
|
|
||||||
ids = [arg for arg in args if arg.isdigit()]
|
ids = [arg for arg in args if arg.isdigit()]
|
||||||
|
@ -59,6 +59,9 @@ class CheckRepo(object):
|
|||||||
query = {
|
query = {
|
||||||
'cmd': 'changereviewstate',
|
'cmd': 'changereviewstate',
|
||||||
'newstate': newstate,
|
'newstate': newstate,
|
||||||
|
# XXX TODO - We force the user here, check if the user
|
||||||
|
# expressed in .oscrc (with the password stored) have
|
||||||
|
# rights to become this user.
|
||||||
'by_user': 'factory-repo-checker',
|
'by_user': 'factory-repo-checker',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user