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):
"""