Merge pull request #113 from kleag/master

Avoid to crash in case of HTTP 502 error
This commit is contained in:
Jose Diaz-Gonzalez
2019-06-04 14:43:10 -04:00
committed by GitHub

View File

@@ -1,6 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
from __future__ import print_function from __future__ import print_function
import socket
import argparse import argparse
import base64 import base64
@@ -404,6 +405,16 @@ def retrieve_data(args, template, query_args=None, single_request=False):
status_code = int(r.getcode()) status_code = int(r.getcode())
retries = 0
while retries < 3 and status_code == 502:
print('API request returned HTTP 502: Bad Gateway. Retrying in 5 seconds')
retries += 1
time.sleep(5)
request = _construct_request(per_page, page, query_args, template, auth) # noqa
r, errors = _get_response(request, auth, template)
status_code = int(r.getcode())
if status_code != 200: if status_code != 200:
template = 'API request returned HTTP {0}: {1}' template = 'API request returned HTTP {0}: {1}'
errors.append(template.format(status_code, r.reason)) errors.append(template.format(status_code, r.reason))
@@ -450,6 +461,11 @@ def _get_response(request, auth, template):
should_continue = _request_url_error(template, retry_timeout) should_continue = _request_url_error(template, retry_timeout)
if not should_continue: if not should_continue:
raise raise
except socket.error as e:
log_warning(e.strerror)
should_continue = _request_url_error(template, retry_timeout)
if not should_continue:
raise
if should_continue: if should_continue:
continue continue