- try:
- log.append(("INFO", " Connecting to '{0}' ...".format(url)))
-
- response = get(url, stream=True)
- code = response.status_code
-
- log.append(("INFO", " {0}: {1}".format(code, responses[code])))
-
- if code != codes["OK"]:
- return False
-
- log.append(("INFO", " Downloading the file '{0}' to '{1}' ...".
- format(url, file_name)))
-
- file_handle = open(file_name, "wb")
- for chunk in response.iter_content(chunk_size=CHUNK_SIZE):
- if chunk:
- file_handle.write(chunk)
- file_handle.close()
- success = True
- except ConnectionError as err:
- log.append(("ERROR", "Not possible to connect to '{0}'.".format(url)))
- log.append(("DEBUG", str(err)))
- except HTTPError as err:
- log.append(("ERROR", "Invalid HTTP response from '{0}'.".format(url)))
- log.append(("DEBUG", str(err)))
- except TooManyRedirects as err:
- log.append(("ERROR", "Request exceeded the configured number "
- "of maximum re-directions."))
- log.append(("DEBUG", str(err)))
- except Timeout as err:
- log.append(("ERROR", "Request timed out."))
- log.append(("DEBUG", str(err)))
- except RequestException as err:
- log.append(("ERROR", "Unexpected HTTP request exception."))
- log.append(("DEBUG", str(err)))
- except (IOError, ValueError, KeyError) as err:
- log.append(("ERROR", "Download failed."))
- log.append(("DEBUG", str(err)))
-
- log.append(("INFO", " Download finished."))
- return success
+ while repeat:
+ repeat -= 1
+ session = None
+ try:
+ logging.info(f" Connecting to {url} ...")
+ session = requests_retry_session()
+ response = session.get(url, stream=True, verify=verify)
+ code = response.status_code
+ logging.info(f" {code}: {responses[code]}")
+
+ if code != codes[u"OK"]:
+ if session:
+ session.close()
+ url = url.replace(u"_info", u"")
+ logging.info(f" Connecting to {url} ...")
+ session = requests_retry_session()
+ response = session.get(url, stream=True, verify=verify)
+ code = response.status_code
+ logging.info(f" {code}: {responses[code]}")
+ if code != codes[u"OK"]:
+ return False, file_name
+ file_name = file_name.replace(u"_info", u"")