You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ariatosca.apache.org by mx...@apache.org on 2016/12/22 12:42:22 UTC
incubator-ariatosca git commit: review 1 [Forced Update!]
Repository: incubator-ariatosca
Updated Branches:
refs/heads/ARIA-39-Genericize-storage-models 9fe443f12 -> 602760e5f (forced update)
review 1
Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/602760e5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/602760e5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/602760e5
Branch: refs/heads/ARIA-39-Genericize-storage-models
Commit: 602760e5f42473fc61bb60c5e4d8c1f52f9bc41d
Parents: 8614c9a
Author: mxmrlv <mx...@gmail.com>
Authored: Thu Dec 22 14:35:21 2016 +0200
Committer: mxmrlv <mx...@gmail.com>
Committed: Thu Dec 22 14:41:43 2016 +0200
----------------------------------------------------------------------
aria/orchestrator/context/workflow.py | 2 +-
aria/orchestrator/workflows/builtin/heal.py | 9 ++++-----
aria/orchestrator/workflows/core/task.py | 5 ++---
aria/storage/base_model.py | 2 +-
aria/storage/structure.py | 10 ++++++----
tests/storage/test_model_storage.py | 6 ++++++
6 files changed, 20 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/602760e5/aria/orchestrator/context/workflow.py
----------------------------------------------------------------------
diff --git a/aria/orchestrator/context/workflow.py b/aria/orchestrator/context/workflow.py
index 387ca02..a15790e 100644
--- a/aria/orchestrator/context/workflow.py
+++ b/aria/orchestrator/context/workflow.py
@@ -85,7 +85,7 @@ class WorkflowContext(BaseContext):
"""
Iterator over nodes
"""
- key = 'deployment_{0}'.format(self.model.node_instance.model_cls.name_column_name())
+ key = 'deployment_{0}'.format(self.model.node.model_cls.name_column_name())
return self.model.node.iter(
filters={
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/602760e5/aria/orchestrator/workflows/builtin/heal.py
----------------------------------------------------------------------
diff --git a/aria/orchestrator/workflows/builtin/heal.py b/aria/orchestrator/workflows/builtin/heal.py
index 406a42a..21da2ed 100644
--- a/aria/orchestrator/workflows/builtin/heal.py
+++ b/aria/orchestrator/workflows/builtin/heal.py
@@ -163,11 +163,10 @@ def heal_install(ctx, graph, failing_node_instances, targeted_node_instances):
def _get_contained_subgraph(context, host_node_instance):
- contained_instances = [
- node_instance
- for node_instance in context.node_instances
- if node_instance == host_node_instance and node_instance != node_instance
- ]
+ contained_instances = [node_instance
+ for node_instance in context.node_instances
+ if node_instance.host_fk == host_node_instance.id and
+ node_instance.host_fk != node_instance.id]
result = [host_node_instance]
if not contained_instances:
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/602760e5/aria/orchestrator/workflows/core/task.py
----------------------------------------------------------------------
diff --git a/aria/orchestrator/workflows/core/task.py b/aria/orchestrator/workflows/core/task.py
index 6e23895..67be2ea 100644
--- a/aria/orchestrator/workflows/core/task.py
+++ b/aria/orchestrator/workflows/core/task.py
@@ -122,10 +122,9 @@ class OperationTask(BaseTask):
plugins = model_storage.plugin.list(filters={
'package_name': plugin.get('package_name', ''),
'package_version': plugin.get('package_version', '')
- }, include=['id'])
+ })
# Validation during installation ensures that at most one plugin can exists with provided
# package_name and package_version
- plugin_id = plugins[0].id if plugins else None
operation_task = task_model_cls(
name=api_task.name,
operation_mapping=api_task.operation_mapping,
@@ -135,7 +134,7 @@ class OperationTask(BaseTask):
max_attempts=api_task.max_attempts,
retry_interval=api_task.retry_interval,
ignore_failure=api_task.ignore_failure,
- plugin_fk=plugin_id,
+ plugin=plugins[0] if plugins else None,
execution=self._workflow_context.execution
)
self._workflow_context.model.task.put(operation_task)
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/602760e5/aria/storage/base_model.py
----------------------------------------------------------------------
diff --git a/aria/storage/base_model.py b/aria/storage/base_model.py
index 701bc83..9162c56 100644
--- a/aria/storage/base_model.py
+++ b/aria/storage/base_model.py
@@ -665,7 +665,7 @@ class TaskBase(ModelMixin):
"""
Return the actor of the task
:return:
- ` """
+ """
return self.node_instance or self.relationship_instance
@classmethod
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/602760e5/aria/storage/structure.py
----------------------------------------------------------------------
diff --git a/aria/storage/structure.py b/aria/storage/structure.py
index 3f09560..c307041 100644
--- a/aria/storage/structure.py
+++ b/aria/storage/structure.py
@@ -39,6 +39,8 @@ from sqlalchemy import (
class ModelMixin(object):
+ # _private_fields = []
+
@classmethod
def id_column_name(cls):
raise NotImplementedError
@@ -69,12 +71,12 @@ class ModelMixin(object):
:param table: Unique id column in the parent table
:param nullable: Should the column be allowed to remain empty
"""
- table = cls._get_cls_by_tablename(table.__tablename__)
- foreign_key_str = '{tablename}.{unique_id}'.format(tablename=table.__tablename__,
- unique_id=table.id_column_name())
+ table_cls = cls._get_cls_by_tablename(table.__tablename__)
+ foreign_key_str = '{tablename}.{unique_id}'.format(tablename=table_cls.__tablename__,
+ unique_id=table_cls.id_column_name())
column = Column(ForeignKey(foreign_key_str, ondelete='CASCADE'),
nullable=nullable)
- column.__remote_table_name = table.__name__
+ column.__remote_table_name = table_cls.__name__
return column
@classmethod
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/602760e5/tests/storage/test_model_storage.py
----------------------------------------------------------------------
diff --git a/tests/storage/test_model_storage.py b/tests/storage/test_model_storage.py
index 6f9527e..4991d19 100644
--- a/tests/storage/test_model_storage.py
+++ b/tests/storage/test_model_storage.py
@@ -130,6 +130,12 @@ def test_model_to_dict():
assert 'blueprint_fk' not in deployment_dict
+def test_missing_private_fields():
+ mock_model = MockModel()
+ with pytest.raises(AttributeError):
+ mock_model.to_dict()
+
+
def test_application_storage_factory():
storage = application_model_storage(sql_mapi.SQLAlchemyModelAPI,
api_kwargs=get_sqlite_api_kwargs())