Repository: incubator-ariatosca
Updated Branches:
  refs/heads/runtime_props_to_attr 87dad5511 -> de86fb8c6


fixed some tests


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

Branch: refs/heads/runtime_props_to_attr
Commit: de86fb8c6bf8f959dc01e4859360663c88d0ff86
Parents: 87dad55
Author: max-orlov <[email protected]>
Authored: Mon May 15 12:26:35 2017 +0300
Committer: max-orlov <[email protected]>
Committed: Mon May 15 12:26:35 2017 +0300

----------------------------------------------------------------------
 aria/orchestrator/context/operation.py          |  6 ++---
 aria/orchestrator/workflows/executor/process.py |  1 +
 aria/storage/instrumentation.py                 | 25 ++++++++++----------
 tests/orchestrator/context/test_operation.py    | 15 +++++++-----
 4 files changed, 26 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/de86fb8c/aria/orchestrator/context/operation.py
----------------------------------------------------------------------
diff --git a/aria/orchestrator/context/operation.py 
b/aria/orchestrator/context/operation.py
index 2c3f173..2182db5 100644
--- a/aria/orchestrator/context/operation.py
+++ b/aria/orchestrator/context/operation.py
@@ -80,9 +80,9 @@ class _DecorateAttributes(object):
 
     def __call__(self, *args, **kwargs):
         func_self = args[0]
-        actor = self._func(*args, **kwargs)
-        model = func_self.model
-        self.attributes = self._Attributes(model, actor)
+        self._actor = self._func(*args, **kwargs)
+        self._model = func_self.model
+        self.attributes = self._Attributes(self._model, self._actor)
         return self
 
 

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/de86fb8c/aria/orchestrator/workflows/executor/process.py
----------------------------------------------------------------------
diff --git a/aria/orchestrator/workflows/executor/process.py 
b/aria/orchestrator/workflows/executor/process.py
index c3962ed..3d9b701 100644
--- a/aria/orchestrator/workflows/executor/process.py
+++ b/aria/orchestrator/workflows/executor/process.py
@@ -354,6 +354,7 @@ def _patch_ctx(ctx, messenger, instrument):
 
 
 def _main():
+    import pydevd; pydevd.settrace('localhost', suspend=False)
     arguments_json_path = sys.argv[1]
     with open(arguments_json_path) as f:
         arguments = pickle.loads(f.read())

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/de86fb8c/aria/storage/instrumentation.py
----------------------------------------------------------------------
diff --git a/aria/storage/instrumentation.py b/aria/storage/instrumentation.py
index 701c058..a11bb28 100644
--- a/aria/storage/instrumentation.py
+++ b/aria/storage/instrumentation.py
@@ -148,12 +148,12 @@ class _Instrumentation(object):
         def listener(target, value, initiator):
             tracked_instances = 
self.tracked_changes.setdefault(target.__modelname__, {})
             tracked_attributes = tracked_instances.setdefault(target.id, {})
-            collection = tracked_attributes.setdefault(initiator.key, [])
+            collection_attr = tracked_attributes.setdefault(initiator.key, [])
             instance_as_dict = value.to_dict()
             instance_as_dict.update((k, getattr(value, k))
                                     for k in getattr(value, 
'__private_fields__', []))
             instance_as_dict['_MODEL_CLS'] = value.__modelname__
-            collection.append(instance_as_dict)
+            collection_attr.append(instance_as_dict)
 
         listener_args = (collection_attr, 'append', listener)
         sqlalchemy.event.listen(*listener_args)
