diff --git a/server/analyzer/analyzer-d4-stdout/d4-stdout.py b/server/analyzer/analyzer-d4-stdout/d4-stdout.py new file mode 100755 index 0000000..8417240 --- /dev/null +++ b/server/analyzer/analyzer-d4-stdout/d4-stdout.py @@ -0,0 +1,78 @@ +#!/usr/bin/env python3 + +import os +import sys + +import redis +import time +import datetime + +import argparse +import logging +import logging.handlers + +host_redis='127.0.0.1' +port_redis=6380 + +redis_d4= redis.StrictRedis( + host=host_redis, + port=port_redis, + db=2) +try: + redis_d4.ping() +except redis.exceptions.ConnectionError: + print('Error: Redis server {}:{}, ConnectionError'.format(host_redis, port_redis)) + sys.exit(1) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description='Export d4 data to stdout') + parser.add_argument('-t', '--type', help='d4 type' , type=int, dest='type') + parser.add_argument('-u', '--uuid', help='queue uuid' , type=str, dest='uuid') + parser.add_argument('-i', '--ip',help='redis host' , type=str, default='127.0.0.1', dest='host_redis') + parser.add_argument('-p', '--port',help='redis port' , type=int, default=6380, dest='port_redis') + args = parser.parse_args() + + if not args.uuid or not args.type: + parser.print_help() + sys.exit(0) + + host_redis=args.host_redis + port_redis=args.port_redis + + redis_d4= redis.StrictRedis( + host=host_redis, + port=port_redis, + db=2) + try: + redis_d4.ping() + except redis.exceptions.ConnectionError: + print('Error: Redis server {}:{}, ConnectionError'.format(host_redis, port_redis)) + sys.exit(1) + + # logs_dir = 'logs' + # if not os.path.isdir(logs_dir): + # os.makedirs(logs_dir) + # + # log_filename = 'logs/d4-stdout.log' + # logger = logging.getLogger() + # formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') + # handler_log = logging.handlers.TimedRotatingFileHandler(log_filename, when="midnight", interval=1) + # handler_log.suffix = '%Y-%m-%d.log' + # handler_log.setFormatter(formatter) + # logger.addHandler(handler_log) + # logger.setLevel(args.verbose) + # + # logger.info('Launching stdout Analyzer ...') + + d4_uuid = args.uuid + d4_type = args.type + + data_queue = 'analyzer:{}:{}'.format(d4_type, d4_uuid) + + while True: + d4_data = redis_d4.rpop(data_queue) + if d4_data is None: + time.sleep(1) + continue + sys.stdout.buffer.write(d4_data)