brought back most of the model tests and reabsed
Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/efc4dae7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/efc4dae7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/efc4dae7 Branch: refs/heads/ARIA-44-Merge-parser-and-storage-models Commit: efc4dae7de7be37ce429bbad5f6acd92eff31573 Parents: 7dc3692 Author: mxmrlv <[email protected]> Authored: Thu Feb 9 16:48:44 2017 +0200 Committer: mxmrlv <[email protected]> Committed: Thu Feb 9 16:48:44 2017 +0200 ---------------------------------------------------------------------- aria/orchestrator/context/operation.py | 2 +- aria/orchestrator/context/workflow.py | 10 +- aria/orchestrator/workflows/api/task.py | 6 +- .../workflows/builtin/execute_operation.py | 54 +- aria/orchestrator/workflows/builtin/heal.py | 8 +- aria/orchestrator/workflows/builtin/install.py | 6 +- .../orchestrator/workflows/builtin/uninstall.py | 2 +- aria/orchestrator/workflows/builtin/utils.py | 12 +- aria/parser/modeling/storage.py | 4 +- aria/storage/modeling/__init__.py | 2 - aria/storage/modeling/elements.py | 5 +- aria/storage/modeling/instance_elements.py | 17 +- aria/storage/modeling/model.py | 76 +-- aria/storage/modeling/orchestrator_elements.py | 12 +- aria/storage/modeling/template_elements.py | 2 +- aria/storage/sql_mapi.py | 6 +- aria/storage_initializer.py | 10 +- aria/utils/application.py | 10 +- tests/mock/context.py | 4 +- tests/orchestrator/context/test_operation.py | 8 +- tests/orchestrator/context/test_serialize.py | 3 +- tests/orchestrator/context/test_toolbelt.py | 4 +- .../orchestrator/execution_plugin/test_local.py | 2 +- tests/orchestrator/execution_plugin/test_ssh.py | 2 +- tests/orchestrator/test_runner.py | 4 +- tests/orchestrator/workflows/api/test_task.py | 8 +- .../workflows/builtin/test_execute_operation.py | 11 +- .../orchestrator/workflows/builtin/test_heal.py | 8 +- .../orchestrator/workflows/core/test_engine.py | 2 +- tests/orchestrator/workflows/core/test_task.py | 4 +- .../test_task_graph_into_exececution_graph.py | 12 +- .../executor/test_process_executor_extension.py | 2 +- .../test_process_executor_tracked_changes.py | 6 +- .../service_templates/node-cellar/workflows.py | 4 +- tests/storage/__init__.py | 33 +- tests/storage/test_instrumentation.py | 6 +- tests/storage/test_model_storage.py | 2 +- tests/storage/test_models.py | 626 ++++++++----------- tests/storage/test_structures.py | 14 +- 39 files changed, 459 insertions(+), 550 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/aria/orchestrator/context/operation.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/context/operation.py b/aria/orchestrator/context/operation.py index d16a8ee..c5ac8f0 100644 --- a/aria/orchestrator/context/operation.py +++ b/aria/orchestrator/context/operation.py @@ -79,7 +79,7 @@ class BaseOperationContext(BaseContext): context_cls = self.__class__ context_dict = { 'name': self.name, - 'deployment_id': self._deployment_id, + 'service_instance_id': self._service_instance_id, 'task_id': self._task_id, 'actor_id': self._actor_id, 'workdir': self._workdir, http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/aria/orchestrator/context/workflow.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/context/workflow.py b/aria/orchestrator/context/workflow.py index 4a8d94f..00ed974 100644 --- a/aria/orchestrator/context/workflow.py +++ b/aria/orchestrator/context/workflow.py @@ -83,11 +83,11 @@ class WorkflowContext(BaseContext): """ Iterator over nodes """ - key = 'deployment_{0}'.format(self.model.node_template.model_cls.name_column_name()) + key = 'service_instance_{0}'.format(self.model.node_template.model_cls.name_column_name()) - return self.model.node.iter( + return self.model.node_template.iter( filters={ - key: getattr(self.service_instance, self.service_instance.node_template()) + key: getattr(self.service_instance, self.service_instance.name_column_name()) } ) @@ -96,8 +96,8 @@ class WorkflowContext(BaseContext): """ Iterator over node instances """ - key = 'deployment_{0}'.format(self.model.node_instance.model_cls.name_column_name()) - return self.model.node_instance.iter( + key = 'service_instance_{0}'.format(self.model.node.model_cls.name_column_name()) + return self.model.node.iter( filters={ key: getattr(self.service_instance, self.service_instance.name_column_name()) } http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/aria/orchestrator/workflows/api/task.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/workflows/api/task.py b/aria/orchestrator/workflows/api/task.py index 64cd7f3..6a00844 100644 --- a/aria/orchestrator/workflows/api/task.py +++ b/aria/orchestrator/workflows/api/task.py @@ -99,7 +99,7 @@ class OperationTask(BaseTask): return final_inputs @classmethod - def node_instance(cls, instance, name, inputs=None, *args, **kwargs): + def node(cls, instance, name, inputs=None, *args, **kwargs): """ Represents a node based operation @@ -142,8 +142,8 @@ class OperationTask(BaseTask): **kwargs) @classmethod - def relationship_instance(cls, instance, name, edge, runs_on=None, inputs=None, *args, - **kwargs): + def relationship(cls, instance, name, edge, runs_on=None, inputs=None, *args, + **kwargs): """ Represents a relationship based operation http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/aria/orchestrator/workflows/builtin/execute_operation.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/workflows/builtin/execute_operation.py b/aria/orchestrator/workflows/builtin/execute_operation.py index e76993d..5a7f6ce 100644 --- a/aria/orchestrator/workflows/builtin/execute_operation.py +++ b/aria/orchestrator/workflows/builtin/execute_operation.py @@ -30,8 +30,8 @@ def execute_operation( allow_kwargs_override, run_by_dependency_order, type_names, + node_template_ids, node_ids, - node_instance_ids, **kwargs): """ The execute_operation workflow @@ -43,32 +43,32 @@ def execute_operation( :param bool allow_kwargs_override: :param bool run_by_dependency_order: :param type_names: + :param node_template_ids: :param node_ids: - :param node_instance_ids: :param kwargs: :return: """ subgraphs = {} # filtering node instances - filtered_node_instances = list(_filter_node_instances( + filtered_nodes = list(_filter_node_instances( context=ctx, + node_template_ids=node_template_ids, node_ids=node_ids, - node_instance_ids=node_instance_ids, type_names=type_names)) if run_by_dependency_order: filtered_node_instances_ids = set(node_instance.id - for node_instance in filtered_node_instances) - for node_instance in ctx.node_instances: - if node_instance.id not in filtered_node_instances_ids: - subgraphs[node_instance.id] = ctx.task_graph( - name='execute_operation_stub_{0}'.format(node_instance.id)) + for node_instance in filtered_nodes) + for node in ctx.node_instances: + if node.id not in filtered_node_instances_ids: + subgraphs[node.id] = ctx.task_graph( + name='execute_operation_stub_{0}'.format(node.id)) # registering actual tasks to sequences - for node_instance in filtered_node_instances: + for node in filtered_nodes: graph.add_tasks( _create_node_instance_task( - node_instance=node_instance, + nodes=node, operation=operation, operation_kwargs=operation_kwargs, allow_kwargs_override=allow_kwargs_override @@ -80,37 +80,37 @@ def execute_operation( # adding tasks dependencies if required if run_by_dependency_order: - for node_instance in ctx.node_instances: - for relationship_instance in node_instance.relationship_instances: - graph.add_dependency(source_task=subgraphs[node_instance.id], - after=[subgraphs[relationship_instance.target_id]]) + for node in ctx.nodes: + for relationship in node.relationships: + graph.add_dependency( + source_task=subgraphs[node.id], after=[subgraphs[relationship.target_id]]) -def _filter_node_instances(context, node_ids=(), node_instance_ids=(), type_names=()): +def _filter_node_instances(context, node_template_ids=(), node_ids=(), type_names=()): def _is_node_by_id(node_id): - return not node_ids or node_id in node_ids + return not node_template_ids or node_id in node_template_ids def _is_node_instance_by_id(node_instance_id): - return not node_instance_ids or node_instance_id in node_instance_ids + return not node_ids or node_instance_id in node_ids def _is_node_by_type(node_type_hierarchy): return not type_names or node_type_hierarchy in type_names - for node_instance in context.node_instances: - if all((_is_node_by_id(node_instance.node.id), - _is_node_instance_by_id(node_instance.id), - _is_node_by_type(node_instance.node.type_hierarchy))): - yield node_instance + for node in context.nodes: + if all((_is_node_by_id(node.node_template.id), + _is_node_instance_by_id(node.id), + _is_node_by_type(node.node_template.type_hierarchy))): + yield node def _create_node_instance_task( - node_instance, + nodes, operation, operation_kwargs, allow_kwargs_override): """ A workflow which executes a single operation - :param node_instance: the node instance to install + :param nodes: the node instance to install :param basestring operation: the operation name :param dict operation_kwargs: :param bool allow_kwargs_override: @@ -120,7 +120,7 @@ def _create_node_instance_task( if allow_kwargs_override is not None: operation_kwargs['allow_kwargs_override'] = allow_kwargs_override - return OperationTask.node_instance( - instance=node_instance, + return OperationTask.node( + instance=nodes, name=operation, inputs=operation_kwargs) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/aria/orchestrator/workflows/builtin/heal.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/workflows/builtin/heal.py b/aria/orchestrator/workflows/builtin/heal.py index 72f04a1..2592323 100644 --- a/aria/orchestrator/workflows/builtin/heal.py +++ b/aria/orchestrator/workflows/builtin/heal.py @@ -35,8 +35,8 @@ def heal(ctx, graph, node_instance_id): :param node_instance_id: the id of the node instance to heal :return: """ - failing_node = ctx.model.node_instance.get(node_instance_id) - host_node = ctx.model.node_instance.get(failing_node.host.id) + failing_node = ctx.model.node.get(node_instance_id) + host_node = ctx.model.node.get(failing_node.host.id) failed_node_instance_subgraph = _get_contained_subgraph(ctx, host_node) failed_node_instance_ids = list(n.id for n in failed_node_instance_subgraph) @@ -98,7 +98,7 @@ def heal_uninstall(ctx, graph, failing_node_instances, targeted_node_instances): for relationship_instance in reversed(node_instance.outbound_relationship_instances): target_node_instance = \ - ctx.model.node_instance.get(relationship_instance.target_node_instance.id) + ctx.model.node.get(relationship_instance.target_node_instance.id) target_node_instance_subgraph = node_instance_sub_workflows[target_node_instance.id] graph.add_dependency(target_node_instance_subgraph, node_instance_sub_workflow) @@ -151,7 +151,7 @@ def heal_install(ctx, graph, failing_node_instances, targeted_node_instances): node_instance_sub_workflow = node_instance_sub_workflows[node_instance.id] for relationship_instance in node_instance.outbound_relationship_instances: - target_node_instance = ctx.model.node_instance.get( + target_node_instance = ctx.model.node.get( relationship_instance.target_node_instance.id) target_node_instance_subworkflow = node_instance_sub_workflows[target_node_instance.id] graph.add_dependency(node_instance_sub_workflow, target_node_instance_subworkflow) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/aria/orchestrator/workflows/builtin/install.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/workflows/builtin/install.py b/aria/orchestrator/workflows/builtin/install.py index 20afb64..2b9ec66 100644 --- a/aria/orchestrator/workflows/builtin/install.py +++ b/aria/orchestrator/workflows/builtin/install.py @@ -26,9 +26,7 @@ from ... import workflow @workflow def install(ctx, graph): tasks_and_nodes = [] - for node in ctx.model.node.iter(): - tasks_and_nodes.append(( - WorkflowTask(install_node, node=node), - node)) + for node in ctx.nodes: + tasks_and_nodes.append((WorkflowTask(install_node, node=node), node)) graph.add_tasks([task for task, _ in tasks_and_nodes]) create_node_task_dependencies(graph, tasks_and_nodes) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/aria/orchestrator/workflows/builtin/uninstall.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/workflows/builtin/uninstall.py b/aria/orchestrator/workflows/builtin/uninstall.py index 7948f3e..e4afcd9 100644 --- a/aria/orchestrator/workflows/builtin/uninstall.py +++ b/aria/orchestrator/workflows/builtin/uninstall.py @@ -26,7 +26,7 @@ from ... import workflow @workflow def uninstall(ctx, graph): tasks_and_nodes = [] - for node in ctx.model.node.iter(): + for node in ctx.nodes: tasks_and_nodes.append(( WorkflowTask(uninstall_node, node=node), node)) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/aria/orchestrator/workflows/builtin/utils.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/workflows/builtin/utils.py b/aria/orchestrator/workflows/builtin/utils.py index bf85153..c9dbc6b 100644 --- a/aria/orchestrator/workflows/builtin/utils.py +++ b/aria/orchestrator/workflows/builtin/utils.py @@ -22,8 +22,8 @@ def create_node_task(operation_name, node): """ if _has_operation(node.interfaces, operation_name): - return OperationTask.node_instance(instance=node, - name=operation_name) + return OperationTask.node(instance=node, + name=operation_name) return None @@ -37,10 +37,10 @@ def create_relationship_tasks(operation_name, runs_on, node): for relationship in node.outbound_relationships: if _has_operation(relationship.interfaces, operation_name): sequence.append( - OperationTask.relationship_instance(instance=relationship, - name=operation_name, - edge='source', - runs_on=runs_on)) + OperationTask.relationship(instance=relationship, + name=operation_name, + edge='source', + runs_on=runs_on)) return sequence http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/aria/parser/modeling/storage.py ---------------------------------------------------------------------- diff --git a/aria/parser/modeling/storage.py b/aria/parser/modeling/storage.py index 108ccb4..4633ee2 100644 --- a/aria/parser/modeling/storage.py +++ b/aria/parser/modeling/storage.py @@ -69,7 +69,9 @@ def create_service_template(context): description=context.modeling.model.description or '', created_at=now, updated_at=now, - main_file_name=main_file_name) + main_file_name=main_file_name, + plan={} + ) def create_service_instance(context, service_template, service_instance_id): http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/aria/storage/modeling/__init__.py ---------------------------------------------------------------------- diff --git a/aria/storage/modeling/__init__.py b/aria/storage/modeling/__init__.py index 1d5936e..697ed09 100644 --- a/aria/storage/modeling/__init__.py +++ b/aria/storage/modeling/__init__.py @@ -21,7 +21,6 @@ from . import ( orchestrator_elements as _orchestrator_base, template_elements as _template_base, ) -from .model import DB as declarative_base _ModelBaseCls = namedtuple('ModelBase', 'instance_elements,' 'orchestrator_elements,' @@ -33,5 +32,4 @@ model_base = _ModelBaseCls(instance_elements=_instance_base, __all__ = ( 'model', 'model_base', - 'declarative_base' ) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/aria/storage/modeling/elements.py ---------------------------------------------------------------------- diff --git a/aria/storage/modeling/elements.py b/aria/storage/modeling/elements.py index 1563217..ef609e0 100644 --- a/aria/storage/modeling/elements.py +++ b/aria/storage/modeling/elements.py @@ -48,10 +48,11 @@ class ParameterBase(structure.ModelMixin): return OrderedDict(( ('name', self.name), ('type_name', self.type), - ('value', self._cast_value()), + ('value', self.raw_value), ('description', self.description))) - def _cast_value(self): + @property + def raw_value(self): if self.type is None: return try: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/aria/storage/modeling/instance_elements.py ---------------------------------------------------------------------- diff --git a/aria/storage/modeling/instance_elements.py b/aria/storage/modeling/instance_elements.py index 7b8fe14..1bb8f71 100644 --- a/aria/storage/modeling/instance_elements.py +++ b/aria/storage/modeling/instance_elements.py @@ -888,16 +888,21 @@ class NodeBase(structure.ModelMixin): def host(cls): return cls.relationship_to_self('host_fk') + @declared_attr + def service_instance_name(cls): + return association_proxy('service_instance', 'name') + @property def ip(self): if not self.host_fk: return None - host_node_instance = self.host - if 'ip' in host_node_instance.runtime_properties: # pylint: disable=no-member - return host_node_instance.runtime_properties['ip'] # pylint: disable=no-member - host_node = host_node_instance.node # pylint: disable=no-member - if 'ip' in host_node.properties: - return host_node.properties['ip'] + host_node = self.host + if 'ip' in host_node.runtime_properties: # pylint: disable=no-member + return host_node.runtime_properties['ip'] # pylint: disable=no-member + host_node = host_node.node_template # pylint: disable=no-member + host_ip_property = [prop for prop in host_node.properties if prop.name == 'ip'] + if host_ip_property: + return host_ip_property[0].raw_value return None @declared_attr http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/aria/storage/modeling/model.py ---------------------------------------------------------------------- diff --git a/aria/storage/modeling/model.py b/aria/storage/modeling/model.py index 74e419d..62b90b3 100644 --- a/aria/storage/modeling/model.py +++ b/aria/storage/modeling/model.py @@ -24,8 +24,10 @@ from . import ( ) __all__ = ( - 'DB', + 'aria_declarative_base', + 'Parameter', + 'MappingTemplate', 'InterfaceTemplate', 'OperationTemplate', @@ -61,14 +63,14 @@ __all__ = ( 'Task' ) -DB = declarative_base(cls=structure.ModelIDMixin) +aria_declarative_base = declarative_base(cls=structure.ModelIDMixin) # pylint: disable=abstract-method # region elements -class Parameter(elements.ParameterBase, DB): +class Parameter(aria_declarative_base, elements.ParameterBase): pass # endregion @@ -76,55 +78,56 @@ class Parameter(elements.ParameterBase, DB): # region template models -class MappingTemplate(DB, template_elements.MappingTemplateBase): +class MappingTemplate(aria_declarative_base, template_elements.MappingTemplateBase): pass -class SubstitutionTemplate(DB, template_elements.SubstitutionTemplateBase): +class SubstitutionTemplate(aria_declarative_base, template_elements.SubstitutionTemplateBase): pass -class InterfaceTemplate(DB, template_elements.InterfaceTemplateBase): +class InterfaceTemplate(aria_declarative_base, template_elements.InterfaceTemplateBase): pass -class OperationTemplate(DB, template_elements.OperationTemplateBase): +class OperationTemplate(aria_declarative_base, template_elements.OperationTemplateBase): pass -class ServiceTemplate(DB, template_elements.ServiceTemplateBase): +class ServiceTemplate(aria_declarative_base, template_elements.ServiceTemplateBase): pass -class NodeTemplate(DB, template_elements.NodeTemplateBase): +class NodeTemplate(aria_declarative_base, template_elements.NodeTemplateBase): pass -class GroupTemplate(DB, template_elements.GroupTemplateBase): +class GroupTemplate(aria_declarative_base, template_elements.GroupTemplateBase): pass -class ArtifactTemplate(DB, template_elements.ArtifactTemplateBase): +class ArtifactTemplate(aria_declarative_base, template_elements.ArtifactTemplateBase): pass -class PolicyTemplate(DB, template_elements.PolicyTemplateBase): +class PolicyTemplate(aria_declarative_base, template_elements.PolicyTemplateBase): pass -class GroupPolicyTemplate(DB, template_elements.GroupPolicyTemplateBase): +class GroupPolicyTemplate(aria_declarative_base, template_elements.GroupPolicyTemplateBase): pass -class GroupPolicyTriggerTemplate(DB, template_elements.GroupPolicyTriggerTemplateBase): +class GroupPolicyTriggerTemplate(aria_declarative_base, + template_elements.GroupPolicyTriggerTemplateBase): pass -class RequirementTemplate(DB, template_elements.RequirementTemplateBase): +class RequirementTemplate(aria_declarative_base, template_elements.RequirementTemplateBase): pass -class CapabilityTemplate(DB, template_elements.CapabilityTemplateBase): +class CapabilityTemplate(aria_declarative_base, template_elements.CapabilityTemplateBase): pass @@ -132,55 +135,55 @@ class CapabilityTemplate(DB, template_elements.CapabilityTemplateBase): # region instance models -class Mapping(DB, instance_elements.MappingBase): +class Mapping(aria_declarative_base, instance_elements.MappingBase): pass -class Substitution(DB, instance_elements.SubstitutionBase): +class Substitution(aria_declarative_base, instance_elements.SubstitutionBase): pass -class ServiceInstance(DB, instance_elements.ServiceInstanceBase): +class ServiceInstance(aria_declarative_base, instance_elements.ServiceInstanceBase): pass -class Node(DB, instance_elements.NodeBase): +class Node(aria_declarative_base, instance_elements.NodeBase): pass -class Relationship(DB, instance_elements.RelationshipBase): +class Relationship(aria_declarative_base, instance_elements.RelationshipBase): pass -class Artifact(DB, instance_elements.ArtifactBase): +class Artifact(aria_declarative_base, instance_elements.ArtifactBase): pass -class Group(DB, instance_elements.GroupBase): +class Group(aria_declarative_base, instance_elements.GroupBase): pass -class Interface(DB, instance_elements.InterfaceBase): +class Interface(aria_declarative_base, instance_elements.InterfaceBase): pass -class Operation(DB, instance_elements.OperationBase): +class Operation(aria_declarative_base, instance_elements.OperationBase): pass -class Capability(DB, instance_elements.CapabilityBase): +class Capability(aria_declarative_base, instance_elements.CapabilityBase): pass -class Policy(DB, instance_elements.PolicyBase): +class Policy(aria_declarative_base, instance_elements.PolicyBase): pass -class GroupPolicy(DB, instance_elements.GroupPolicyBase): +class GroupPolicy(aria_declarative_base, instance_elements.GroupPolicyBase): pass -class GroupPolicyTrigger(DB, instance_elements.GroupPolicyTriggerBase): +class GroupPolicyTrigger(aria_declarative_base, instance_elements.GroupPolicyTriggerBase): pass @@ -188,26 +191,29 @@ class GroupPolicyTrigger(DB, instance_elements.GroupPolicyTriggerBase): # region orchestrator models -class Execution(DB, orchestrator_elements.Execution): +class Execution(aria_declarative_base, orchestrator_elements.Execution): pass -class ServiceInstanceUpdate(DB, orchestrator_elements.ServiceInstanceUpdateBase): +class ServiceInstanceUpdate(aria_declarative_base, + orchestrator_elements.ServiceInstanceUpdateBase): pass -class ServiceInstanceUpdateStep(DB, orchestrator_elements.ServiceInstanceUpdateStepBase): +class ServiceInstanceUpdateStep(aria_declarative_base, + orchestrator_elements.ServiceInstanceUpdateStepBase): pass -class ServiceInstanceModification(DB, orchestrator_elements.ServiceInstanceModificationBase): +class ServiceInstanceModification(aria_declarative_base, + orchestrator_elements.ServiceInstanceModificationBase): pass -class Plugin(DB, orchestrator_elements.PluginBase): +class Plugin(aria_declarative_base, orchestrator_elements.PluginBase): pass -class Task(DB, orchestrator_elements.TaskBase): +class Task(aria_declarative_base, orchestrator_elements.TaskBase): pass # endregion http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/aria/storage/modeling/orchestrator_elements.py ---------------------------------------------------------------------- diff --git a/aria/storage/modeling/orchestrator_elements.py b/aria/storage/modeling/orchestrator_elements.py index 5aaf02f..5f7a3f2 100644 --- a/aria/storage/modeling/orchestrator_elements.py +++ b/aria/storage/modeling/orchestrator_elements.py @@ -163,10 +163,10 @@ class ServiceInstanceUpdateBase(ModelMixin): _private_fields = ['execution_fk', 'deployment_fk'] created_at = Column(DateTime, nullable=False, index=True) - deployment_plan = Column(Dict, nullable=False) - deployment_update_node_instances = Column(Dict) - deployment_update_deployment = Column(Dict) - deployment_update_nodes = Column(List) + service_instance_plan = Column(Dict, nullable=False) + service_instance_update_node_instances = Column(Dict) + service_instance_update_service_instance = Column(Dict) + service_instance_update_nodes = Column(List) modified_entity_ids = Column(Dict) state = Column(Text) @@ -238,7 +238,7 @@ class ServiceInstanceUpdateStepBase(ModelMixin): return cls.foreign_key('service_instance_update') @declared_attr - def deployment_update(cls): + def service_instance_update(cls): return cls.many_to_one_relationship('service_instance_update', backreference='steps') @@ -305,7 +305,7 @@ class ServiceInstanceModificationBase(ModelMixin): backreference='modifications') @declared_attr - def deployment_name(cls): + def service_instance_name(cls): return association_proxy('service_instance', cls.name_column_name()) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/aria/storage/modeling/template_elements.py ---------------------------------------------------------------------- diff --git a/aria/storage/modeling/template_elements.py b/aria/storage/modeling/template_elements.py index b4ba031..e9a2d24 100644 --- a/aria/storage/modeling/template_elements.py +++ b/aria/storage/modeling/template_elements.py @@ -54,7 +54,7 @@ class ServiceTemplateBase(structure.ModelMixin): created_at = Column(DateTime, nullable=False, index=True) main_file_name = Column(Text) - plan = Column(aria_type.Dict) + plan = Column(aria_type.Dict, nullable=False) updated_at = Column(DateTime) # endregion http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/aria/storage/sql_mapi.py ---------------------------------------------------------------------- diff --git a/aria/storage/sql_mapi.py b/aria/storage/sql_mapi.py index 9dae08a..b80ac8e 100644 --- a/aria/storage/sql_mapi.py +++ b/aria/storage/sql_mapi.py @@ -142,8 +142,12 @@ class SQLAlchemyModelAPI(api.ModelAPI): def _establish_connection(self): pass - def create(self, checkfirst=True, **kwargs): + def create(self, checkfirst=True, create_all=True, **kwargs): self.model_cls.__table__.create(self._engine, checkfirst=checkfirst) + if create_all: + # In order to create any models created dynamically (e.g. many-to-many helper tables are + # created at runtime). + self.model_cls.metadata.create_all(bind=self._engine, checkfirst=checkfirst) def drop(self): """ http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/aria/storage_initializer.py ---------------------------------------------------------------------- diff --git a/aria/storage_initializer.py b/aria/storage_initializer.py index 0386baa..aea5ec8 100644 --- a/aria/storage_initializer.py +++ b/aria/storage_initializer.py @@ -48,9 +48,9 @@ def initialize_storage(context, model_storage, deployment_id): for relationship_model in node.relationships: if relationship_model.source_requirement_index == index: source_instance = \ - model_storage.node_instance.get_by_name(node.id) + model_storage.node.get_by_name(node.id) target_instance = \ - model_storage.node_instance.get_by_name( + model_storage.node.get_by_name( relationship_model.target_node_id) relationship = \ _create_relationship_instance(source_instance, target_instance) @@ -115,7 +115,7 @@ _TERMINAL_LOCK = RLock() @operation def _dry_node(ctx, _plugin, _implementation, **kwargs): with _TERMINAL_LOCK: - print '> node instance: %s' % Colored.red(ctx.node_instance.name) + print '> node instance: %s' % Colored.red(ctx.node.name) _dump_implementation(_plugin, _implementation) @@ -123,8 +123,8 @@ def _dry_node(ctx, _plugin, _implementation, **kwargs): def _dry_relationship(ctx, _plugin, _implementation, **kwargs): with _TERMINAL_LOCK: puts('> relationship instance: %s -> %s' % ( - Colored.red(ctx.relationship_instance.source_node_instance.name), - Colored.red(ctx.relationship_instance.target_node_instance.name))) + Colored.red(ctx.relationship.source_node_instance.name), + Colored.red(ctx.relationship.target_node_instance.name))) _dump_implementation(_plugin, _implementation) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/aria/utils/application.py ---------------------------------------------------------------------- diff --git a/aria/utils/application.py b/aria/utils/application.py index 161a9cb..2f40825 100644 --- a/aria/utils/application.py +++ b/aria/utils/application.py @@ -207,24 +207,24 @@ class StorageManager(LoggerMixin): relationship_instances = [] for index, relationship_instance in enumerate(node_instance['relationships']): - relationship_instance_model = self.model_storage.relationship_instance.model_cls( + relationship_instance_model = self.model_storage.relationship.model_cls( relationship=node_model.relationships[index], target_name=relationship_instance['target_name'], type=relationship_instance['type'], target_id=relationship_instance['target_id']) relationship_instances.append(relationship_instance_model) - self.model_storage.relationship_instance.put(relationship_instance_model) + self.model_storage.relationship.put(relationship_instance_model) - node_instance_model = self.model_storage.node_instance.model_cls( + node_instance_model = self.model_storage.node.model_cls( node=node_model, id=node_instance['id'], runtime_properties={}, - state=self.model_storage.node_instance.model_cls.UNINITIALIZED, + state=self.model_storage.node.model_cls.UNINITIALIZED, deployment_id=self.deployment_id, version='1.0', relationship_instances=relationship_instances) - self.model_storage.node_instance.put(node_instance_model) + self.model_storage.node.put(node_instance_model) self.logger.debug('created node-instances model storage entries') def create_plugin_storage(self, plugin_id, source): http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/tests/mock/context.py ---------------------------------------------------------------------- diff --git a/tests/mock/context.py b/tests/mock/context.py index 10645a4..cf1a32d 100644 --- a/tests/mock/context.py +++ b/tests/mock/context.py @@ -38,13 +38,13 @@ def simple(tmpdir, inmemory=False, context_kwargs=None): api_kwargs=dict(directory=os.path.join(tmpdir, 'resources')) ) - service_instnce_id = create_simple_topology_two_nodes(model_storage) + service_instance_id = create_simple_topology_two_nodes(model_storage) final_kwargs = dict( name='simple_context', model_storage=model_storage, resource_storage=resource_storage, - service_instance_id=service_instnce_id, + service_instance_id=service_instance_id, workflow_name=models.WORKFLOW_NAME, task_max_attempts=models.TASK_MAX_ATTEMPTS, task_retry_interval=models.TASK_RETRY_INTERVAL http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/tests/orchestrator/context/test_operation.py ---------------------------------------------------------------------- diff --git a/tests/orchestrator/context/test_operation.py b/tests/orchestrator/context/test_operation.py index 12e56fc..3f39979 100644 --- a/tests/orchestrator/context/test_operation.py +++ b/tests/orchestrator/context/test_operation.py @@ -70,7 +70,7 @@ def test_node_operation_task_execution(ctx, executor): @workflow def basic_workflow(graph, **_): graph.add_tasks( - api.task.OperationTask.node_instance( + api.task.OperationTask.node( name=operation_name, instance=node, inputs=inputs @@ -113,7 +113,7 @@ def test_relationship_operation_task_execution(ctx, executor): @workflow def basic_workflow(graph, **_): graph.add_tasks( - api.task.OperationTask.relationship_instance( + api.task.OperationTask.relationship( instance=relationship, name=operation_name, inputs=inputs, @@ -171,7 +171,7 @@ def test_invalid_task_operation_id(ctx, executor): @workflow def basic_workflow(graph, **_): graph.add_tasks( - api.task.OperationTask.node_instance(name=operation_name, instance=node) + api.task.OperationTask.node(name=operation_name, instance=node) ) execute(workflow_func=basic_workflow, workflow_context=ctx, executor=executor) @@ -200,7 +200,7 @@ def test_plugin_workdir(ctx, executor, tmpdir): @workflow def basic_workflow(graph, **_): - graph.add_tasks(api.task.OperationTask.node_instance( + graph.add_tasks(api.task.OperationTask.node( name=op, instance=node, inputs=inputs)) execute(workflow_func=basic_workflow, workflow_context=ctx, executor=executor) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/tests/orchestrator/context/test_serialize.py ---------------------------------------------------------------------- diff --git a/tests/orchestrator/context/test_serialize.py b/tests/orchestrator/context/test_serialize.py index 71683f8..1fdcb1a 100644 --- a/tests/orchestrator/context/test_serialize.py +++ b/tests/orchestrator/context/test_serialize.py @@ -40,7 +40,6 @@ def test_serialize_operation_context(context, executor, tmpdir): eng.execute() - @workflow def _mock_workflow(ctx, graph): node = ctx.model.node.get_by_name(mock.models.DEPENDENCY_NODE_INSTANCE_NAME) @@ -50,7 +49,7 @@ def _mock_workflow(ctx, graph): operation_kwargs=dict(implementation=_operation_mapping(), plugin=plugin_name) )] node.plugins = [{'name': plugin_name}] - task = api.task.OperationTask.node_instance(instance=node, name='test.op') + task = api.task.OperationTask.node(instance=node, name='test.op') graph.add_tasks(task) return graph http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/tests/orchestrator/context/test_toolbelt.py ---------------------------------------------------------------------- diff --git a/tests/orchestrator/context/test_toolbelt.py b/tests/orchestrator/context/test_toolbelt.py index 7093904..28bd3d3 100644 --- a/tests/orchestrator/context/test_toolbelt.py +++ b/tests/orchestrator/context/test_toolbelt.py @@ -86,7 +86,7 @@ def test_host_ip(workflow_context, executor): @workflow def basic_workflow(graph, **_): graph.add_tasks( - api.task.OperationTask.node_instance( + api.task.OperationTask.node( instance=dependency_node, name=operation_name, inputs=inputs @@ -115,7 +115,7 @@ def test_relationship_tool_belt(workflow_context, executor): @workflow def basic_workflow(graph, **_): graph.add_tasks( - api.task.OperationTask.relationship_instance( + api.task.OperationTask.relationship( instance=relationship, name=operation_name, edge='source', http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/tests/orchestrator/execution_plugin/test_local.py ---------------------------------------------------------------------- diff --git a/tests/orchestrator/execution_plugin/test_local.py b/tests/orchestrator/execution_plugin/test_local.py index aa45bc9..9e9540f 100644 --- a/tests/orchestrator/execution_plugin/test_local.py +++ b/tests/orchestrator/execution_plugin/test_local.py @@ -486,7 +486,7 @@ if __name__ == '__main__': # node.operations[op] = { # 'operation': '{0}.{1}'.format(operations.__name__, # operations.run_script_locally.__name__)} - graph.add_tasks(api.task.OperationTask.node_instance( + graph.add_tasks(api.task.OperationTask.node( instance=node, name=op, inputs=inputs)) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/tests/orchestrator/execution_plugin/test_ssh.py ---------------------------------------------------------------------- diff --git a/tests/orchestrator/execution_plugin/test_ssh.py b/tests/orchestrator/execution_plugin/test_ssh.py index 23ae597..2e270bb 100644 --- a/tests/orchestrator/execution_plugin/test_ssh.py +++ b/tests/orchestrator/execution_plugin/test_ssh.py @@ -222,7 +222,7 @@ class TestWithActualSSHServer(object): op, dict(implementation='{0}.{1}'.format(operations.__name__, operation.__name__)) )] - graph.sequence(*[api.task.OperationTask.node_instance( + graph.sequence(*[api.task.OperationTask.node( instance=node, name=op, inputs={ http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/tests/orchestrator/test_runner.py ---------------------------------------------------------------------- diff --git a/tests/orchestrator/test_runner.py b/tests/orchestrator/test_runner.py index 8927fe9..17230df 100644 --- a/tests/orchestrator/test_runner.py +++ b/tests/orchestrator/test_runner.py @@ -49,8 +49,8 @@ def test_runner_tasks(): def workflow_fn(ctx, graph): for node in ctx.model.node: graph.add_tasks( - OperationTask.node_instance(instance=node, - name='tosca.interfaces.node.lifecycle.Standard.create')) + OperationTask.node(instance=node, + name='tosca.interfaces.node.lifecycle.Standard.create')) _test_runner(workflow_fn) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/tests/orchestrator/workflows/api/test_task.py ---------------------------------------------------------------------- diff --git a/tests/orchestrator/workflows/api/test_task.py b/tests/orchestrator/workflows/api/test_task.py index 1762647..79618c1 100644 --- a/tests/orchestrator/workflows/api/test_task.py +++ b/tests/orchestrator/workflows/api/test_task.py @@ -30,7 +30,7 @@ def ctx(tmpdir): :return: """ simple_context = mock.context.simple(str(tmpdir), inmemory=False) - simple_context.model.execution.put(mock.models.get_execution(simple_context.deployment)) + simple_context.model.execution.put(mock.models.get_execution(simple_context.service_instance)) yield simple_context storage.release_sqlite_storage(simple_context.model) @@ -55,7 +55,7 @@ class TestOperationTask(object): ignore_failure = True with context.workflow.current.push(ctx): - api_task = api.task.OperationTask.node_instance( + api_task = api.task.OperationTask.node( name=operation_name, instance=node, inputs=inputs, @@ -94,7 +94,7 @@ class TestOperationTask(object): retry_interval = 10 with context.workflow.current.push(ctx): - api_task = api.task.OperationTask.relationship_instance( + api_task = api.task.OperationTask.relationship( name=operation_name, instance=relationship, edge='source', @@ -131,7 +131,7 @@ class TestOperationTask(object): retry_interval = 10 with context.workflow.current.push(ctx): - api_task = api.task.OperationTask.relationship_instance( + api_task = api.task.OperationTask.relationship( name=operation_name, instance=relationship, edge='target', http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/tests/orchestrator/workflows/builtin/test_execute_operation.py ---------------------------------------------------------------------- diff --git a/tests/orchestrator/workflows/builtin/test_execute_operation.py b/tests/orchestrator/workflows/builtin/test_execute_operation.py index 87e3425..cc9a8a8 100644 --- a/tests/orchestrator/workflows/builtin/test_execute_operation.py +++ b/tests/orchestrator/workflows/builtin/test_execute_operation.py @@ -30,8 +30,9 @@ def ctx(tmpdir): def test_execute_operation(ctx): - node_instance = ctx.model.node_instance.get_by_name(mock.models.DEPENDENCY_NODE_INSTANCE_NAME) - + node = ctx.model.node.get_by_name(mock.models.DEPENDENCY_NODE_INSTANCE_NAME) + node.interfaces = [mock.models.get_interface(mock.operations.NODE_OPERATIONS_INSTALL[0])] + ctx.model.node.update(node) operation_name = mock.operations.NODE_OPERATIONS_INSTALL[0] execute_tasks = list( @@ -43,13 +44,13 @@ def test_execute_operation(ctx): allow_kwargs_override=False, run_by_dependency_order=False, type_names=[], - node_ids=[], - node_instance_ids=[node_instance.id] + node_template_ids=[], + node_ids=[node.id] ).topological_order() ) assert len(execute_tasks) == 1 - assert execute_tasks[0].name == '{0}.{1}'.format(operation_name, node_instance.id) + assert execute_tasks[0].name == '{0}.{1}'.format(operation_name, node.id) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/tests/orchestrator/workflows/builtin/test_heal.py ---------------------------------------------------------------------- diff --git a/tests/orchestrator/workflows/builtin/test_heal.py b/tests/orchestrator/workflows/builtin/test_heal.py index 3e4498f..b553049 100644 --- a/tests/orchestrator/workflows/builtin/test_heal.py +++ b/tests/orchestrator/workflows/builtin/test_heal.py @@ -34,9 +34,9 @@ def ctx(tmpdir): @pytest.mark.skip(reason='heal is not implemented for now') def test_heal_dependent_node(ctx): dependent_node_instance = \ - ctx.model.node_instance.get_by_name(mock.models.DEPENDENT_NODE_INSTANCE_NAME) + ctx.model.node.get_by_name(mock.models.DEPENDENT_NODE_INSTANCE_NAME) dependent_node_instance.host_fk = dependent_node_instance.id - ctx.model.node_instance.update(dependent_node_instance) + ctx.model.node.update(dependent_node_instance) heal_graph = task.WorkflowTask(heal, ctx=ctx, node_instance_id=dependent_node_instance.id) assert len(list(heal_graph.tasks)) == 2 @@ -64,9 +64,9 @@ def test_heal_dependent_node(ctx): @pytest.mark.skip(reason='heal is not implemented for now') def test_heal_dependency_node(ctx): dependency_node_instance = \ - ctx.model.node_instance.get_by_name(mock.models.DEPENDENCY_NODE_INSTANCE_NAME) + ctx.model.node.get_by_name(mock.models.DEPENDENCY_NODE_INSTANCE_NAME) dependency_node_instance.host_fk = dependency_node_instance.id - ctx.model.node_instance.update(dependency_node_instance) + ctx.model.node.update(dependency_node_instance) heal_graph = task.WorkflowTask(heal, ctx=ctx, node_instance_id=dependency_node_instance.id) # both subgraphs should contain un\install for both the dependent and the dependency assert len(list(heal_graph.tasks)) == 2 http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/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 7e1be66..b2b67fc 100644 --- a/tests/orchestrator/workflows/core/test_engine.py +++ b/tests/orchestrator/workflows/core/test_engine.py @@ -66,7 +66,7 @@ class BaseTest(object): operation_kwargs=dict(implementation='{name}.{func.__name__}'.format(name=__name__, func=func)) )] - return api.task.OperationTask.node_instance( + return api.task.OperationTask.node( instance=node, name='aria.interfaces.lifecycle.create', inputs=inputs, http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/tests/orchestrator/workflows/core/test_task.py ---------------------------------------------------------------------- diff --git a/tests/orchestrator/workflows/core/test_task.py b/tests/orchestrator/workflows/core/test_task.py index d50c914..26564c5 100644 --- a/tests/orchestrator/workflows/core/test_task.py +++ b/tests/orchestrator/workflows/core/test_task.py @@ -55,7 +55,7 @@ class TestOperationTask(object): def _create_node_operation_task(self, ctx, node): with workflow_context.current.push(ctx): - api_task = api.task.OperationTask.node_instance( + api_task = api.task.OperationTask.node( instance=node, name='tosca.interfaces.node.lifecycle.Standard.create') core_task = core.task.OperationTask(api_task=api_task) @@ -63,7 +63,7 @@ class TestOperationTask(object): def _create_relationship_operation_task(self, ctx, relationship, operation_name, edge): with workflow_context.current.push(ctx): - api_task = api.task.OperationTask.relationship_instance( + api_task = api.task.OperationTask.relationship( instance=relationship, name=operation_name, edge=edge) core_task = core.task.OperationTask(api_task=api_task) return api_task, core_task http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/tests/orchestrator/workflows/core/test_task_graph_into_exececution_graph.py ---------------------------------------------------------------------- diff --git a/tests/orchestrator/workflows/core/test_task_graph_into_exececution_graph.py b/tests/orchestrator/workflows/core/test_task_graph_into_exececution_graph.py index ab3dfe3..167004e 100644 --- a/tests/orchestrator/workflows/core/test_task_graph_into_exececution_graph.py +++ b/tests/orchestrator/workflows/core/test_task_graph_into_exececution_graph.py @@ -34,14 +34,14 @@ def test_task_graph_into_execution_graph(tmpdir): 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.node_instance(instance=node, - name=operation_name) - simple_after_task = api.task.OperationTask.node_instance(instance=node, - name=operation_name) + simple_before_task = api.task.OperationTask.node(instance=node, + name=operation_name) + simple_after_task = api.task.OperationTask.node(instance=node, + name=operation_name) inner_task_graph = api.task.WorkflowTask(sub_workflow, name='test_inner_task_graph') - inner_task = api.task.OperationTask.node_instance(instance=node, - name=operation_name) + inner_task = api.task.OperationTask.node(instance=node, + name=operation_name) inner_task_graph.add_tasks(inner_task) test_task_graph.add_tasks(simple_before_task) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/tests/orchestrator/workflows/executor/test_process_executor_extension.py ---------------------------------------------------------------------- diff --git a/tests/orchestrator/workflows/executor/test_process_executor_extension.py b/tests/orchestrator/workflows/executor/test_process_executor_extension.py index cf9c071..ac95554 100644 --- a/tests/orchestrator/workflows/executor/test_process_executor_extension.py +++ b/tests/orchestrator/workflows/executor/test_process_executor_extension.py @@ -41,7 +41,7 @@ def test_decorate_extension(context, executor): operation_kwargs=dict(implementation='{0}.{1}'.format(__name__, _mock_operation.__name__)) )] - task = api.task.OperationTask.node_instance(instance=node_instance, name=op, inputs=inputs) + task = api.task.OperationTask.node(instance=node_instance, name=op, inputs=inputs) graph.add_tasks(task) return graph graph = mock_workflow(ctx=context) # pylint: disable=no-value-for-parameter http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/tests/orchestrator/workflows/executor/test_process_executor_tracked_changes.py ---------------------------------------------------------------------- diff --git a/tests/orchestrator/workflows/executor/test_process_executor_tracked_changes.py b/tests/orchestrator/workflows/executor/test_process_executor_tracked_changes.py index 4198e3b..d3b3300 100644 --- a/tests/orchestrator/workflows/executor/test_process_executor_tracked_changes.py +++ b/tests/orchestrator/workflows/executor/test_process_executor_tracked_changes.py @@ -90,9 +90,9 @@ def _run_workflow(context, executor, op_func, inputs=None): node = ctx.model.node.get_by_name(mock.models.DEPENDENCY_NODE_INSTANCE_NAME) node.interfaces = [mock.models.get_interface( 'test.op', operation_kwargs=dict(implementation=_operation_mapping(op_func)))] - task = api.task.OperationTask.node_instance(instance=node, - name='test.op', - inputs=inputs or {}) + task = api.task.OperationTask.node(instance=node, + name='test.op', + inputs=inputs or {}) graph.add_tasks(task) return graph graph = mock_workflow(ctx=context) # pylint: disable=no-value-for-parameter http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/tests/resources/service_templates/node-cellar/workflows.py ---------------------------------------------------------------------- diff --git a/tests/resources/service_templates/node-cellar/workflows.py b/tests/resources/service_templates/node-cellar/workflows.py index b3546bb..fce7eaf 100644 --- a/tests/resources/service_templates/node-cellar/workflows.py +++ b/tests/resources/service_templates/node-cellar/workflows.py @@ -11,9 +11,9 @@ def maintenance(ctx, graph, enabled): operation = 'Maintenance.enable' if enabled else 'Maintenance.disable' - for node_instance in ctx.model.node_instance.iter(): + for node_instance in ctx.model.node.iter(): if operation in node_instance.node.operations: - task = OperationTask.node_instance( + task = OperationTask.node( instance=node_instance, name=operation) graph.add_tasks(task) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/tests/storage/__init__.py ---------------------------------------------------------------------- diff --git a/tests/storage/__init__.py b/tests/storage/__init__.py index 0000387..4278831 100644 --- a/tests/storage/__init__.py +++ b/tests/storage/__init__.py @@ -35,7 +35,7 @@ from aria.storage import ( ) -class MockModel(model.DB, structure.ModelMixin): #pylint: disable=abstract-method +class MockModel(model.aria_declarative_base, structure.ModelMixin): #pylint: disable=abstract-method __tablename__ = 'mock_model' model_dict = Column(aria_type.Dict) model_list = Column(aria_type.List) @@ -52,35 +52,6 @@ class TestFileSystem(object): rmtree(self.path, ignore_errors=True) -def get_sqlite_api_kwargs(base_dir=None, filename='db.sqlite'): - """ - Create sql params. works in in-memory and in filesystem mode. - If base_dir is passed, the mode will be filesystem mode. while the default mode is in-memory. - :param str base_dir: The base dir for the filesystem memory file. - :param str filename: the file name - defaults to 'db.sqlite'. - :return: - """ - if base_dir is not None: - uri = 'sqlite:///{platform_char}{path}'.format( - # Handles the windows behavior where there is not root, but drivers. - # Thus behaving as relative path. - platform_char='' if 'Windows' in platform.system() else '/', - - path=os.path.join(base_dir, filename)) - engine_kwargs = {} - else: - uri = 'sqlite:///:memory:' - engine_kwargs = dict(connect_args={'check_same_thread': False}, - poolclass=pool.StaticPool) - - engine = create_engine(uri, **engine_kwargs) - session_factory = orm.sessionmaker(bind=engine) - session = orm.scoped_session(session_factory=session_factory) if base_dir else session_factory() - - modeling.declarative_base.metadata.create_all(bind=engine) - return dict(engine=engine, session=session) - - def release_sqlite_storage(storage): """ Drops the tables and clears the session @@ -94,7 +65,7 @@ def release_sqlite_storage(storage): session.rollback() session.close() for engine in set(mapi._engine for mapi in mapis): - modeling.declarative_base.metadata.drop_all(engine) + model.aria_declarative_base.metadata.drop_all(engine) def init_inmemory_model_storage(): http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/tests/storage/test_instrumentation.py ---------------------------------------------------------------------- diff --git a/tests/storage/test_instrumentation.py b/tests/storage/test_instrumentation.py index 1420785..08d5ae0 100644 --- a/tests/storage/test_instrumentation.py +++ b/tests/storage/test_instrumentation.py @@ -345,15 +345,15 @@ class _MockModel(structure.ModelMixin): string2 = Column(Text) -class MockModel1(_MockModel, model.DB): +class MockModel1(_MockModel, model.aria_declarative_base): __tablename__ = 'mock_model_1' -class MockModel2(_MockModel, model.DB): +class MockModel2(_MockModel, model.aria_declarative_base): __tablename__ = 'mock_model_2' -class StrictMockModel(structure.ModelMixin, model.DB): +class StrictMockModel(structure.ModelMixin, model.aria_declarative_base): __tablename__ = 'strict_mock_model' strict_dict = Column(aria_type.StrictDict(basestring, basestring)) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/efc4dae7/tests/storage/test_model_storage.py ---------------------------------------------------------------------- diff --git a/tests/storage/test_model_storage.py b/tests/storage/test_model_storage.py index 7019da7..f88080a 100644 --- a/tests/storage/test_model_storage.py +++ b/tests/storage/test_model_storage.py @@ -38,7 +38,7 @@ def storage(): @pytest.fixture(scope='module', autouse=True) def module_cleanup(): - modeling.model.DB.metadata.remove(MockModel.__table__) #pylint: disable=no-member + modeling.model.aria_declarative_base.metadata.remove(MockModel.__table__) #pylint: disable=no-member def test_storage_base(storage):
