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

34 lines
1.1 KiB
Python

from core.apirequest import executeRequest
from core.runtime.runtimecontract import buildRuntimeAttr, buildPreRuntimeAttr
def buildAction (action, outputs):
#outputs, resolved = buildPreRuntimeAttr(action, outputs)
if hasattr(action, "recursive"):
recursiveresponses = []
items = outputs[action.recursive["source"]]
reverse = action.recursive.get("reverse", False)
if reverse:
items = reversed(items)
for item in items:
outputs[action.recursive["label"]] = item
outputs, resolved = buildPreRuntimeAttr(action, outputs)
response, outputs = executeRequest(action, outputs, resolved)
recursiveresponses.append(response)
outputs, response = buildRuntimeAttr(action, outputs, response)
return outputs, recursiveresponses
else:
outputs, resolved = buildPreRuntimeAttr(action, outputs)
response, outputs = executeRequest(action, outputs, resolved)
outputs, response = buildRuntimeAttr(action, outputs, response)
return outputs, response