You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ariatosca.apache.org by ra...@apache.org on 2017/03/30 14:54:51 UTC

incubator-ariatosca git commit: fixed task inputs

Repository: incubator-ariatosca
Updated Branches:
  refs/heads/ARIA-48-aria-cli 718c78cd7 -> bdd8d37ce


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/ARIA-48-aria-cli
Commit: bdd8d37ce29a2be258ab889f1cc5173667f18219
Parents: 718c78c
Author: Ran Ziv <ra...@gigaspaces.com>
Authored: Thu Mar 30 17:54:46 2017 +0300
Committer: Ran Ziv <ra...@gigaspaces.com>
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):
     """