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/04/06 08:29:46 UTC
[20/32] incubator-ariatosca git commit: extracted unwrap_dict method
for parameter objects
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 <ra...@gigaspaces.com>
Authored: Mon Apr 3 14:59:40 2017 +0300
Committer: Ran Ziv <ra...@gigaspaces.com>
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: