Repository: incubator-ariatosca Updated Branches: refs/heads/minor_fixes_to_script_ctx_mechanism eb4d2104f -> 699fec023 (forced update)
fixed task inputs Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/bdd8d37c Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/bdd8d37c Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/bdd8d37c Branch: refs/heads/minor_fixes_to_script_ctx_mechanism Commit: bdd8d37ce29a2be258ab889f1cc5173667f18219 Parents: 718c78c Author: Ran Ziv <[email protected]> Authored: Thu Mar 30 17:54:46 2017 +0300 Committer: Ran Ziv <[email protected]> Committed: Thu Mar 30 17:54:46 2017 +0300 ---------------------------------------------------------------------- aria/core.py | 3 +-- aria/modeling/utils.py | 8 ++++---- aria/orchestrator/workflows/api/task.py | 22 ++-------------------- 3 files changed, 7 insertions(+), 26 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/bdd8d37c/aria/core.py ---------------------------------------------------------------------- diff --git a/aria/core.py b/aria/core.py index 55ef2f0..96a967f 100644 --- a/aria/core.py +++ b/aria/core.py @@ -77,8 +77,7 @@ class Core(object): service = service_template.instantiate(None) template_inputs = service_template.inputs - input_models = modeling_utils.create_inputs(inputs, template_inputs) - service.inputs = {input.name: input for input in input_models} + service.inputs = modeling_utils.create_inputs(inputs, template_inputs) # TODO: now that we have inputs, we should scan properties and inputs and evaluate functions # first put the service model so it could have an id, as fallback for setting its name http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/bdd8d37c/aria/modeling/utils.py ---------------------------------------------------------------------- diff --git a/aria/modeling/utils.py b/aria/modeling/utils.py index 44d7e10..a0caa68 100644 --- a/aria/modeling/utils.py +++ b/aria/modeling/utils.py @@ -28,13 +28,13 @@ def create_inputs(inputs, template_inputs): """ :param inputs: key-value dict :param template_inputs: parameter name to parameter object dict - :return: list of Parameter models + :return: dict of parameter name to Parameter models """ - _merge_and_validate_inputs(inputs, template_inputs) + merged_inputs = _merge_and_validate_inputs(inputs, template_inputs) from . import models input_models = [] - for input_name, input_val in inputs.iteritems(): + for input_name, input_val in merged_inputs.iteritems(): parameter = models.Parameter( name=input_name, type_name=template_inputs[input_name].type_name, @@ -42,7 +42,7 @@ def create_inputs(inputs, template_inputs): value=input_val) input_models.append(parameter) - return input_models + return {input.name: input for input in input_models} def _merge_and_validate_inputs(inputs, template_inputs): http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/bdd8d37c/aria/orchestrator/workflows/api/task.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/workflows/api/task.py b/aria/orchestrator/workflows/api/task.py index 2691190..2ec85b9 100644 --- a/aria/orchestrator/workflows/api/task.py +++ b/aria/orchestrator/workflows/api/task.py @@ -19,7 +19,7 @@ Provides the tasks to be entered into the task graph import copy from ....modeling import models -from ....utils.collections import OrderedDict +from ....modeling import utils as modeling_utils from ....utils.uuid import generate_uuid from ... import context from .. import exceptions @@ -93,16 +93,6 @@ class OperationTask(BaseTask): self.interface_name = interface_name self.operation_name = operation_name - # Wrap inputs - inputs = copy.deepcopy(inputs) if inputs else {} - for k, v in inputs.iteritems(): - if not isinstance(v, models.Parameter): - inputs[k] = models.Parameter.wrap(k, v) - - # TODO: Suggestion: these extra inputs could be stored as a separate entry in the task - # model, because they are different from the operation inputs. If we do this, then the two - # kinds of inputs should *not* be merged here. - operation = self.actor.interfaces[self.interface_name].operations[self.operation_name] self.plugin = None if operation.plugin_specification: @@ -112,9 +102,8 @@ class OperationTask(BaseTask): 'Could not find plugin of operation "{0}" on interface "{1}" for {2} "{3}"' .format(self.operation_name, self.interface_name, actor_type, actor.name)) + self.inputs = modeling_utils.create_inputs(inputs or {}, operation.inputs) self.implementation = operation.implementation - self.inputs = OperationTask._merge_inputs(operation.inputs, inputs) - self.name = OperationTask.NAME_FORMAT.format(type=actor_type, name=actor.name, interface=self.interface_name, @@ -201,13 +190,6 @@ class OperationTask(BaseTask): workflow_context = context.workflow.current.get() return plugin_specification.find_plugin(workflow_context.model.plugin.list()) - @staticmethod - def _merge_inputs(operation_inputs, override_inputs=None): - final_inputs = OrderedDict(operation_inputs) - if override_inputs: - final_inputs.update(override_inputs) - return final_inputs - class WorkflowTask(BaseTask): """
