40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
from core.execution.action.action import buildAction
|
|
from core.runtime.runtimecontract import buildPreRuntimeAttr, buildRuntimeAttr
|
|
from core.apirequest import executeRequest
|
|
|
|
def recursiveSet(definition, outputs, responses):
|
|
recursiveset = definition.recursiveset["actions"]
|
|
for item in outputs[definition.recursiveset["source"]]:
|
|
outputs[definition.recursiveset["outputlabel"]] = item
|
|
|
|
for job in recursiveset:
|
|
outputs, response, match, filter = buildAction(job, outputs)
|
|
responses.append(response)
|
|
|
|
return outputs, responses
|
|
|
|
#from core.execution.action.action import buildAction
|
|
|
|
def recursiveAction(action, outputs):
|
|
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, match, filter = buildPreRuntimeAttr(action, outputs)
|
|
|
|
if match:
|
|
continue
|
|
|
|
response, outputs = executeRequest(action, outputs, resolved)
|
|
recursiveresponses.append(response)
|
|
|
|
outputs, response = buildRuntimeAttr(action, outputs, resolved, response)
|
|
|
|
return outputs, recursiveresponses, match, filter
|