@@ -254,21 +254,22 @@ def apply_tracked_changes(tracked_changes, new_instances, 
model):
     """
     successfully_updated_changes = dict()
     try:
+
+        # Handle new instances
+        for mapi_name, new_instance in new_instances.items():
+            successfully_updated_changes[mapi_name] = dict()
+            mapi = getattr(model, mapi_name)
+            for tmp_id, new_instance_kwargs in new_instance.items():
+                instance = mapi.model_cls(**new_instance_kwargs)
+                mapi.put(instance)
+                successfully_updated_changes[mapi_name][instance.id] = 
new_instance_kwargs
+                new_instance[tmp_id] = instance
+
         # handle instance updates
         for mapi_name, tracked_instances in tracked_changes.items():
             successfully_updated_changes[mapi_name] = dict()
             mapi = getattr(model, mapi_name)
 
-            # Handle new instances
-            for mapi_name, new_instance in new_instances.items():
-                successfully_updated_changes[mapi_name] = dict()
-                mapi = getattr(model, mapi_name)
-                for tmp_id, new_instance_kwargs in new_instance.items():
-                    instance = mapi.model_cls(**new_instance_kwargs)
-                    mapi.put(instance)
-                    successfully_updated_changes[mapi_name][instance.id] = 
new_instance_kwargs
-                    new_instance[tmp_id] = instance
-
             for instance_id, tracked_attributes in tracked_instances.items():
                 successfully_updated_changes[mapi_name][instance_id] = dict()
                 instance = None

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/de86fb8c/tests/orchestrator/context/test_operation.py
----------------------------------------------------------------------
diff --git a/tests/orchestrator/context/test_operation.py 
b/tests/orchestrator/context/test_operation.py
index 14868e8..d6df568 100644
--- a/tests/orchestrator/context/test_operation.py
+++ b/tests/orchestrator/context/test_operation.py
@@ -263,7 +263,7 @@ def test_plugin_workdir(ctx, thread_executor, tmpdir):
 
 
 @pytest.fixture(params=[
-    # (thread.ThreadExecutor, {}),
+    (thread.ThreadExecutor, {}),
     (process.ProcessExecutor, {'python_path': [tests.ROOT_DIR]}),
 ])
 def executor(request):
@@ -345,7 +345,7 @@ def test_relationship_operation_logging(ctx, executor):
 
 def test_attribute_consumption(ctx, executor, dataholder):
     # region Updating node operation
-    node_int_name, node_op_name = mock.operations.NODE_OPERATIONS_INSTALL[0]   
 # Standard.install
+    node_int_name, node_op_name = mock.operations.NODE_OPERATIONS_INSTALL[0]
 
     source_node = ctx.model.node.get_by_name(mock.models.DEPENDENT_NODE_NAME)
 
@@ -363,7 +363,7 @@ def test_attribute_consumption(ctx, executor, dataholder):
     # endregion
 
     # region updating relationship operation
-    rel_int_name, rel_op_name = 
mock.operations.RELATIONSHIP_OPERATIONS_INSTALL[2]  # Configure.add_source
+    rel_int_name, rel_op_name = 
mock.operations.RELATIONSHIP_OPERATIONS_INSTALL[2]
 
     relationship = ctx.model.relationship.list()[0]
     interface = mock.models.create_interface(
@@ -400,7 +400,9 @@ def test_attribute_consumption(ctx, executor, dataholder):
 
     assert len(source_node.attributes) == len(target_node.attributes) == 1
     assert source_node.attributes['key'] != target_node.attributes['key']
-    assert source_node.attributes['key'].value == 
target_node.attributes['key'].value == dataholder['key']
+    assert source_node.attributes['key'].value == \
+           target_node.attributes['key'].value == \
+           dataholder['key']
 
 
 def _assert_loggins(ctx, inputs):
@@ -437,10 +439,11 @@ def _assert_loggins(ctx, inputs):
 
 @operation
 def logged_operation(ctx, **_):
-    ctx.logger.info(ctx.task.inputs['op_start'])
+    import pydevd; pydevd.settrace('localhost', suspend=False)
+    ctx.logger.info(ctx.task.inputs['op_start'].value)
     # enables to check the relation between the created_at field properly
     time.sleep(1)
-    ctx.logger.debug(ctx.task.inputs['op_end'])
+    ctx.logger.debug(ctx.task.inputs['op_end'].value)
 
 
 @operation

Reply via email to