Files
rmmanager/core/execution/action/action.py
T

34 lines
873 B
Python

import logging
from core.apirequest import executeRequest
from core.runtime.runtimecontract import buildRuntimeAttr, buildPreRuntimeAttr
#from core.runtime.stopsignals import addStopSignal
def buildAction (action, outputs, process):
action_log = True
resolved, match, filter = buildPreRuntimeAttr(action, outputs, process)
if hasattr(action, "allowaction"):
if not action.allowaction:
return None
if match:
if filter.get("execute", False):
response = executeRequest(filter["execute"], outputs, resolved)
return None
response = executeRequest(action, outputs, resolved)
if response is None:
return outputs, None
response = buildRuntimeAttr(action, outputs, resolved, response, process)
if action_log:
logging.info(f"{action.name} completed")
return response