def enforce_time_window(time): """ given a datetime, return the start time of it's TIME_WINDOW aka - 'round down' a time into our TIME_WINDOW """ if not Config.get('TIME_WINDOW'): return time return from_epoch( epoch(time) // Config.get('TIME_WINDOW') * Config.get('TIME_WINDOW'))
from datetime import datetime, timedelta from time import sleep import requests from docket import celery from config import Config from common.utils import parse_duration, parse_capacity, from_epoch, ISOFORMAT, file_modified, \ spool_space, readdir, is_str from resources.query import Query #logger = Config.logger _LAST_CLEANED = datetime.utcnow() _INSTANCES = Config.get('STENOGRAPHER_INSTANCES') for _ in _INSTANCES: _['idle'], _['stats'] = (from_epoch(0), {}) # IDLE_TIME - 5, assume stenoboxes remain IDLE for 5 seconds and check again after that. IDLE_TIME = Config.setdefault('IDLE_TIME', 5, minval=1) # IDLE_SLEEP - 2.0, wait time between IDLE queries. will occur at least every IDLE_TIME. IDLE_SLEEP = Config.setdefault('IDLE_SLEEP', 2.0, minval=0) # STAT_TIMEOUT - 3.0, assume stenoboxes are broken if stats doesn't return in this many seconds STAT_TIMEOUT = Config.setdefault('STAT_TIMEOUT', 3.0, minval=0.1) # QUERY_TIMEOUT- 720, assume stenoboxes are broken if a query doesn't return in this many seconds QUERY_TIMEOUT = Config.setdefault('QUERY_TIMEOUT', 720.0, minval=5) # MERGED_NAME - name of the final result pcap MERGED_NAME = Config.setdefault('MERGED_NAME', "merged") EXPIRE_TIME = parse_duration(Config.get('EXPIRE_TIME', 0)) EXPIRE_SPACE = parse_capacity(Config.get('EXPIRE_SPACE', 0))