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