in elkserver/docker/redelk-base/redelkinstalldata/scripts/daemon.py [0:0]
def load_modules():
"""Attempt to load the different modules in their respective dictionaries, and return them"""
alarm_dict = {} # aD alarm Dict
connector_dict = {} # cD connector Dict
enrich_dict = {} # eD enrich Dict
module_folders = os.listdir(MODULES_PATH)
for module_name in module_folders:
# only take folders and not '__pycache__'
if (
os.path.isdir(os.path.join(MODULES_PATH, module_name))
and module_name != "__pycache__"
):
try:
module = importlib.import_module(f"modules.{module_name}.module")
if hasattr(module, "info") and hasattr(module, "Module"):
module_type = module.info.get("type", None)
if module_type == "redelk_alarm":
alarm_dict[module_name] = {}
alarm_dict[module_name]["info"] = module.info
alarm_dict[module_name]["m"] = module
alarm_dict[module_name]["status"] = "pending"
elif module_type == "redelk_connector":
connector_dict[module_name] = {}
connector_dict[module_name]["info"] = module.info
connector_dict[module_name]["m"] = module
connector_dict[module_name]["status"] = "pending"
elif module_type == "redelk_enrich":
enrich_dict[module_name] = {}
enrich_dict[module_name]["info"] = module.info
enrich_dict[module_name]["m"] = module
enrich_dict[module_name]["status"] = "pending"
# pylint: disable=broad-except
except Exception as error:
logger.error("Error in module %s: %s", module_name, error)
logger.exception(error)
return (alarm_dict, connector_dict, enrich_dict)