You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ariatosca.apache.org by mx...@apache.org on 2017/10/19 12:01:13 UTC

[03/10] incubator-ariatosca git commit: ARIA-298 test suite sometimes fails or freezes while all tests pass

ARIA-298 test suite sometimes fails or freezes while all tests pass


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

Branch: refs/heads/new_wagon_setuptools
Commit: b594115cc99afd09b8cf593952adc8ddad1c97e5
Parents: a3059fe
Author: max-orlov <ma...@gigaspaces.com>
Authored: Mon Jul 3 11:27:33 2017 +0300
Committer: Ran Ziv <ra...@gigaspaces.com>
Committed: Mon Jul 10 17:00:19 2017 +0300

----------------------------------------------------------------------
 .../execution_plugin/ctx_proxy/server.py        |  1 +
 aria/utils/threading.py                         |  1 +
 .../orchestrator/workflows/core/test_engine.py  |  1 +
 .../orchestrator/workflows/core/test_events.py  | 84 +++++++++++++-------
 4 files changed, 58 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/b594115c/aria/orchestrator/execution_plugin/ctx_proxy/server.py
----------------------------------------------------------------------
diff --git a/aria/orchestrator/execution_plugin/ctx_proxy/server.py b/aria/orchestrator/execution_plugin/ctx_proxy/server.py
index 0a2a606..ca910e0 100644
--- a/aria/orchestrator/execution_plugin/ctx_proxy/server.py
+++ b/aria/orchestrator/execution_plugin/ctx_proxy/server.py
@@ -102,6 +102,7 @@ class CtxProxy(object):
                 quiet=True,
                 server=BottleServerAdapter)
         thread = threading.Thread(target=serve)
+        thread.daemon = True
         thread.start()
         return thread
 

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/b594115c/aria/utils/threading.py
----------------------------------------------------------------------
diff --git a/aria/utils/threading.py b/aria/utils/threading.py
index b9d627a..f5ca302 100644
--- a/aria/utils/threading.py
+++ b/aria/utils/threading.py
@@ -269,6 +269,7 @@ class ExceptionThread(Thread):
     def __init__(self, *args, **kwargs):
         Thread.__init__(self, *args, **kwargs)
         self.exception = None
+        self.daemon = True
 
     def run(self):
         try:

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/b594115c/tests/orchestrator/workflows/core/test_engine.py
----------------------------------------------------------------------
diff --git a/tests/orchestrator/workflows/core/test_engine.py b/tests/orchestrator/workflows/core/test_engine.py
index 21a53d7..0c704f5 100644
--- a/tests/orchestrator/workflows/core/test_engine.py
+++ b/tests/orchestrator/workflows/core/test_engine.py
@@ -257,6 +257,7 @@ class TestCancel(BaseTest):
                            workflow_context=workflow_context,
                            executor=executor)
         t = threading.Thread(target=eng.execute, kwargs=dict(ctx=workflow_context))
+        t.daemon = True
         t.start()
         time.sleep(10)
         eng.cancel_execution(workflow_context)

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/b594115c/tests/orchestrator/workflows/core/test_events.py
----------------------------------------------------------------------
diff --git a/tests/orchestrator/workflows/core/test_events.py b/tests/orchestrator/workflows/core/test_events.py
index ff50eab..d804de5 100644
--- a/tests/orchestrator/workflows/core/test_events.py
+++ b/tests/orchestrator/workflows/core/test_events.py
@@ -45,67 +45,82 @@ TYPE_URI_NAME = 'tosca.interfaces.node.lifecycle.Standard'
 SHORTHAND_NAME = 'Standard'
 
 
-def test_node_state_changes_as_a_result_of_standard_lifecycle_create(ctx):
-    node = run_operation_on_node(ctx, interface_name=TYPE_URI_NAME, op_name='create')
+def test_node_state_changes_as_a_result_of_standard_lifecycle_create(ctx, executor):
+    node = run_operation_on_node(
+        ctx, interface_name=TYPE_URI_NAME, op_name='create', executor=executor)
     _assert_node_state_changed_as_a_result_of_standard_lifecycle_operation(node, 'create')
 
 
