From b7e8d6e3fc8e6efb3b65e44abe544403ae2b6031 Mon Sep 17 00:00:00 2001 From: "Nicholas St. Germain" Date: Tue, 12 Feb 2019 13:02:00 -0600 Subject: [PATCH] keep retrying geolite database download. Fixes #103 --- varken/helpers.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/varken/helpers.py b/varken/helpers.py index 77fb542..34ab940 100644 --- a/varken/helpers.py +++ b/varken/helpers.py @@ -2,6 +2,7 @@ from hashlib import md5 from datetime import date from logging import getLogger from ipaddress import IPv4Address +from urllib.error import HTTPError from calendar import monthcalendar from geoip2.database import Reader from tarfile import open as taropen @@ -68,9 +69,15 @@ class GeoIPHandler(object): def download(self): tar_dbfile = abspath(join(self.data_folder, 'GeoLite2-City.tar.gz')) url = 'http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz' + downloaded = False - self.logger.info('Downloading GeoLite2 from %s', url) - urlretrieve(url, tar_dbfile) + while not downloaded: + self.logger.info('Downloading GeoLite2 from %s', url) + try: + urlretrieve(url, tar_dbfile) + downloaded = True + except HTTPError as e: + self.logger.error('Problem downloading new MaxMind DB... Trying again. Error: %s', e) self.logger.debug('Opening GeoLite2 tar file : %s', tar_dbfile)