checkrepo: utilize the devel project for requests from Factory.

Assuming requests are forwarded to Leap after being accepted into Factory
the devel project can be reviewed just as when the requests were submitted
to Factory.
This commit is contained in:
Jimmy Berry 2017-05-11 22:23:22 -05:00
parent e29f7e060b
commit 35e03460bf

View File

@ -46,7 +46,7 @@ class Request(object):
revision=None, srcmd5=None, verifymd5=None, revision=None, srcmd5=None, verifymd5=None,
group=None, goodrepos=None, missings=None, group=None, goodrepos=None, missings=None,
is_shadow=None, shadow_src_project=None, is_shadow=None, shadow_src_project=None,
element=None): element=None, staging=None):
self.request_id = request_id self.request_id = request_id
self.src_project = src_project self.src_project = src_project
@ -71,9 +71,9 @@ class Request(object):
self.i686_only = ['glibc.i686'] self.i686_only = ['glibc.i686']
if element: if element:
self.load(element) self.load(element, staging)
def load(self, element): def load(self, element, staging):
"""Load a node from a ElementTree request XML element.""" """Load a node from a ElementTree request XML element."""
self.request_id = int(element.get('id')) self.request_id = int(element.get('id'))
@ -100,8 +100,13 @@ class Request(object):
# release, and adjust the source and target projects # release, and adjust the source and target projects
_is_product = re.match(r'openSUSE:Leap:\d{2}.\d', self.tgt_project) _is_product = re.match(r'openSUSE:Leap:\d{2}.\d', self.tgt_project)
if self.src_project == 'openSUSE:Factory' and _is_product: if self.src_project == 'openSUSE:Factory' and _is_product:
self.is_shadow_devel = True devel = staging.get_devel_project(self.src_project, self.src_package)
self.shadow_src_project = '%s:Staging:repochecker' % self.tgt_project if devel:
self.is_shadow_devel = False
self.shadow_src_project = devel
else:
self.is_shadow_devel = True
self.shadow_src_project = '%s:Staging:repochecker' % self.tgt_project
else: else:
self.is_shadow_devel = False self.is_shadow_devel = False
self.shadow_src_project = self.src_project self.shadow_src_project = self.src_project
@ -234,7 +239,7 @@ class CheckRepo(object):
url = makeurl(self.apiurl, ('request', str(request_id))) url = makeurl(self.apiurl, ('request', str(request_id)))
request = ET.parse(http_GET(url)).getroot() request = ET.parse(http_GET(url)).getroot()
if internal: if internal:
request = Request(element=request) request = Request(element=request, staging=self.staging)
except urllib2.HTTPError, e: except urllib2.HTTPError, e:
print('ERROR in URL %s [%s]' % (url, e)) print('ERROR in URL %s [%s]' % (url, e))
return request return request
@ -274,7 +279,7 @@ class CheckRepo(object):
url = makeurl(self.apiurl, ('search', 'request'), query=query) url = makeurl(self.apiurl, ('search', 'request'), query=query)
collection = ET.parse(http_GET(url)).getroot() collection = ET.parse(http_GET(url)).getroot()
for root in collection.findall('request'): for root in collection.findall('request'):
_request = Request(element=root) _request = Request(element=root, staging=self.staging)
request_id = _request.request_id request_id = _request.request_id
except urllib2.HTTPError, e: except urllib2.HTTPError, e:
print('ERROR in URL %s [%s]' % (url, e)) print('ERROR in URL %s [%s]' % (url, e))
@ -405,7 +410,7 @@ class CheckRepo(object):
self.change_review_state(request_id, 'declined', message=msg) self.change_review_state(request_id, 'declined', message=msg)
return requests return requests
rq = Request(element=request) rq = Request(element=request, staging=self.staging)
if rq.action_type != 'submit' and rq.action_type != 'delete': if rq.action_type != 'submit' and rq.action_type != 'delete':
msg = 'Unchecked request type %s' % rq.action_type msg = 'Unchecked request type %s' % rq.action_type