Merge branch 'master' of github.com:openSUSE/osc-plugin-factory

Conflicts:
	osclib/request_finder.py
	osclib/stagingapi.py
This commit is contained in:
Tomáš Chvátal
2014-03-07 14:05:54 +01:00
4 changed files with 155 additions and 64 deletions

View File

@@ -98,30 +98,38 @@ class RequestFinder:
root = ET.parse(f).getroot()
ret = None
last_rq = None
for sr in root.findall('request'):
# TODO: check the package matches - OBS is case insensitive
# Check the package matches - OBS is case insensitive
rq_package = sr.find('action').find('target').get('package')
if package.lower() != rq_package.lower():
continue
request = int(sr.get('id'))
state = sr.find('state').get('name')
self.srs[request] = {'project': 'openSUSE:Factory', 'state': state}
review = self._new_review_by_project(request, sr)
review = self._is_new_review_by_project(request, sr)
if review:
self.srs[int(request)]['staging'] = review
if ret:
if self.srs[ret]['state'] == 'declined':
if last_rq:
if self.srs[last_rq]['state'] == 'declined':
# ignore previous requests if they are declined
# if they are the last one, it's fine to return them
del self.srs[ret]
del self.srs[last_rq]
else:
msg = 'There are multiple requests for package "{}": {} and {}'
msg = msg.format(package, ret, request)
msg = msg.format(package, last_rq, request)
raise oscerr.WrongArgs(msg)
ret = request
return ret
# Invariant of the loop: request is the max request ID searched so far
assert last_rq < request, 'Request ID do not increase monotonically'
last_rq = request
return last_rq
def find_request_project(self, source_project):
"""
@@ -141,7 +149,7 @@ class RequestFinder:
if src is not None and src.get('project') == source_project:
request = int(sr.attrib['id'])
self.srs[request] = {'project': 'openSUSE:Factory'}
review = self._new_review_by_project(request, sr)
review = self._is_new_review_by_project(request, sr)
if review:
self.srs[int(request)]['staging'] = review
ret = True