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

incubator-ariatosca git commit: code review fixups

Repository: incubator-ariatosca
Updated Branches:
  refs/heads/ARIA-120-Builtin-workflows-relationship-operations-execution-order 6bd69d7c3 -> 446cd19ff


code review fixups


Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/446cd19f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/446cd19f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/446cd19f

Branch: refs/heads/ARIA-120-Builtin-workflows-relationship-operations-execution-order
Commit: 446cd19ffc37f4512986dc231719c9c177c4d5c0
Parents: 6bd69d7
Author: max-orlov <ma...@gigaspaces.com>
Authored: Mon Mar 27 17:55:03 2017 +0300
Committer: max-orlov <ma...@gigaspaces.com>
Committed: Mon Mar 27 17:55:03 2017 +0300

----------------------------------------------------------------------
 aria/orchestrator/workflows/api/task.py         | 19 ++++++++-----------
 aria/orchestrator/workflows/builtin/utils.py    | 20 +++++++-------------
 .../orchestrator/workflows/builtin/workflows.py |  2 +-
 .../orchestrator/workflows/builtin/__init__.py  | 14 +++++---------
 4 files changed, 21 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/446cd19f/aria/orchestrator/workflows/api/task.py
----------------------------------------------------------------------
diff --git a/aria/orchestrator/workflows/api/task.py b/aria/orchestrator/workflows/api/task.py
index 25d631d..8a57313 100644
--- a/aria/orchestrator/workflows/api/task.py
+++ b/aria/orchestrator/workflows/api/task.py
@@ -90,6 +90,8 @@ class OperationTask(BaseTask):
         self.ignore_failure = (self.workflow_context._task_ignore_failure
                                if ignore_failure is None else ignore_failure)
         self.runs_on = runs_on
+        self.interface_name = interface_name
+        self.operation_name = operation_name
 
         # Wrap inputs
         inputs = copy.deepcopy(inputs) if inputs else {}
@@ -101,11 +103,12 @@ class OperationTask(BaseTask):
         # 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._get_operation(interface_name, operation_name)
+        operation = \
+            self.actor.interfaces.get(self.interface_name, {}).operations.get(self.operation_name)
         if operation is None:
             raise exceptions.OperationNotFoundException(
                 'Could not find operation "{0}" on interface "{1}" for {2} "{3}"'
-                .format(operation_name, interface_name, actor_type, actor.name))
+                .format(self.operation_name, self.interface_name, actor_type, actor.name))
 
         self.plugin = None
         if operation.plugin_specification:
@@ -113,15 +116,15 @@ class OperationTask(BaseTask):
             if self.plugin is None:
                 raise exceptions.PluginNotFoundException(
                     'Could not find plugin of operation "{0}" on interface "{1}" for {2} "{3}"'
-                    .format(operation_name, interface_name, actor_type, actor.name))
+                    .format(self.operation_name, self.interface_name, actor_type, actor.name))
 
         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=interface_name,
-                                                     operation=operation_name)
+                                                     interface=self.interface_name,
+                                                     operation=self.operation_name)
 
     def __repr__(self):
         return self.name
@@ -201,12 +204,6 @@ class OperationTask(BaseTask):
             ignore_failure=ignore_failure,
             inputs=inputs)
 
-    def _get_operation(self, interface_name, operation_name):
-        interface = self.actor.interfaces.get(interface_name)
-        if interface is not None:
-            return interface.operations.get(operation_name)
-        return None
-
     @staticmethod
     def _find_plugin(plugin_specification):
         workflow_context = context.workflow.current.get()

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/446cd19f/aria/orchestrator/workflows/builtin/utils.py
----------------------------------------------------------------------
diff --git a/aria/orchestrator/workflows/builtin/utils.py b/aria/orchestrator/workflows/builtin/utils.py
index 79d02ab..28734b2 100644
--- a/aria/orchestrator/workflows/builtin/utils.py
+++ b/aria/orchestrator/workflows/builtin/utils.py
@@ -12,8 +12,6 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-from itertools import groupby
-
 from ..api.task import OperationTask
 from .. import exceptions
 
