import logging from core.runtime.managefailure import manageFailure from core.execution.action.action import buildAction from core.runtime.stopsignals import checkDependency from core.execution.processregistry import registerProcess #from core.runtime.skipstep import skipStep #from core.runtime.recursive import recursiveSet outputs = {} def buildOperation(definition, outputs): from core.execution.executioncontract import executeContract actions = definition.actions outputs = registerProcess(definition, outputs) responses = [] outputs["stopsignals"] = [] for action in actions: #if action.kind == "action": # outputs["processes"][definition.name][action.name] = {} stop = checkDependency(action, outputs) #print(f"STOP SIGNAL DEBUGGING during {action.name}") #print(outputs["stopsignals"]) if stop: outputs["processes"][definition.name]["stopsignals"].append(action.alias) continue if action.kind == "action": outputs["processes"][definition.name][action.name] = {} outputs, response = executeContract(action, outputs) #if hasattr(action, recursive) responses.append(response) if action.kind == "action": outputs["processes"][definition.name][action.name]["response"] = response outputs["processes"][definition.name]["completed"].append(action.alias) #print(outputs["processes"]) #except Exception as error: #outputs = manageFailure(error, action, outputs) return outputs, responses