Merge pull request #405 from nilxam/ignore_pending
ignore package if has a pending request against it
This commit is contained in:
commit
7c530ff866
@ -71,6 +71,8 @@ class UpdateCrawler(object):
|
||||
self.packages = dict()
|
||||
for project in self.projects + self.project_preference_order:
|
||||
self.packages[project] = self.get_source_packages(project)
|
||||
self.pending_requests = []
|
||||
self.pending_requests = self.get_requests_list(self.from_prj)
|
||||
|
||||
@memoize()
|
||||
def _cached_GET(self, url):
|
||||
@ -111,6 +113,21 @@ class UpdateCrawler(object):
|
||||
return None
|
||||
return requestid.text
|
||||
|
||||
def get_requests_list(self, project):
|
||||
""" Return package name of pending review requests """
|
||||
requests = []
|
||||
target = "action[target/@project='{}']".format(project)
|
||||
query = "match=({})+and+({})".format("state/@name='new'+or+state/@name='review'", target)
|
||||
url = makeurl(self.apiurl,['search', 'request'], query)
|
||||
f = http_GET(url)
|
||||
root = ET.parse(f).getroot()
|
||||
for rq in root.findall('request'):
|
||||
action = rq.findall('action')
|
||||
action = action[0] # take the first one only
|
||||
requests.append(action.find('target').get('package'))
|
||||
|
||||
return requests
|
||||
|
||||
def get_request_infos(self, requestid):
|
||||
request = self.cached_GET(makeurl(self.apiurl, ['request', requestid]))
|
||||
root = ET.fromstring(request)
|
||||
@ -172,6 +189,11 @@ class UpdateCrawler(object):
|
||||
def link_packages(self, packages, sourceprj, sourcepkg, sourcerev, targetprj, targetpkg):
|
||||
logging.info("update link %s/%s -> %s/%s@%s [%s]", targetprj, targetpkg, sourceprj, sourcepkg, sourcerev, ','.join(packages))
|
||||
|
||||
# check do it have pending review request against this package
|
||||
if targetpkg in self.pending_requests:
|
||||
logging.info("There is a pending request to %s / %s, ignore!"%(self.from_prj, packages))
|
||||
return
|
||||
|
||||
# make sure 'packages' covers all subpackages
|
||||
subpackages, mainpackage = self.get_specfiles(self.from_prj, targetpkg)
|
||||
if subpackages:
|
||||
|
Loading…
x
Reference in New Issue
Block a user