fmartingr
/
jeeves
Archived
1
0
Fork 0

Name changes

This commit is contained in:
Felipe Martin 2020-05-09 16:55:36 +02:00
parent b874e9ef5a
commit ad780aba55
Signed by: fmartingr
GPG Key ID: 716BC147715E716F
2 changed files with 9 additions and 7 deletions

View File

@ -16,17 +16,19 @@ class Action:
self.parameters = self.Parameters(**(parameters or {})) self.parameters = self.Parameters(**(parameters or {}))
self.parsed_parameters = {} self.parsed_parameters = {}
def parse_parameters_with_arguments(self, **arguments): def parse_parameters(self, current_execution=None, **arguments):
""" """
Returns a dict with the parameters parsed in base of the provided arguments. Returns a dict with the parameters parsed in base of the provided arguments and context.
Parsing using jinja2 template themes only on the fields defined on the `Parameters.PARSE_WITH_ARGUMENTS`. Parsing using jinja2 template themes only on the fields defined on the `Parameters.PARSE_WITH_ARGUMENTS`.
""" """
for parameter_name in self.parameters.PARSE_WITH_ARGUMENTS: for parameter_name in self.parameters.PARSE_WITH_ARGUMENTS:
self.parsed_parameters[parameter_name] = Template(self.parameters.dict()[parameter_name]).render(**arguments) self.parsed_parameters[parameter_name] = Template(
self.parameters.dict()[parameter_name]
).render(current_execution=current_execution, **arguments)
@abstractmethod @abstractmethod
def execute(self, workspace, **kwargs): def execute(self, workspace, **kwargs):
""" """
Main method to override that handles the work for the defining action. Main method to override that handles the work for the defining action.
""" """
pass pass

View File

@ -10,7 +10,7 @@ class Executor:
defined_arguments = defined_arguments or {} defined_arguments = defined_arguments or {}
self.step_count = len(flow.tasks) self.step_count = len(flow.tasks)
self._flow: Flow = flow self._flow: Flow = flow
self._execution = Execution(flow=flow, steps=self._get_steps(flow)) self._execution = Execution(flow=flow, steps=self._generate_execution_steps(flow))
self._arguments = {} self._arguments = {}
if self._flow.arguments: if self._flow.arguments:
for argument in self._flow.arguments: for argument in self._flow.arguments:
@ -23,14 +23,14 @@ class Executor:
for step in self._execution.steps: for step in self._execution.steps:
yield step yield step
def _get_steps(self, flow: Flow): def _generate_execution_steps(self, flow: Flow):
for task in flow.tasks: for task in flow.tasks:
yield ExecutionStep(task=task, result=Result()) yield ExecutionStep(task=task, result=Result())
def execute_step(self, step: ExecutionStep): def execute_step(self, step: ExecutionStep):
try: try:
action = ActionRegistry.get_action_cls(step.task.type)(parameters=step.task.parameters) action = ActionRegistry.get_action_cls(step.task.type)(parameters=step.task.parameters)
action.parse_parameters_with_arguments(**self._arguments) action.parse_parameters(current_execution=self._execution, **self._arguments)
step.result = action.execute(workspace=self._execution.workspace, arguments=self._arguments) step.result = action.execute(workspace=self._execution.workspace, arguments=self._arguments)
except Exception as error: except Exception as error:
# Catch unhandled exceptions, mark the result as unsuccessful # Catch unhandled exceptions, mark the result as unsuccessful