Repository: incubator-ariatosca Updated Branches: refs/heads/ARIA-9-API-for-operation-context ab4468c6e -> 3a255781c
introduced relationship and node operationtasks Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/3a255781 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/3a255781 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/3a255781 Branch: refs/heads/ARIA-9-API-for-operation-context Commit: 3a255781ceb7b80a4e30aeafb097b91b267e8732 Parents: ab4468c Author: mxmrlv <[email protected]> Authored: Mon Nov 14 16:05:46 2016 +0200 Committer: mxmrlv <[email protected]> Committed: Mon Nov 14 16:06:49 2016 +0200 ---------------------------------------------------------------------- aria/workflows/api/task.py | 63 +++++++++++++++-- aria/workflows/builtin/heal.py | 2 - aria/workflows/builtin/workflows.py | 74 ++++++-------------- aria/workflows/core/translation.py | 4 +- tests/context/__init__.py | 4 ++ tests/context/test_operation.py | 74 ++++++++++---------- tests/context/test_toolbelt.py | 38 +++++----- tests/workflows/api/test_task.py | 52 ++++++++++---- .../workflows/builtin/test_execute_operation.py | 2 +- tests/workflows/core/test_engine.py | 6 +- tests/workflows/core/test_task.py | 2 +- .../test_task_graph_into_exececution_graph.py | 7 +- 12 files changed, 194 insertions(+), 134 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/3a255781/aria/workflows/api/task.py ---------------------------------------------------------------------- diff --git a/aria/workflows/api/task.py b/aria/workflows/api/task.py index ba54b31..8d6c905 100644 --- a/aria/workflows/api/task.py +++ b/aria/workflows/api/task.py @@ -52,15 +52,15 @@ class BaseTask(object): return self._workflow_context -class OperationTask(BaseTask): +class _OperationTask(BaseTask): """ Represents an operation task in the task_graph """ def __init__(self, name, - operation_details, actor, + operation_details, max_attempts=None, retry_interval=None, inputs=None): @@ -72,9 +72,9 @@ class OperationTask(BaseTask): :param inputs: operation inputs. """ assert isinstance(actor, (storage.models.NodeInstance, - storage.models.RelationshipInstance)) - super(OperationTask, self).__init__() - self.name = name + storage.models.RelationshipInstance)) + super(_OperationTask, self).__init__() + self.name = '{name}.{actor.id}'.format(name=name, actor=actor) self.operation_details = operation_details self.actor = actor self.inputs = inputs or {} @@ -84,6 +84,59 @@ class OperationTask(BaseTask): if retry_interval is None else retry_interval) +class NodeOperationTask(_OperationTask): + """ + Represents a node based operation + """ + def __init__(self, + actor, + name, + *args, + **kwargs): + """ + Represents a relationship based operation + + :param actor: the node of which this operation belongs to. + :param name: the name of the operation. + """ + assert isinstance(actor, storage.models.NodeInstance) + assert 'operation_details' not in kwargs + operation_details = actor.node.operations[name] + super(NodeOperationTask, self).__init__(name=name, + actor=actor, + operation_details=operation_details, + *args, + **kwargs) + + +class RelationshipOperationTask(_OperationTask): + """ + Represents a relationship based operation + """ + def __init__(self, + actor, + name, + target, + *args, + **kwargs): + """ + Represents a relationship based operation + + :param actor: the relationship of which this operation belongs to. + :param name: the name of the operation. + :param target: whether this is a source or target operation. + """ + assert isinstance(actor, storage.models.RelationshipInstance) + assert 'operation_details' not in kwargs + side = 'target_operations' if target else 'source_operations' + operation_details = getattr(actor.relationship, side)[name] + super(RelationshipOperationTask, self).__init__(actor=actor, + name=name, + operation_details=operation_details, + *args, + **kwargs) + + class WorkflowTask(BaseTask): """ Represents an workflow task in the task_graph http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/3a255781/aria/workflows/builtin/heal.py ---------------------------------------------------------------------- diff --git a/aria/workflows/builtin/heal.py b/aria/workflows/builtin/heal.py index 7174de3..dbfc14e 100644 --- a/aria/workflows/builtin/heal.py +++ b/aria/workflows/builtin/heal.py @@ -99,7 +99,6 @@ def heal_uninstall(ctx, graph, failing_node_instances, targeted_node_instances): if target_node_instance in failing_node_instances: dependency = relationship_tasks( - node_instance=node_instance, relationship_instance=relationship_instance, operation_name='aria.interfaces.relationship_lifecycle.unlink') graph.add_tasks(*dependency) @@ -152,7 +151,6 @@ def heal_install(ctx, graph, failing_node_instances, targeted_node_instances): if target_node_instance in failing_node_instances: dependent = relationship_tasks( - node_instance=node_instance, relationship_instance=relationship_instance, operation_name='aria.interfaces.relationship_lifecycle.establish') graph.add_tasks(*dependent) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/3a255781/aria/workflows/builtin/workflows.py ---------------------------------------------------------------------- diff --git a/aria/workflows/builtin/workflows.py b/aria/workflows/builtin/workflows.py index f9117ac..ee75dbb 100644 --- a/aria/workflows/builtin/workflows.py +++ b/aria/workflows/builtin/workflows.py @@ -42,21 +42,13 @@ def install_node_instance(graph, node_instance, **kwargs): :param node_instance: the node instance to install :return: """ - create_node_instance = task.OperationTask( - name='aria.interfaces.lifecycle.create.{0}'.format(node_instance.id), - operation_details=node_instance.node.operations['aria.interfaces.lifecycle.create'], - actor=node_instance - ) - configure_node_instance = task.OperationTask( - name='aria.interfaces.lifecycle.configure.{0}'.format(node_instance.id), - operation_details=node_instance.node.operations['aria.interfaces.lifecycle.configure'], - actor=node_instance - ) - start_node_instance = task.OperationTask( - name='aria.interfaces.lifecycle.start.{0}'.format(node_instance.id), - operation_details=node_instance.node.operations['aria.interfaces.lifecycle.start'], - actor=node_instance - ) + create_node_instance = task.NodeOperationTask(actor=node_instance, + name='aria.interfaces.lifecycle.create') + + configure_node_instance = task.NodeOperationTask(actor=node_instance, + name='aria.interfaces.lifecycle.configure') + start_node_instance = task.NodeOperationTask(actor=node_instance, + name='aria.interfaces.lifecycle.start') graph.sequence( create_node_instance, @@ -123,16 +115,10 @@ def uninstall_node_instance(graph, node_instance, **kwargs): :param node_instance: the node instance to uninstall :return: """ - stop_node_instance = task.OperationTask( - name='aria.interfaces.lifecycle.stop.{0}'.format(node_instance.id), - operation_details=node_instance.node.operations['aria.interfaces.lifecycle.stop'], - actor=node_instance, - ) - delete_node_instance = task.OperationTask( - name='aria.interfaces.lifecycle.delete.{0}'.format(node_instance.id), - operation_details=node_instance.node.operations['aria.interfaces.lifecycle.delete'], - actor=node_instance - ) + stop_node_instance = task.NodeOperationTask(actor=node_instance, + name='aria.interfaces.lifecycle.stop') + delete_node_instance = task.NodeOperationTask(actor=node_instance, + name='aria.interfaces.lifecycle.delete') graph.sequence( stop_node_instance, @@ -173,14 +159,9 @@ def execute_operation_on_instance( if allow_kwargs_override is not None: operation_kwargs['allow_kwargs_override'] = allow_kwargs_override - task_name = '{node_instance.id}.{operation_name}'.format( - node_instance=node_instance, - operation_name=operation) - - return task.OperationTask( - name=task_name, - operation_details=node_instance.node.operations[operation], + return task.NodeOperationTask( actor=node_instance, + name=operation, inputs=operation_kwargs) @@ -197,19 +178,17 @@ def relationships_tasks(graph, operation_name, node_instance): key=lambda relationship_instance: relationship_instance.relationship.target_id) sub_tasks = [] - for index, (_, relationship_group) in enumerate(relationships_groups): + for _, (_, relationship_group) in enumerate(relationships_groups): for relationship_instance in relationship_group: relationship_operations = relationship_tasks( - node_instance=node_instance, relationship_instance=relationship_instance, - operation_name=operation_name, - index=index) + operation_name=operation_name) sub_tasks.append(relationship_operations) return graph.sequence(*sub_tasks) -def relationship_tasks(node_instance, relationship_instance, operation_name, index=None): +def relationship_tasks(relationship_instance, operation_name): """ Creates a relationship task source and target. :param NodeInstance node_instance: the node instance of the relationship @@ -219,19 +198,10 @@ def relationship_tasks(node_instance, relationship_instance, operation_name, ind :param index: the relationship index - enables pretty print :return: """ - index = index or node_instance.relationship_instances.index(relationship_instance) - operation_name_template = '{name}.{index}.{{0}}.<{source_id}, {target_id}>'.format( - name=operation_name, - index=index, - source_id=node_instance.id, - target_id=relationship_instance.target_id, - ) - source_operation = task.OperationTask( - name=operation_name_template.format('source'), - actor=relationship_instance, - operation_details=relationship_instance.relationship.source_operations[operation_name]) - target_operation = task.OperationTask( - name=operation_name_template.format('target'), - actor=relationship_instance, - operation_details=relationship_instance.relationship.target_operations[operation_name]) + source_operation = task.RelationshipOperationTask(actor=relationship_instance, + name=operation_name, + target=False) + target_operation = task.RelationshipOperationTask(actor=relationship_instance, + name=operation_name, + target=True) return source_operation, target_operation http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/3a255781/aria/workflows/core/translation.py ---------------------------------------------------------------------- diff --git a/aria/workflows/core/translation.py b/aria/workflows/core/translation.py index b6cbdad..8e55e14 100644 --- a/aria/workflows/core/translation.py +++ b/aria/workflows/core/translation.py @@ -47,7 +47,7 @@ def build_execution_graph( dependencies, default=[start_task]) - if isinstance(api_task, api.task.OperationTask): + if isinstance(api_task, api.task._OperationTask): # Add the task an the dependencies operation_task = core_task.OperationTask(api_task) _add_task_and_dependencies(execution_graph, operation_task, operation_dependencies) @@ -86,7 +86,7 @@ def _get_tasks_from_dependencies(execution_graph, dependencies, default=()): Returns task list from dependencies. """ return [execution_graph.node[dependency.id - if isinstance(dependency, (api.task.OperationTask, + if isinstance(dependency, (api.task._OperationTask, api.task.StubTask)) else _end_graph_suffix(dependency.id)]['task'] for dependency in dependencies] or default http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/3a255781/tests/context/__init__.py ---------------------------------------------------------------------- diff --git a/tests/context/__init__.py b/tests/context/__init__.py index bb0fa61..99cda92 100644 --- a/tests/context/__init__.py +++ b/tests/context/__init__.py @@ -27,6 +27,10 @@ def op_path(func, module_path=None): return '{0}.{1}'.format(module_path, func.__name__) +def op_name(actor, operation_name): + return '{name}.{actor.id}'.format(name=operation_name, actor=actor) + + def execute(workflow_func, workflow_context, executor): graph = workflow_func(ctx=workflow_context) eng = engine.Engine(executor=executor, workflow_context=workflow_context, tasks_graph=graph) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/3a255781/tests/context/test_operation.py ---------------------------------------------------------------------- diff --git a/tests/context/test_operation.py b/tests/context/test_operation.py index 1d3430b..40283fc 100644 --- a/tests/context/test_operation.py +++ b/tests/context/test_operation.py @@ -28,13 +28,14 @@ from aria.workflows.executor import thread from .. import mock from . import ( op_path, + op_name, execute, global_test_holder, ) @pytest.fixture -def workflow_context(): +def ctx(): return mock.context.simple() @@ -47,34 +48,34 @@ def executor(): result.close() -def test_node_operation_task_execution(workflow_context, executor): - node = mock.models.get_dependency_node() - node_instance = mock.models.get_dependency_node_instance(node) - workflow_context.model.node.store(node) - workflow_context.model.node_instance.store(node_instance) +def test_node_operation_task_execution(ctx, executor): + operation_name = 'aria.interfaces.lifecycle.create' - node_instance = \ - workflow_context.model.node_instance.get(mock.models.DEPENDENCY_NODE_INSTANCE_ID) - name = 'op_name' - operation_details = { + node = mock.models.get_dependency_node() + node.operations[operation_name] = { 'operation': op_path(my_operation, module_path=sys.modules[__name__].__name__) + } + node_instance = mock.models.get_dependency_node_instance(node) + ctx.model.node.store(node) + ctx.model.node_instance.store(node_instance) + + node_instance = ctx.model.node_instance.get(mock.models.DEPENDENCY_NODE_INSTANCE_ID) inputs = {'putput': True} @workflow def basic_workflow(graph, **_): graph.add_tasks( - api.task.OperationTask( - name=name, - operation_details=operation_details, + api.task.NodeOperationTask( + name=operation_name, actor=node_instance, inputs=inputs ) ) - execute(workflow_func=basic_workflow, workflow_context=workflow_context, executor=executor) + execute(workflow_func=basic_workflow, workflow_context=ctx, executor=executor) - operation_value = global_test_holder[name] + operation_value = global_test_holder[op_name(node_instance, operation_name)] assert isinstance(operation_value, context.operation.NodeOperationContext) @@ -84,8 +85,8 @@ def test_node_operation_task_execution(workflow_context, executor): # Task bases assertions assert operation_value.task.actor == node_instance - assert operation_value.task.name == name - assert operation_value.task.operation_details == operation_details + assert operation_value.task.name == op_name(node_instance, operation_name) + assert operation_value.task.operation_details == node.operations[operation_name] assert operation_value.task.inputs == inputs # Context based attributes (sugaring) @@ -93,10 +94,15 @@ def test_node_operation_task_execution(workflow_context, executor): assert operation_value.node_instance == node_instance -def test_relationship_operation_task_execution(workflow_context, executor): +def test_relationship_operation_task_execution(ctx, executor): + operation_name = 'aria.interfaces.relationship_lifecycle.postconfigure' + dependency_node = mock.models.get_dependency_node() dependency_node_instance = mock.models.get_dependency_node_instance() relationship = mock.models.get_relationship(target=dependency_node) + relationship.source_operations[operation_name] = { + 'operation': op_path(my_operation, module_path=sys.modules[__name__].__name__) + } relationship_instance = mock.models.get_relationship_instance( target_instance=dependency_node_instance, relationship=relationship) @@ -104,33 +110,29 @@ def test_relationship_operation_task_execution(workflow_context, executor): dependent_node_instance = mock.models.get_dependent_node_instance( relationship_instance=relationship_instance, dependent_node=dependency_node) - workflow_context.model.node.store(dependency_node) - workflow_context.model.node_instance.store(dependency_node_instance) - workflow_context.model.relationship.store(relationship) - workflow_context.model.relationship_instance.store(relationship_instance) - workflow_context.model.node.store(dependent_node) - workflow_context.model.node_instance.store(dependent_node_instance) - - name = 'op_name' - operation_details = { - 'operation': op_path(my_operation, module_path=sys.modules[__name__].__name__) - } + ctx.model.node.store(dependency_node) + ctx.model.node_instance.store(dependency_node_instance) + ctx.model.relationship.store(relationship) + ctx.model.relationship_instance.store(relationship_instance) + ctx.model.node.store(dependent_node) + ctx.model.node_instance.store(dependent_node_instance) + inputs = {'putput': True} @workflow def basic_workflow(graph, **_): graph.add_tasks( - api.task.OperationTask( - name=name, - operation_details=operation_details, + api.task.RelationshipOperationTask( actor=relationship_instance, + name=operation_name, + target=False, inputs=inputs ) ) - execute(workflow_func=basic_workflow, workflow_context=workflow_context, executor=executor) + execute(workflow_func=basic_workflow, workflow_context=ctx, executor=executor) - operation_value = global_test_holder[name] + operation_value = global_test_holder[op_name(relationship_instance, operation_name)] assert isinstance(operation_value, context.operation.RelationshipOperationContext) @@ -140,8 +142,8 @@ def test_relationship_operation_task_execution(workflow_context, executor): # Task bases assertions assert operation_value.task.actor == relationship_instance - assert operation_value.task.name == name - assert operation_value.task.operation_details == operation_details + assert operation_value.task.name == op_name(relationship_instance, operation_name) + assert operation_value.task.operation_details == relationship.source_operations[operation_name] assert operation_value.task.inputs == inputs # Context based attributes (sugaring) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/3a255781/tests/context/test_toolbelt.py ---------------------------------------------------------------------- diff --git a/tests/context/test_toolbelt.py b/tests/context/test_toolbelt.py index c71eb65..0208738 100644 --- a/tests/context/test_toolbelt.py +++ b/tests/context/test_toolbelt.py @@ -25,6 +25,7 @@ from aria.context.toolbelt import _RelationshipToolBelt, _NodeToolBelt from .. import mock from . import ( op_path, + op_name, execute, global_test_holder, ) @@ -45,9 +46,14 @@ def executor(): def test_operation_tool_belt(workflow_context, executor): - + operation_name = 'aria.interfaces.lifecycle.create' dependency_node = mock.models.get_dependency_node() - dependency_node_instance = mock.models.get_dependency_node_instance() + dependency_node.operations[operation_name] = { + 'operation': op_path(node_operation, module_path=sys.modules[__name__].__name__) + + } + dependency_node_instance = mock.models.get_dependency_node_instance( + dependency_node=dependency_node) relationship = mock.models.get_relationship(target=dependency_node) relationship_instance = mock.models.get_relationship_instance( target_instance=dependency_node_instance, relationship=relationship) @@ -61,34 +67,36 @@ def test_operation_tool_belt(workflow_context, executor): workflow_context.model.node.store(dependent_node) workflow_context.model.node_instance.store(dependent_node_instance) - name = 'op_name' - operation_details = {'operation': op_path(node_operation, - module_path=sys.modules[__name__].__name__)} inputs = {'putput': True} @workflow def basic_workflow(graph, **_): graph.add_tasks( - api.task.OperationTask( - name=name, - operation_details=operation_details, + api.task.NodeOperationTask( actor=dependency_node_instance, + name=operation_name, inputs=inputs ) ) execute(workflow_func=basic_workflow, workflow_context=workflow_context, executor=executor) - assert isinstance(global_test_holder.get(name), _NodeToolBelt) + assert isinstance(global_test_holder.get(op_name(dependency_node_instance, operation_name)), + _NodeToolBelt) assert list(global_test_holder.get('relationships_to_me', [])) == list([relationship_instance]) assert global_test_holder.get('ip') == dependency_node_instance.runtime_properties.get('ip') def test_relationship_tool_belt(workflow_context, executor): + operation_name = 'aria.interfaces.relationship_lifecycle.postconfigure' + dependency_node = mock.models.get_dependency_node() dependency_node_instance = \ mock.models.get_dependency_node_instance(dependency_node=dependency_node) relationship = mock.models.get_relationship(target=dependency_node) + relationship.source_operations[operation_name] = { + 'operation': op_path(relationship_operation, module_path=sys.modules[__name__].__name__) + } relationship_instance = \ mock.models.get_relationship_instance(target_instance=dependency_node_instance, relationship=relationship) @@ -103,25 +111,23 @@ def test_relationship_tool_belt(workflow_context, executor): workflow_context.model.node.store(dependent_node) workflow_context.model.node_instance.store(dependent_node_instance) - name = 'op_name' - operation_details = {'operation': op_path(relationship_operation, - module_path=sys.modules[__name__].__name__)} inputs = {'putput': True} @workflow def basic_workflow(graph, **_): graph.add_tasks( - api.task.OperationTask( - name=name, - operation_details=operation_details, + api.task.RelationshipOperationTask( actor=relationship_instance, + name=operation_name, + target=False, inputs=inputs ) ) execute(workflow_func=basic_workflow, workflow_context=workflow_context, executor=executor) - assert isinstance(global_test_holder.get(name), _RelationshipToolBelt) + assert isinstance(global_test_holder.get(op_name(relationship_instance, operation_name)), + _RelationshipToolBelt) def test_wrong_model_toolbelt(): http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/3a255781/tests/workflows/api/test_task.py ---------------------------------------------------------------------- diff --git a/tests/workflows/api/test_task.py b/tests/workflows/api/test_task.py index f198b30..9a910f9 100644 --- a/tests/workflows/api/test_task.py +++ b/tests/workflows/api/test_task.py @@ -60,35 +60,63 @@ def ctx(): class TestOperationTask(object): - def test_operation_task_creation(self): + def test_node_operation_task_creation(self): workflow_context = mock.context.simple() - name = 'task_name' + operation_name = 'aria.interfaces.lifecycle.create' op_details = {'operation_details': True} - node_instance = mock.models.get_dependency_node_instance() + node = mock.models.get_dependency_node() + node.operations[operation_name] = op_details + node_instance = mock.models.get_dependency_node_instance(dependency_node=node) inputs = {'inputs': True} max_attempts = 10 retry_interval = 10 with context.workflow.current.push(workflow_context): - api_task = api.task.OperationTask(name=name, - operation_details=op_details, - actor=node_instance, - inputs=inputs, - max_attempts=max_attempts, - retry_interval=retry_interval) - - assert api_task.name == name + api_task = api.task.NodeOperationTask(name=operation_name, + actor=node_instance, + inputs=inputs, + max_attempts=max_attempts, + retry_interval=retry_interval) + + assert api_task.name == '{0}.{1}'.format(operation_name, node_instance.id) assert api_task.operation_details == op_details assert api_task.actor == node_instance assert api_task.inputs == inputs assert api_task.retry_interval == retry_interval assert api_task.max_attempts == max_attempts + def test_relationship_operation_task_creation(self): + workflow_context = mock.context.simple() + + operation_name = 'aria.interfaces.relationship_lifecycle.preconfigure' + op_details = {'operation_details': True} + relationship = mock.models.get_relationship() + relationship.source_operations[operation_name] = op_details + relationship_instance = mock.models.get_relationship_instance(relationship=relationship) + inputs = {'inputs': True} + max_attempts = 10 + retry_interval = 10 + + with context.workflow.current.push(workflow_context): + api_task = api.task.RelationshipOperationTask(name=operation_name, + actor=relationship_instance, + target=False, + inputs=inputs, + max_attempts=max_attempts, + retry_interval=retry_interval) + + assert api_task.name == '{0}.{1}'.format(operation_name, relationship_instance.id) + assert api_task.operation_details == op_details + assert api_task.actor == relationship_instance + assert api_task.inputs == inputs + assert api_task.retry_interval == retry_interval + assert api_task.max_attempts == max_attempts + def test_operation_task_default_values(self): workflow_context = mock.context.simple() with context.workflow.current.push(workflow_context): - model_task = api.task.OperationTask( + model_task = api.task._OperationTask( name='stub', operation_details={}, actor=mock.models.get_dependency_node_instance()) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/3a255781/tests/workflows/builtin/test_execute_operation.py ---------------------------------------------------------------------- diff --git a/tests/workflows/builtin/test_execute_operation.py b/tests/workflows/builtin/test_execute_operation.py index 9409686..0bd59ed 100644 --- a/tests/workflows/builtin/test_execute_operation.py +++ b/tests/workflows/builtin/test_execute_operation.py @@ -46,6 +46,6 @@ def test_execute_operation(ctx): ) assert len(execute_tasks) == 1 - assert execute_tasks[0].name == '{0}.{1}'.format(node_instance_id, operation_name) + assert execute_tasks[0].name == '{0}.{1}'.format(operation_name, node_instance_id) # TODO: add more scenarios http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/3a255781/tests/workflows/core/test_engine.py ---------------------------------------------------------------------- diff --git a/tests/workflows/core/test_engine.py b/tests/workflows/core/test_engine.py index d878ad3..0474d8d 100644 --- a/tests/workflows/core/test_engine.py +++ b/tests/workflows/core/test_engine.py @@ -61,7 +61,7 @@ class BaseTest(object): @staticmethod def _op(func, ctx, inputs=None, max_attempts=None, retry_interval=None): - return api.task.OperationTask( + return api.task._OperationTask( name='task', operation_details={'operation': 'tests.workflows.core.test_engine.{name}'.format( name=func.__name__)}, @@ -113,9 +113,7 @@ class BaseTest(object): @pytest.fixture(scope='function') def executor(self): - from aria.workflows.executor.blocking import CurrentThreadBlockingExecutor - result = CurrentThreadBlockingExecutor() - # result = thread.ThreadExecutor() + result = thread.ThreadExecutor() try: yield result finally: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/3a255781/tests/workflows/core/test_task.py ---------------------------------------------------------------------- diff --git a/tests/workflows/core/test_task.py b/tests/workflows/core/test_task.py index e268e44..13ff915 100644 --- a/tests/workflows/core/test_task.py +++ b/tests/workflows/core/test_task.py @@ -52,7 +52,7 @@ class TestOperationTask(object): def _create_operation_task(self, ctx, node_instance): with workflow_context.current.push(ctx): - api_task = api.task.OperationTask( + api_task = api.task._OperationTask( name='ripe', operation_details={'operations': 'aria.tests.workflows.core.test_task.foo'}, actor=node_instance, http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/3a255781/tests/workflows/core/test_task_graph_into_exececution_graph.py ---------------------------------------------------------------------- diff --git a/tests/workflows/core/test_task_graph_into_exececution_graph.py b/tests/workflows/core/test_task_graph_into_exececution_graph.py index fda36cd..2384788 100644 --- a/tests/workflows/core/test_task_graph_into_exececution_graph.py +++ b/tests/workflows/core/test_task_graph_into_exececution_graph.py @@ -22,6 +22,7 @@ from ... import mock def test_task_graph_into_execution_graph(): + operation_name = 'aria.interfaces.lifecycle.create' task_context = mock.context.simple() node = mock.models.get_dependency_node() node_instance = mock.models.get_dependency_node_instance() @@ -37,11 +38,11 @@ def test_task_graph_into_execution_graph(): with context.workflow.current.push(task_context): test_task_graph = api.task.WorkflowTask(sub_workflow, name='test_task_graph') - simple_before_task = api.task.OperationTask('test_simple_before_task', {}, node_instance) - simple_after_task = api.task.OperationTask('test_simple_after_task', {}, node_instance) + simple_before_task = api.task.NodeOperationTask(node_instance, operation_name) + simple_after_task = api.task.NodeOperationTask(node_instance, operation_name) inner_task_graph = api.task.WorkflowTask(sub_workflow, name='test_inner_task_graph') - inner_task = api.task.OperationTask('test_inner_task', {}, node_instance) + inner_task = api.task.NodeOperationTask(node_instance, operation_name) inner_task_graph.add_tasks(inner_task) test_task_graph.add_tasks(simple_before_task)