@@ -42,18 +40,14 @@ def create_relationships_tasks(
     :param NodeInstance node: the source_node
     :return:
     """
-    relationships_groups = groupby(node.outbound_relationships,
-                                   key=lambda relationship: relationship.target_node.id)
-
     sub_tasks = []
-    for _, (_, relationship_group) in enumerate(relationships_groups):
-        for relationship in relationship_group:
-            relationship_operations = relationship_tasks(
-                relationship,
-                interface_name,
-                source_operation_name=source_operation_name,
-                target_operation_name=target_operation_name)
-            sub_tasks.append(relationship_operations)
+    for relationship in node.outbound_relationships:
+        relationship_operations = relationship_tasks(
+            relationship,
+            interface_name,
+            source_operation_name=source_operation_name,
+            target_operation_name=target_operation_name)
+        sub_tasks.append(relationship_operations)
 
     return sub_tasks
 

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/446cd19f/aria/orchestrator/workflows/builtin/workflows.py
----------------------------------------------------------------------
diff --git a/aria/orchestrator/workflows/builtin/workflows.py b/aria/orchestrator/workflows/builtin/workflows.py
index 67badcf..60f14ed 100644
--- a/aria/orchestrator/workflows/builtin/workflows.py
+++ b/aria/orchestrator/workflows/builtin/workflows.py
@@ -28,11 +28,11 @@ NORMATIVE_STANDARD_INTERFACE = 'Standard' # 'tosca.interfaces.node.lifecycle.Sta
 NORMATIVE_CONFIGURE_INTERFACE = 'Configure' # 'tosca.interfaces.relationship.Configure'
 
 NORMATIVE_CREATE = 'create'
+NORMATIVE_CONFIGURE = 'configure'
 NORMATIVE_START = 'start'
 NORMATIVE_STOP = 'stop'
 NORMATIVE_DELETE = 'delete'
 
-NORMATIVE_CONFIGURE = 'configure'
 NORMATIVE_PRE_CONFIGURE_SOURCE = 'pre_configure_source'
 NORMATIVE_PRE_CONFIGURE_TARGET = 'pre_configure_target'
 NORMATIVE_POST_CONFIGURE_SOURCE = 'post_configure_source'

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/446cd19f/tests/orchestrator/workflows/builtin/__init__.py
----------------------------------------------------------------------
diff --git a/tests/orchestrator/workflows/builtin/__init__.py b/tests/orchestrator/workflows/builtin/__init__.py
index 5ea761c..2aef2cf 100644
--- a/tests/orchestrator/workflows/builtin/__init__.py
+++ b/tests/orchestrator/workflows/builtin/__init__.py
@@ -40,7 +40,6 @@ def _assert_relationships(operations, expected_op_full_name, relationships=0):
         _assert_cfg_interface_op(operation, expected_op_name)
 
         assert relationship_id_1 == relationship_id_2
-        print '++++' + edge1, edge2
         assert edge1 != edge2
 
 
@@ -64,14 +63,11 @@ def assert_node_uninstall_operations(operations, relationships=0):
 
 
 def _assert_cfg_interface_op(op, operation_name):
-    op = op.name.split('@', 1)[0].rsplit('_', 1)[0].lower()
-    predicted_name = \
-        '{0}:{1}'.format(workflows.NORMATIVE_CONFIGURE_INTERFACE, operation_name).lower()
-    assert op == predicted_name
+    predicted_name = '{0}:{1}'.format(workflows.NORMATIVE_CONFIGURE_INTERFACE, operation_name)
+    operation_name = op.operation_name.rsplit('_', 1)[0]
+    assert '{0}:{1}'.format(op.interface_name, operation_name).lower() == predicted_name.lower()
 
 
 def _assert_std_interface_op(op, operation_name):
-    op = op.name.split('@', 1)[0].lower()
-    predicted_name = '{0}:{1}'\
-        .format(workflows.NORMATIVE_STANDARD_INTERFACE, operation_name).lower()
-    assert op == predicted_name
+    predicted_name = '{0}:{1}'.format(workflows.NORMATIVE_STANDARD_INTERFACE, operation_name)
+    assert '{op.interface_name}:{op.operation_name}'.format(op=op).lower() == predicted_name.lower()