import os import logging from core.runtime.applyconditions import applyConditions from core.runtime.resolver import resolveItem def buildFirewall(listener, outputs): if hasattr(listener, "filters"): #firewall_log = os.environ.get("LOGS_FIREWALL", "false").lower() == "true" firewall_log = True status_code = 200 outputs["firewall_allowed"] = [] for item in outputs[listener.recursive["source"]]: resolved = resolveItem(listener, item) match, filter = applyConditions(listener, resolved, outputs) if match: status_code = filter.get("status_code", 200) if filter.get("execute", False): from core.execution.createthread import buildThread thread = buildThread(filter["execute"]) if firewall_log: logging.info(filter.get("print")) logging.info(f"Returning status_code: {status_code}") continue outputs["firewall_allowed"].append(item) if outputs["firewall_allowed"] != []: return True, status_code #Needs to be present to prevent TypeError return False, status_code