-def test_node_state_changes_as_a_result_of_standard_lifecycle_configure(ctx):
-    node = run_operation_on_node(ctx, interface_name=TYPE_URI_NAME, op_name='configure')
+def test_node_state_changes_as_a_result_of_standard_lifecycle_configure(ctx, executor):
+    node = run_operation_on_node(
+        ctx, interface_name=TYPE_URI_NAME, op_name='configure', executor=executor)
     _assert_node_state_changed_as_a_result_of_standard_lifecycle_operation(node, 'configure')
 
 
-def test_node_state_changes_as_a_result_of_standard_lifecycle_start(ctx):
-    node = run_operation_on_node(ctx, interface_name=TYPE_URI_NAME, op_name='start')
+def test_node_state_changes_as_a_result_of_standard_lifecycle_start(ctx, executor):
+    node = run_operation_on_node(
+        ctx, interface_name=TYPE_URI_NAME, op_name='start', executor=executor)
     _assert_node_state_changed_as_a_result_of_standard_lifecycle_operation(node, 'start')
 
 
-def test_node_state_changes_as_a_result_of_standard_lifecycle_stop(ctx):
-    node = run_operation_on_node(ctx, interface_name=TYPE_URI_NAME, op_name='stop')
+def test_node_state_changes_as_a_result_of_standard_lifecycle_stop(ctx, executor):
+    node = run_operation_on_node(
+        ctx, interface_name=TYPE_URI_NAME, op_name='stop', executor=executor)
     _assert_node_state_changed_as_a_result_of_standard_lifecycle_operation(node, 'stop')
 
 
-def test_node_state_changes_as_a_result_of_standard_lifecycle_delete(ctx):
-    node = run_operation_on_node(ctx, interface_name=TYPE_URI_NAME, op_name='delete')
+def test_node_state_changes_as_a_result_of_standard_lifecycle_delete(ctx, executor):
+    node = run_operation_on_node(
+        ctx, interface_name=TYPE_URI_NAME, op_name='delete', executor=executor)
     _assert_node_state_changed_as_a_result_of_standard_lifecycle_operation(node, 'delete')
 
 
-def test_node_state_changes_as_a_result_of_standard_lifecycle_create_shorthand_name(ctx):
-    node = run_operation_on_node(ctx, interface_name=SHORTHAND_NAME, op_name='create')
+def test_node_state_changes_as_a_result_of_standard_lifecycle_create_shorthand_name(ctx, executor):
+    node = run_operation_on_node(
+        ctx, interface_name=SHORTHAND_NAME, op_name='create', executor=executor)
     _assert_node_state_changed_as_a_result_of_standard_lifecycle_operation(node, 'create')
 
 
-def test_node_state_changes_as_a_result_of_standard_lifecycle_configure_shorthand_name(ctx):
-    node = run_operation_on_node(ctx, interface_name=SHORTHAND_NAME, op_name='configure')
+def test_node_state_changes_as_a_result_of_standard_lifecycle_configure_shorthand_name(
+        ctx, executor):
+    node = run_operation_on_node(
+        ctx, interface_name=SHORTHAND_NAME, op_name='configure', executor=executor)
     _assert_node_state_changed_as_a_result_of_standard_lifecycle_operation(node, 'configure')
 
 
-def test_node_state_changes_as_a_result_of_standard_lifecycle_start_shorthand_name(ctx):
-    node = run_operation_on_node(ctx, interface_name=SHORTHAND_NAME, op_name='start')
+def test_node_state_changes_as_a_result_of_standard_lifecycle_start_shorthand_name(ctx, executor):
+    node = run_operation_on_node(
+        ctx, interface_name=SHORTHAND_NAME, op_name='start', executor=executor)
     _assert_node_state_changed_as_a_result_of_standard_lifecycle_operation(node, 'start')
 
 
