From 35cb12f751b2a7f22bae571950f42269acca3df6 Mon Sep 17 00:00:00 2001 From: "Nicholas St. Germain" Date: Sun, 9 Dec 2018 22:56:09 -0600 Subject: [PATCH] passed data folder to tautulli for helper functions. Fixes #46 --- Varken.py | 2 +- varken/cisco.py | 1 - varken/helpers.py | 17 +++++++++-------- varken/tautulli.py | 9 +++++---- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/Varken.py b/Varken.py index 6fe4ec3..bd6c1b8 100644 --- a/Varken.py +++ b/Varken.py @@ -79,7 +79,7 @@ if __name__ == "__main__": if CONFIG.tautulli_enabled: for server in CONFIG.tautulli_servers: - TAUTULLI = TautulliAPI(server, DBMANAGER) + TAUTULLI = TautulliAPI(server, DBMANAGER, DATA_FOLDER) if server.get_activity: schedule.every(server.get_activity_run_seconds).seconds.do(threaded, TAUTULLI.get_activity) diff --git a/varken/cisco.py b/varken/cisco.py index 6ce3392..750ad89 100644 --- a/varken/cisco.py +++ b/varken/cisco.py @@ -39,7 +39,6 @@ class CiscoAPI(object): return req = self.session.prepare_request(Request('GET', self.firewall.url + endpoint)) - print(req.headers) get = connection_handler(self.session, req, self.firewall.verify_ssl) if not get: diff --git a/varken/helpers.py b/varken/helpers.py index 25f99d9..b746085 100644 --- a/varken/helpers.py +++ b/varken/helpers.py @@ -14,21 +14,22 @@ from urllib.request import urlretrieve logger = logging.getLogger('varken') -def geoip_download(): - tar_dbfile = abspath(join('.', 'data', 'GeoLite2-City.tar.gz')) +def geoip_download(data_folder): + datafolder = data_folder + tar_dbfile = abspath(join(datafolder, 'GeoLite2-City.tar.gz')) url = 'http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz' urlretrieve(url, tar_dbfile) tar = tarfile.open(tar_dbfile, 'r:gz') for files in tar.getmembers(): if 'GeoLite2-City.mmdb' in files.name: files.name = os.path.basename(files.name) - tar.extract(files, abspath(join('.', 'data'))) + tar.extract(files, datafolder) os.remove(tar_dbfile) -def geo_lookup(ipaddress): - - dbfile = abspath(join('.', 'data', 'GeoLite2-City.mmdb')) +def geo_lookup(ipaddress, data_folder): + datafolder = data_folder + dbfile = abspath(join(datafolder, 'GeoLite2-City.mmdb')) now = time.time() try: @@ -36,9 +37,9 @@ def geo_lookup(ipaddress): db_age = now - dbinfo.st_ctime if db_age > (35 * 86400): os.remove(dbfile) - geoip_download() + geoip_download(datafolder) except FileNotFoundError: - geoip_download() + geoip_download(datafolder) reader = geoip2.database.Reader(dbfile) diff --git a/varken/tautulli.py b/varken/tautulli.py index 5ce6773..9112f83 100644 --- a/varken/tautulli.py +++ b/varken/tautulli.py @@ -8,7 +8,7 @@ from varken.structures import TautulliStream class TautulliAPI(object): - def __init__(self, server, dbmanager): + def __init__(self, server, dbmanager, data_folder): # Set Time of initialization self.now = datetime.now(timezone.utc).astimezone().isoformat() self.dbmanager = dbmanager @@ -17,6 +17,7 @@ class TautulliAPI(object): self.session.params = {'apikey': self.server.api_key, 'cmd': 'get_activity'} self.endpoint = '/api/v2' self.logger = logging.getLogger() + self.data_folder = data_folder def __repr__(self): return "".format(self.server.id) @@ -41,13 +42,13 @@ class TautulliAPI(object): for session in sessions: try: - geodata = geo_lookup(session.ip_address_public) + geodata = geo_lookup(session.ip_address_public, self.data_folder) except (ValueError, AddressNotFoundError): if self.server.fallback_ip: - geodata = geo_lookup(self.server.fallback_ip) + geodata = geo_lookup(self.server.fallback_ip, self.data_folder) else: my_ip = self.session.get('http://ip.42.pl/raw').text - geodata = geo_lookup(my_ip) + geodata = geo_lookup(my_ip, self.data_folder) if not all([geodata.location.latitude, geodata.location.longitude]): latitude = 37.234332396