lister/core: Fix missing use case about no response from api server

UnboundLocalError could happen otherwise
This commit is contained in:
Antoine R. Dumont (@ardumont) 2018-07-20 12:06:56 +02:00
parent bbef4bdeae
commit ff3afe391c
No known key found for this signature in database
GPG key ID: 52E2E9840D10C3B8
3 changed files with 10 additions and 1 deletions

View file

@ -174,6 +174,9 @@ class SWHIndexingLister(SWHListerBase):
logging.info('listing repos starting at %s' % index)
response, injected_repos = self.ingest_data(index)
if not response and not injected_repos:
logging.info('No response from api server, stopping')
break
next_index = self.get_next_target_from_response(response)

View file

@ -285,6 +285,7 @@ class SWHListerBase(abc.ABC, config.SWHConfig):
"""
retries_left = self.MAX_RETRIES
do_cache = self.config['cache_responses']
r = None
while retries_left > 0:
try:
r = self.transport_request(identifier)
@ -486,6 +487,8 @@ class SWHListerBase(abc.ABC, config.SWHConfig):
"""
# Request (partial?) list of repositories info
response = self.safely_issue_request(identifier)
if not response:
return response, []
models_list = self.transport_response_simplified(response)
models_list = self.filter_before_inject(models_list)
if checks:

View file

@ -121,7 +121,10 @@ class PageByPageLister(SWHListerBase):
response, injected_repos = self.ingest_data(page,
checks=check_existence)
if not injected_repos:
if not response and not injected_repos:
logging.info('No response from api server, stopping')
break
elif not injected_repos:
logging.info('Repositories already seen, stopping')
break