X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=common%2Fpython%2Frift%2Fdownloader%2Furl.py;fp=common%2Fpython%2Frift%2Fdownloader%2Furl.py;h=7ffb99970f7598b26aea19985292a66add4d0e61;hb=88879e8fb1aa64ad710781a9fde3e49f3bed21a7;hp=27688945996b615d3b341ee4069cd46185e6f7ec;hpb=ac9e53bb04d1cd79e8c936597dca18c19b4d3e0d;p=osm%2FSO.git diff --git a/common/python/rift/downloader/url.py b/common/python/rift/downloader/url.py index 27688945..7ffb9997 100644 --- a/common/python/rift/downloader/url.py +++ b/common/python/rift/downloader/url.py @@ -23,7 +23,6 @@ import os import tempfile import threading import time -import uuid import zlib import requests @@ -34,13 +33,8 @@ from requests.packages.urllib3.util.retry import Retry from requests.packages.urllib3.exceptions import InsecureRequestWarning requests.packages.urllib3.disable_warnings(InsecureRequestWarning) -import gi -gi.require_version("RwPkgMgmtYang", "1.0") - -from gi.repository import RwPkgMgmtYang from . import base - class UrlDownloader(base.AbstractDownloader): """Handles downloads of URL with some basic retry strategy. """ @@ -106,7 +100,9 @@ class UrlDownloader(base.AbstractDownloader): def _create_session(self): session = requests.Session() - retries = Retry(total=5, backoff_factor=1) + # 3 connection attempts should be more than enough, We can't wait forever! + # The user needs to be updated of the status + retries = Retry(total=2, backoff_factor=1) session.mount("http://", HTTPAdapter(max_retries=retries)) session.mount("https://", HTTPAdapter(max_retries=retries)) @@ -153,8 +149,8 @@ class UrlDownloader(base.AbstractDownloader): try: os.remove(self.filepath) - except Exception as e: - self.log.exception(e) + except Exception: + pass def download(self): """Start the download @@ -186,13 +182,16 @@ class UrlDownloader(base.AbstractDownloader): def _download(self): - url_options = {"verify": False} + url_options = {"verify": False, "timeout": 1} if self.auth is not None: url_options["auth"] = self.auth response = self.session.head(self.url, **url_options) + if response.status_code != requests.codes.ok: + response.raise_for_status() + # Prepare the meta data self.meta.update_data_with_head(response.headers) self.meta.start_download()