don't consider a normal supersede a move

This commit is contained in:
Stephan Kulow 2014-03-05 17:20:29 +01:00
parent 7c18c7da08
commit d64f9a3f6a
2 changed files with 16 additions and 7 deletions

View File

@ -93,16 +93,23 @@ class RequestFinder:
for sr in root.findall('request'):
# TODO: check the package matches - OBS is case insensitive
request = int(sr.get('id'))
self.srs[request] = {'project': 'openSUSE:Factory'}
state = sr.find('state').get('name')
self.srs[request] = {'project': 'openSUSE:Factory', 'state': state }
review = self._new_review_by_project(request, sr)
if review:
self.srs[int(request)]['staging'] = review
if ret:
msg = 'There are multiple requests for package "{}": {} and {}'
msg = msg.format(package, ret, request)
raise oscerr.WrongArgs(msg)
if self.srs[ret]['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]
else:
msg = 'There are multiple requests for package "{}": {} and {}'
msg = msg.format(package, ret, request)
raise oscerr.WrongArgs(msg)
ret = request
return ret

View File

@ -26,6 +26,8 @@ class SelectCommand(object):
package = self._package(request)
for staging in self.api.get_staging_projects():
if staging == self.tprj: # requests for the same project are fine
continue
for rq in self.api.get_prj_pseudometa(staging)['requests']:
if rq['id'] != request and rq['package'] == package:
return (rq['id'], package, staging)
@ -50,13 +52,13 @@ class SelectCommand(object):
return self.api.move_between_project(fprj, rq, self.tprj)
elif 'staging' in rq_prj and not move:
# Previously selected, but not explicit move
msg = 'Request {} is actually in "{}".\n'
msg = 'Request {} is already tracked in "{}".'
msg = msg.format(rq, rq_prj['staging'])
if rq_prj['staging'] != self.tprj:
msg += 'Use --move modifier to move the request from "{}" to "{}"'
msg += '\nUse --move modifier to move the request from "{}" to "{}"'
msg = msg.format(rq_prj['staging'], self.tprj)
print(msg)
return False
return True
else:
raise oscerr.WrongArgs('Arguments for select are not correct.')