51 lines
2.0 KiB
Python
51 lines
2.0 KiB
Python
import logging
|
|
#from core import buildAction
|
|
from core.runtime.savedata import buildSave, loadSave
|
|
from core.runtime.logs import buildLog
|
|
from core.runtime.outputs import buildOutput
|
|
from core.runtime.managefailure import manageFailure
|
|
from core.execution.action.action import buildAction
|
|
from .skipstep import skipStep
|
|
from core.runtime.resolver import resolveItem2
|
|
from core.apirequest import executeRequest
|
|
|
|
def buildOperation(definition):
|
|
actions = definition.actions
|
|
#print("DEBUG", actions)
|
|
responses = []
|
|
outputs = {}
|
|
#resolved = {}
|
|
|
|
for action in actions:
|
|
#try:
|
|
if hasattr(definition, "skipstep"):
|
|
if skipStep(definition, action, outputs):
|
|
continue
|
|
#if hasattr(definition, "resolve"):
|
|
#resolved = {}
|
|
#if hasattr(action, "resolve"):
|
|
#print(outputs)
|
|
#resolved = resolveItem(action, outputs)
|
|
#print(resolved)
|
|
if hasattr(action, "recursive"):
|
|
#outputs[action.recursive["target"]] = {}
|
|
for item in outputs[action.recursive["source"]]:
|
|
outputs = resolveItem2(action, item, outputs)#, resolved)
|
|
#print("Resolved value:", outputs)
|
|
#outputs[action.recursive["target"]] = outputs[action.recursive["source"]][][action.recursive["target"]]
|
|
#print(outputs[action.recursive["target"]])
|
|
outputs[action.recursive["target"]] = item
|
|
#print(outputs[action.recursive["target"]])
|
|
#target = outputs[action.recursive["source"]["target"]
|
|
outputs, response = buildAction(action, outputs)#, resolved)
|
|
#print(outputs)
|
|
#return outputs
|
|
else:
|
|
outputs, response = buildAction(action, outputs)
|
|
responses.append(response)
|
|
|
|
#except Exception as error:
|
|
#outputs = manageFailure(error, action, outputs)
|
|
#print(outputs["message"])
|
|
return outputs
|