in elkserver/docker/redelk-base/redelkinstalldata/scripts/daemon.py [0:0]
def run_alarms(alarm_dict):
"""Run the different alarm scripts that are enabled and return the results"""
logger.info("Running alarm modules")
# this means we've loaded the modules and will now loop over those one by one
for alarm_module in alarm_dict:
if module_should_run(alarm_module, "redelk_alarm"):
try:
logger.debug("[a] initiating class Module() in %s", alarm_module)
module_class = alarm_dict[alarm_module]["m"].Module()
logger.debug(
"[a] Running Run() from the Module class in %s", alarm_module
)
alarm_dict[alarm_module]["result"] = copy.deepcopy(module_class.run())
hits = len(alarm_dict[alarm_module]["result"]["hits"]["hits"])
module_did_run(
alarm_module,
"alarm",
"success",
f"Found {hits} documents to alarm",
hits,
)
alarm_dict[alarm_module]["status"] = "success"
# pylint: disable=broad-except
except Exception as error:
stack_trace = traceback.format_exc()
msg = f"Error running alarm {alarm_module}: {error} | StackTrace: {stack_trace}"
logger.error(msg)
logger.exception(error)
module_did_run(alarm_module, "alarm", "error", msg)
alarm_dict[alarm_module]["status"] = "error"
else:
alarm_dict[alarm_module]["status"] = "did_not_run"
return alarm_dict