Files
rmmanager/core/execution/monitor.py
T

41 lines
1.1 KiB
Python

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.executioncontract import executeContract
logging.info(filter.get("print"))
module = filter["execute"]
response = executeContract(filter["execute"], outputs, None)
return response