import logging from core.apirequest import executeRequest from core.runtime.resolver import resolveItem from core.runtime.applyconditions import applyConditions from core.runtime import buildOutput from core.runtime.savedata import loadSave outputs = {} resolved = {} def buildMonitor(monitor, outputs): loadSave(monitor, outputs) response = executeRequest(monitor, outputs, resolved) ##Potentially replace response processing with responsePolicy if response is None: return None if not response.ok: logging.warning(f"Response with status code {response.status_code} during {monitor.name}") return response responsedata = response.json() readitems = resolveItem(monitor, responsedata) match, filter = applyConditions(monitor, readitems, outputs) buildOutput(response, monitor, outputs) if match: from core.execution.createthread import buildThread #from core.execution.executioncontract import executeContract logging.info(filter.get("print")) #module = filter["execute"] #response = executeContract(filter["execute"], outputs) thread = buildThread(filter["execute"]) return response