Remove unused imports, and add VAR_DIR const, to place position and dump.pickle somewhere outside CWD in preparation for running this as a service:)

This commit is contained in:
2024-06-30 17:15:53 +02:00
parent 3be6d5bcfe
commit 770b122ece

View File

@ -4,18 +4,18 @@ import signal
import os
import io
import sys
import stat
from multiprocessing import Process, Queue
import socketserver
import threading
import queue
from datetime import datetime, timedelta
from datetime import datetime
import logging
import time
import pickle
from setproctitle import setproctitle
VAR_DIR = '/var/cache/routerstats/'
logging.basicConfig(
format='%(asctime)s %(funcName)20s %(levelname)-8s %(message)s',
level=logging.INFO,
@ -107,7 +107,7 @@ def shutdown_filefetcher(output_queue, input_file):
'''Cleanly close filehandles, save log position and queue contents'''
cur_pos = input_file.tell()
input_file.close()
with open('position', 'w') as output_file:
with open(VAR_DIR + 'position', 'w') as output_file:
logging.debug('Saving current position ' + str(cur_pos))
output_file.write(str(cur_pos))
dump_queue(output_queue)
@ -155,6 +155,9 @@ def parse_line(input_line: str) -> dict:
#This might happen around first of january
logline_time = logline_time.replace(year=logline_time.year - 1)
timestamp = int(logline_time.timestamp())
#FIXME Make this configurable somehow
if zone in ['loc-net', 'router-net']:
zone = 'loc-net'
retval = (timestamp, zone)
logging.debug('Parsed line to ' + str(retval))
return retval
@ -175,7 +178,7 @@ def dump_queue(queue_to_dump: Queue):
if out_list:
logging.debug('Saving ' + str(len(out_list)) + ' entries to dump.pickle')
to_save = pickle.dumps(out_list)
with open('dump.pickle', 'wb') as output_file:
with open(VAR_DIR + 'dump.pickle', 'wb') as output_file:
bytes_written = output_file.write(to_save)
logging.debug('Saved ' + str(len(out_list)) + ' entries, taking ' + str(bytes_written) + ' bytes')
@ -188,7 +191,7 @@ def signal_handler(signum, frame):
def load_pickled_file(output_queue):
'''Load queue contents from pickled queue structure'''
#Does our dump file exist?
loadfile = 'dump.pickle'
loadfile = VAR_DIR + 'dump.pickle'
if os.path.isfile(loadfile):
size = os.stat(loadfile).st_size
logging.debug(loadfile + ' exists, loading ' + str(size) + ' bytes.')
@ -206,8 +209,8 @@ def load_pickled_file(output_queue):
def load_start_pos(logfile):
'''Read start position from file, if it exists'''
#Do we have any position we want to start from?
if os.path.isfile('position'):
with open('position', 'r') as input_file:
if os.path.isfile(VAR_DIR + 'position'):
with open(VAR_DIR + 'position', 'r') as input_file:
tmp_start_pos = input_file.readline()
try:
tmp_start_pos = int(tmp_start_pos)