-def test_node_state_changes_as_a_result_of_standard_lifecycle_stop_shorthand_name(ctx):
-    node = run_operation_on_node(ctx, interface_name=SHORTHAND_NAME, op_name='stop')
+def test_node_state_changes_as_a_result_of_standard_lifecycle_stop_shorthand_name(ctx, executor):
+    node = run_operation_on_node(
+        ctx, interface_name=SHORTHAND_NAME, op_name='stop', executor=executor)
     _assert_node_state_changed_as_a_result_of_standard_lifecycle_operation(node, 'stop')
 
 
-def test_node_state_changes_as_a_result_of_standard_lifecycle_delete_shorthand_name(ctx):
-    node = run_operation_on_node(ctx, interface_name=SHORTHAND_NAME, op_name='delete')
+def test_node_state_changes_as_a_result_of_standard_lifecycle_delete_shorthand_name(ctx, executor):
+    node = run_operation_on_node(
+        ctx, interface_name=SHORTHAND_NAME, op_name='delete', executor=executor)
     _assert_node_state_changed_as_a_result_of_standard_lifecycle_operation(node, 'delete')
 
 
-def test_node_state_doesnt_change_as_a_result_of_an_operation_that_is_not_standard_lifecycle1(ctx):
-    node = run_operation_on_node(ctx, interface_name='interface_name', op_name='op_name')
+def test_node_state_doesnt_change_as_a_result_of_an_operation_that_is_not_standard_lifecycle1(
+        ctx, executor):
+    node = run_operation_on_node(
+        ctx, interface_name='interface_name', op_name='op_name', executor=executor)
     assert node.state == node.INITIAL
 
 
-def test_node_state_doesnt_change_as_a_result_of_an_operation_that_is_not_standard_lifecycle2(ctx):
-    node = run_operation_on_node(ctx, interface_name='interface_name', op_name='create')
+def test_node_state_doesnt_change_as_a_result_of_an_operation_that_is_not_standard_lifecycle2(
+        ctx, executor):
+    node = run_operation_on_node(
+        ctx, interface_name='interface_name', op_name='create', executor=executor)
     assert node.state == node.INITIAL
 
 
-def run_operation_on_node(ctx, op_name, interface_name):
+def run_operation_on_node(ctx, op_name, interface_name, executor):
     node = ctx.model.node.get_by_name(mock.models.DEPENDENCY_NODE_NAME)
     interface = mock.models.create_interface(
         service=node.service,
@@ -117,14 +132,16 @@ def run_operation_on_node(ctx, op_name, interface_name):
         single_operation_workflow(ctx, node=node, interface_name=interface_name, op_name=op_name)
     )
 
-    eng = engine.Engine(executors={ThreadExecutor: ThreadExecutor()})
+    eng = engine.Engine(executors={executor.__class__: executor})
     eng.execute(ctx)
     return node
 
 
-def run_standard_lifecycle_operation_on_node(ctx, op_name):
-    return run_operation_on_node(ctx, interface_name='aria.interfaces.lifecycle.Standard',
-                                 op_name=op_name)
+def run_standard_lifecycle_operation_on_node(ctx, op_name, executor):
+    return run_operation_on_node(ctx,
+                                 interface_name='aria.interfaces.lifecycle.Standard',
+                                 op_name=op_name,
+                                 executor=executor)
 
 
 def _assert_node_state_changed_as_a_result_of_standard_lifecycle_operation(node, op_name):
@@ -143,3 +160,12 @@ def single_operation_workflow(graph, node, interface_name, op_name, **_):
 @operation
 def func(ctx):
     global_test_dict['transitional_state'] = ctx.node.state
+
+
+@pytest.fixture
+def executor():
+    result = ThreadExecutor()
+    try:
+        yield result
+    finally:
+        result.close()