mirror of https://github.com/MISP/misp-modules
Skeleton for misp-modules helpers added
Helpers will support modules with basic functionalities like caching or alike.pull/12/head
parent
7517485227
commit
be1962195b
|
@ -5,3 +5,4 @@ urlarchiver
|
|||
passivetotal
|
||||
PyPDNS
|
||||
pypssl
|
||||
redis
|
||||
|
|
|
@ -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)]
|
||||
|
||||
|
|
|
@ -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.'
|
Loading…
Reference in New Issue