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