48 lines
1.6 KiB
Python
48 lines
1.6 KiB
Python
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
|