mirror of
https://github.com/josegonzalez/python-github-backup.git
synced 2025-12-06 08:28:03 +01:00
Merge pull request #113 from kleag/master
Avoid to crash in case of HTTP 502 error
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user