Files
rmmanager/core/execution/operation/operation.py
T

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