mirror of https://github.com/MISP/misp-dashboard
fix: Added missing file
parent
bb2ea839f3
commit
a2a3bd65b6
|
@ -0,0 +1,55 @@
|
|||
import os
|
||||
import json
|
||||
import random
|
||||
import datetime, time
|
||||
import logging
|
||||
|
||||
|
||||
class Live_helper:
|
||||
def __init__(self, serv_live, cfg):
|
||||
self.serv_live = serv_live
|
||||
self.cfg = cfg
|
||||
self.maxCacheHistory = cfg.get('Dashboard', 'maxCacheHistory')
|
||||
# REDIS keys
|
||||
self.CHANNEL = cfg.get('RedisLog', 'channel')
|
||||
self.prefix_redis_key = "TEMP_CACHE_LIVE:"
|
||||
|
||||
# logger
|
||||
logDir = cfg.get('Log', 'directory')
|
||||
logfilename = cfg.get('Log', 'filename')
|
||||
logPath = os.path.join(logDir, logfilename)
|
||||
if not os.path.exists(logDir):
|
||||
os.makedirs(logDir)
|
||||
logging.basicConfig(filename=logPath, filemode='a', level=logging.INFO)
|
||||
self.logger = logging.getLogger(__name__)
|
||||
|
||||
def publish_log(self, zmq_name, name, content, channel=None):
|
||||
channel = channel if channel is not None else self.CHANNEL
|
||||
to_send = { 'name': name, 'log': json.dumps(content), 'zmqName': zmq_name }
|
||||
to_send_keep = { 'name': name, 'log': content, 'zmqName': zmq_name }
|
||||
j_to_send = json.dumps(to_send)
|
||||
j_to_send_keep = json.dumps(to_send_keep)
|
||||
self.serv_live.publish(channel, j_to_send)
|
||||
self.logger.debug('Published: {}'.format(j_to_send))
|
||||
if name != 'Keepalive':
|
||||
self.add_to_stream_log_cache(name, j_to_send_keep)
|
||||
|
||||
|
||||
def get_stream_log_cache(self, cacheKey):
|
||||
rKey = self.prefix_redis_key+cacheKey
|
||||
entries = self.serv_live.lrange(rKey, 0, -1)
|
||||
to_ret = []
|
||||
for entry in entries:
|
||||
jentry = json.loads(entry.decode('utf8'))
|
||||
to_ret.append(jentry)
|
||||
return to_ret
|
||||
|
||||
|
||||
def add_to_stream_log_cache(self, cacheKey, item):
|
||||
rKey = self.prefix_redis_key+cacheKey
|
||||
if type(item) != str:
|
||||
item = json.dumps(item)
|
||||
self.serv_live.lpush(rKey, item)
|
||||
r = random.randint(0, 8)
|
||||
if r == 0:
|
||||
self.serv_live.ltrim(rKey, 0, 100)
|
Loading…
Reference in New Issue