Skeleton for misp-modules helpers added

Helpers will support modules with basic functionalities
like caching or alike.
pull/12/head
Alexandre Dulaunoy 2016-04-18 08:34:07 +02:00
parent 7517485227
commit be1962195b
3 changed files with 37 additions and 1 deletions

View File

@ -5,3 +5,4 @@ urlarchiver
passivetotal
PyPDNS
pypssl
redis

View File

@ -27,7 +27,7 @@ import json
import logging
import fnmatch
import argparse
import re
def init_logger():
log = logging.getLogger('misp-modules')
@ -41,6 +41,26 @@ def init_logger():
return log
def load_helpers(helpersdir='../helpers'):
sys.path.append(helpersdir)
hhandlers = {}
helpers = []
for root, dirnames, filenames in os.walk(helpersdir):
if os.path.basename(root) == '__pycache__':
continue
if re.match(r'^\.', os.path.basename(root)):
continue
for filename in fnmatch.filter(filenames, '*.py'):
helpername = filename.split(".")[0]
hhandlers[helpername] = importlib.import_module(helpername)
selftest= hhandlers[helpername].selftest()
if selftest is None:
helpers.append(helpername)
log.info('Helpers loaded {} '.format(filename))
else:
log.info('Helpers failed {} due to {}'.format(filename, selftest))
def load_modules(mod_dir):
sys.path.append(mod_dir)
mhandlers = {}
@ -90,7 +110,9 @@ if __name__ == '__main__':
args = argParser.parse_args()
port = args.p
modulesdir = '../modules'
helpersdir = '../helpers'
log = init_logger()
load_helpers(helpersdir=helpersdir)
mhandlers, modules = load_modules(modulesdir)
service = [(r'/modules', ListModules), (r'/query', QueryModule)]

13
helpers/cache.py Normal file
View File

@ -0,0 +1,13 @@
import redis
port = 6379
hostname = '127.0.0.1'
def selftest(enable=True):
if not enable:
return False
r = redis.StrictRedis(host='localhost', port=port)
try:
r.set('test','selftest')
except:
return 'Redis not running or not installed. Helper will be disabled.'