extracted unwrap_dict method for parameter objects
Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/5992df7a Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/5992df7a Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/5992df7a Branch: refs/heads/ARIA-48-aria-cli Commit: 5992df7afd9abc2b29a38e322924d0d5852bb3ba Parents: a9d1ae3 Author: Ran Ziv <[email protected]> Authored: Mon Apr 3 14:59:40 2017 +0300 Committer: Ran Ziv <[email protected]> Committed: Thu Apr 6 11:29:17 2017 +0300 ---------------------------------------------------------------------- aria/modeling/service_common.py | 9 +++++++++ aria/orchestrator/workflow_runner.py | 3 +-- aria/orchestrator/workflows/executor/celery.py | 4 +++- aria/orchestrator/workflows/executor/process.py | 3 ++- aria/orchestrator/workflows/executor/thread.py | 4 +++- 5 files changed, 18 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/5992df7a/aria/modeling/service_common.py ---------------------------------------------------------------------- diff --git a/aria/modeling/service_common.py b/aria/modeling/service_common.py index 48c3170..17e0a17 100644 --- a/aria/modeling/service_common.py +++ b/aria/modeling/service_common.py @@ -88,6 +88,15 @@ class ParameterBase(TemplateModelMixin): console.puts(context.style.meta(self.description)) @classmethod + def unwrap_dict(cls, parameters_dict): + """ + Takes a parameters dict and simplifies it into key-value dict + :param parameters_dict: a parameter-name to parameter dict + :return: a parameter-name to parameter value dict + """ + return dict((k, v.value) for k, v in parameters_dict.iteritems()) + + @classmethod def wrap(cls, name, value, description=None): """ Wraps an arbitrary value as a parameter. The type will be guessed via introspection. http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/5992df7a/aria/orchestrator/workflow_runner.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/workflow_runner.py b/aria/orchestrator/workflow_runner.py index 8b6b431..78b17b8 100644 --- a/aria/orchestrator/workflow_runner.py +++ b/aria/orchestrator/workflow_runner.py @@ -68,8 +68,7 @@ class WorkflowRunner(object): task_retry_interval=task_retry_interval) # transforming the execution inputs to dict, to pass them to the workflow function - execution_inputs_dict = {input.name: input.value for input in - self.execution.inputs.values()} + execution_inputs_dict = models.Parameter.unwrap_dict(self.execution.inputs) self._tasks_graph = workflow_fn(ctx=workflow_context, **execution_inputs_dict) self._engine = Engine( http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/5992df7a/aria/orchestrator/workflows/executor/celery.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/workflows/executor/celery.py b/aria/orchestrator/workflows/executor/celery.py index baa0375..3c98197 100644 --- a/aria/orchestrator/workflows/executor/celery.py +++ b/aria/orchestrator/workflows/executor/celery.py @@ -22,6 +22,8 @@ import Queue from aria.orchestrator.workflows.executor import BaseExecutor +from ....modeling.models import Parameter + class CeleryExecutor(BaseExecutor): """ @@ -44,7 +46,7 @@ class CeleryExecutor(BaseExecutor): def execute(self, task): self._tasks[task.id] = task - inputs = dict((k, v.value) for k, v in task.inputs.iteritems()) + inputs = Parameter.unwrap_dict(task.inputs.iteritems()) inputs['ctx'] = task.context self._results[task.id] = self._app.send_task( task.operation_mapping, http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/5992df7a/aria/orchestrator/workflows/executor/process.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/workflows/executor/process.py b/aria/orchestrator/workflows/executor/process.py index 6397e88..dc369ab 100644 --- a/aria/orchestrator/workflows/executor/process.py +++ b/aria/orchestrator/workflows/executor/process.py @@ -48,6 +48,7 @@ from aria.utils import exceptions from aria.orchestrator.workflows.executor import base from aria.storage import instrumentation from aria.modeling import types as modeling_types +from aria.modeling.models import Parameter _IS_WIN = os.name == 'nt' @@ -148,7 +149,7 @@ class ProcessExecutor(base.BaseExecutor): return { 'task_id': task.id, 'implementation': task.implementation, - 'operation_inputs': dict((k, v.value) for k, v in task.inputs.iteritems()), + 'operation_inputs': Parameter.unwrap_dict(task.inputs), 'port': self._server_port, 'context': task.context.serialization_dict, } http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/5992df7a/aria/orchestrator/workflows/executor/thread.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/workflows/executor/thread.py b/aria/orchestrator/workflows/executor/thread.py index 1a49af5..8b443cc 100644 --- a/aria/orchestrator/workflows/executor/thread.py +++ b/aria/orchestrator/workflows/executor/thread.py @@ -21,7 +21,9 @@ import Queue import threading from aria.utils import imports + from .base import BaseExecutor +from ....modeling.models import Parameter class ThreadExecutor(BaseExecutor): @@ -58,7 +60,7 @@ class ThreadExecutor(BaseExecutor): self._task_started(task) try: task_func = imports.load_attribute(task.implementation) - inputs = dict((k, v.value) for k, v in task.inputs.iteritems()) + inputs = Parameter.unwrap_dict(task.inputs) task_func(ctx=task.context, **inputs) self._task_succeeded(task) except BaseException as e:
