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 2017/02/07 14:52:39 UTC

incubator-ariatosca git commit: new design

Repository: incubator-ariatosca
Updated Branches:
  refs/heads/ARIA-42-Generic-ctx-serialization-mechanism 01f963699 -> e2d2cc1db


new design


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

Branch: refs/heads/ARIA-42-Generic-ctx-serialization-mechanism
Commit: e2d2cc1db5b86942c55d1b288949556272fa254e
Parents: 01f9636
Author: mxmrlv <mx...@gmail.com>
Authored: Tue Feb 7 16:52:23 2017 +0200
Committer: mxmrlv <mx...@gmail.com>
Committed: Tue Feb 7 16:52:23 2017 +0200

----------------------------------------------------------------------
 aria/__init__.py                                | 19 +++++---
 aria/orchestrator/context/serialization.py      | 21 ++++----
 aria/storage/api.py                             | 33 -------------
 aria/storage/core.py                            | 25 ++++++++--
 aria/storage/sql_mapi.py                        | 50 ++++++++------------
 tests/__init__.py                               |  4 --
 tests/mock/context.py                           | 19 +++++---
 tests/orchestrator/context/test_operation.py    |  2 +-
 tests/orchestrator/context/test_serialize.py    |  2 +-
 tests/orchestrator/context/test_toolbelt.py     |  2 +-
 tests/orchestrator/context/test_workflow.py     |  2 +-
 .../orchestrator/execution_plugin/test_local.py |  2 +-
 tests/orchestrator/execution_plugin/test_ssh.py |  2 +-
 .../workflows/builtin/test_execute_operation.py |  2 +-
 .../orchestrator/workflows/builtin/test_heal.py |  2 +-
 .../workflows/builtin/test_install.py           |  2 +-
 .../workflows/builtin/test_uninstall.py         |  2 +-
 .../orchestrator/workflows/core/test_engine.py  |  2 +-
 tests/orchestrator/workflows/core/test_task.py  |  2 +-
 .../workflows/executor/test_process_executor.py |  4 +-
 .../executor/test_process_executor_extension.py |  2 +-
 .../test_process_executor_tracked_changes.py    |  2 +-
 tests/storage/__init__.py                       |  3 --
 tests/storage/test_instrumentation.py           |  1 -
 tests/storage/test_model_storage.py             |  3 +-
 tests/storage/test_models.py                    |  2 +-
 tests/storage/test_structures.py                |  1 -
 tests/utils/test_plugin.py                      |  2 +-
 28 files changed, 95 insertions(+), 120 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/aria/__init__.py
----------------------------------------------------------------------
diff --git a/aria/__init__.py b/aria/__init__.py
index da77f03..f3858c0 100644
--- a/aria/__init__.py
+++ b/aria/__init__.py
@@ -57,7 +57,7 @@ def install_aria_extensions():
     extension.init()
 
 
-def application_model_storage(api, api_kwargs=None, storage_initiator_func=None):
+def application_model_storage(api, api_kwargs=None, initiator=None, initiator_kwargs=None):
     """
     Initiate model storage
     """
@@ -78,15 +78,20 @@ def application_model_storage(api, api_kwargs=None, storage_initiator_func=None)
         storage.model.Execution,
         storage.model.Task,
     ]
-    api.storage_initiator(storage_initiator_func)
-    return storage.ModelStorage(api, items=models, api_kwargs=api_kwargs or {})
+    return storage.ModelStorage(api,
+                                api_kwargs=api_kwargs or {},
+                                items=models,
+                                initiator=initiator,
+                                initiator_kwargs=initiator_kwargs or {})
 
 
-def application_resource_storage(api, api_kwargs=None, storage_initiator_func=None):
+def application_resource_storage(api, api_kwargs=None, initiator=None, initiator_kwargs=None):
     """
     Initiate resource storage
     """
 
-    api.storage_initiator(storage_initiator_func)
-    return storage.ResourceStorage(
-        api, api_kwargs=api_kwargs or {}, items=['blueprint', 'deployment', 'plugin', ])
+    return storage.ResourceStorage(api,
+                                   api_kwargs=api_kwargs or {},
+                                   items=['blueprint', 'deployment', 'plugin'],
+                                   initiator=initiator,
+                                   initiator_kwargs=initiator_kwargs)

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/aria/orchestrator/context/serialization.py
----------------------------------------------------------------------
diff --git a/aria/orchestrator/context/serialization.py b/aria/orchestrator/context/serialization.py
index 0810541..705a63b 100644
--- a/aria/orchestrator/context/serialization.py
+++ b/aria/orchestrator/context/serialization.py
@@ -29,8 +29,8 @@ def operation_context_to_dict(context):
         model = context.model
         context_dict['model_storage'] = {
             'api_cls': model.api,
-            'api_kwargs': model._api_kwargs,
-            'init_func': model.api._init_func.__func__ if hasattr(model.api, '_init_func') else None
+            'initiator': model._initiator,
+            'initiator_kwargs': model._initiator_kwargs,
         }
 
     else:
@@ -39,9 +39,8 @@ def operation_context_to_dict(context):
         resource = context.resource
         context_dict['resource_storage'] = {
             'api_cls': resource.api,
-            'api_kwargs': resource._api_kwargs,
-            'init_func': resource.api._init_func.__func__
-                         if hasattr(resource.api, '_init_func') else None
+            'initiator': resource._initiator,
+            'initiator_kwargs': resource._initiator_kwargs,
         }
     else:
         context_dict['resource_storage'] = None
@@ -58,17 +57,17 @@ def operation_context_from_dict(context_dict):
     model_storage = context['model_storage']
     if model_storage:
         api_cls = model_storage['api_cls']
-        api_kwargs = model_storage['api_kwargs']
-        init_func = model_storage['init_func']
+        initiator_kwargs = model_storage['initiator_kwargs']
+        init_func = model_storage['initiator']
         context['model_storage'] = aria.application_model_storage(
-            api_cls, api_kwargs=api_kwargs, storage_initiator_func=init_func)
+            api_cls, initiator_kwargs=initiator_kwargs, initiator=init_func)
 
     resource_storage = context['resource_storage']
     if resource_storage:
         api_cls = resource_storage['api_cls']
-        api_kwargs = resource_storage['api_kwargs']
-        init_func = resource_storage['init_func']
+        initiator_kwargs = resource_storage['initiator_kwargs']
+        init_func = resource_storage['initiator']
         context['resource_storage'] = aria.application_resource_storage(
-            api=api_cls, api_kwargs=api_kwargs, storage_initiator_func=init_func)
+            api=api_cls, initiator_kwargs=initiator_kwargs, initiator=init_func)
 
     return context_cls(**context)

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/aria/storage/api.py
----------------------------------------------------------------------
diff --git a/aria/storage/api.py b/aria/storage/api.py
index 5f6b862..f6da6de 100644
--- a/aria/storage/api.py
+++ b/aria/storage/api.py
@@ -15,12 +15,9 @@
 """
 General storage API
 """
-from functools import partial
 
 
 class StorageAPI(object):
-    NO_INITIATOR = 'no_initiator_func'
-
     """
     General storage Base API
     """
@@ -32,36 +29,6 @@ class StorageAPI(object):
         """
         raise NotImplementedError('Subclass must implement abstract create method')
 
-    @classmethod
-    def storage_initiator(cls, func=NO_INITIATOR):
-        if func is cls.NO_INITIATOR:
-            # Support for decoration syntax
-            return partial(cls.storage_initiator, cls=cls)
-
-        if func is None:
-            # If func is None, no storage initiator was set, and nothing should happen.
-            return
-
-        if hasattr(cls, '_original_init') and cls._init_func.__func__ == func:                      # pylint: disable=no-member
-            # setting the same function twice could cause a loop. we need to avoid that.
-            return
-
-        cls._original_init = cls.__init__
-        cls._init_func = func
-        cls.__init__ = \
-            lambda self, *args, **kwargs: cls._original_init(self, **func(cls=cls, *args, **kwargs))
-
-    @classmethod
-    def free_storage_initiator(cls):
-        if hasattr(cls, '_original_init') and cls.__init__ != cls._original_init:
-            cls.__init__ = cls._original_init
-            delattr(cls, '_original_init')
-
-        if hasattr(cls, '_engine'):
-            delattr(cls, '_engine')
-        if hasattr(cls, '_session'):
-            delattr(cls, '_session')
-
 
 class ModelAPI(StorageAPI):
     """

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/aria/storage/core.py
----------------------------------------------------------------------
diff --git a/aria/storage/core.py b/aria/storage/core.py
index 94b4fe0..b945d5f 100644
--- a/aria/storage/core.py
+++ b/aria/storage/core.py
@@ -39,7 +39,10 @@ API:
 """
 
 from aria.logger import LoggerMixin
-from . import api as storage_api
+from . import (
+    api as storage_api,
+    sql_mapi
+)
 
 __all__ = (
     'Storage',
@@ -52,11 +55,23 @@ class Storage(LoggerMixin):
     """
     Represents the storage
     """
-    def __init__(self, api_cls, api_kwargs=None, items=(), **kwargs):
+    def __init__(self,
+                 api_cls,
+                 api_kwargs=None,
+                 items=(),
+                 initiator=None,
+                 initiator_kwargs=None,
+                 **kwargs):
         super(Storage, self).__init__(**kwargs)
         self.api = api_cls
-        self._api_kwargs = api_kwargs or {}
         self.registered = {}
+        self._initiator = initiator
+        self._api_kwargs = api_kwargs or {}
+        self._initiator_kwargs = initiator_kwargs or {}
+        if self._initiator:
+            self._api_kwargs.update(self._initiator(**self._initiator_kwargs))
+        else:
+            self._api_kwargs.update(**self._initiator_kwargs)
         for item in items:
             self.register(item)
         self.logger.debug('{name} object is ready: {0!r}'.format(
@@ -99,6 +114,10 @@ class ModelStorage(Storage):
     """
     Represents model storage.
     """
+    def __init__(self, *args, **kwargs):
+        kwargs.setdefault('initiator', sql_mapi.init_storage)
+        super(ModelStorage, self).__init__(*args, **kwargs)
+
     def register(self, model_cls):
         """
         Register the model into the model storage.

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/aria/storage/sql_mapi.py
----------------------------------------------------------------------
diff --git a/aria/storage/sql_mapi.py b/aria/storage/sql_mapi.py
index 2ce8998..6a2ca5b 100644
--- a/aria/storage/sql_mapi.py
+++ b/aria/storage/sql_mapi.py
@@ -369,36 +369,26 @@ class SQLAlchemyModelAPI(api.ModelAPI):
             getattr(instance, rel.key)
 
 
-def init_storage(cls, base_dir=None, filename='db.sqlite', **kwargs):
-
-    _storage_kwargs = {
-        'base_dir': base_dir,
-        'filename': filename
-    }
-    _storage_kwargs.update(**kwargs)
-
-    if not hasattr(cls, '_engine') or getattr(cls, '_storage_kwargs', {}) == _storage_kwargs:
-        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)
-
-        cls._engine = create_engine(uri, **engine_kwargs)
-        session_factory = orm.sessionmaker(bind=cls._engine)
-        cls._session = orm.scoped_session(session_factory=session_factory) if base_dir else \
-            session_factory()
-
-    return_dict = dict(engine=cls._engine, session=cls._session)
-    return_dict.update(kwargs)
-    return return_dict
+def init_storage(base_dir=None, filename='db.sqlite'):
+    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()
+
+    return dict(engine=engine, session=session)
 
 
 class ListResult(object):

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/tests/__init__.py
----------------------------------------------------------------------
diff --git a/tests/__init__.py b/tests/__init__.py
index e51dd69..d2858d2 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -15,8 +15,4 @@
 
 import os
 
-from aria.storage import sql_mapi
-
-sql_mapi.SQLAlchemyModelAPI.storage_initiator(sql_mapi.init_storage)
-
 ROOT_DIR = os.path.dirname(os.path.dirname(__file__))

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/tests/mock/context.py
----------------------------------------------------------------------
diff --git a/tests/mock/context.py b/tests/mock/context.py
index d1fa5ed..e485761 100644
--- a/tests/mock/context.py
+++ b/tests/mock/context.py
@@ -15,23 +15,28 @@
 
 import aria
 from aria.orchestrator import context
-from aria.storage.filesystem_rapi import FileSystemResourceAPI
-from aria.storage import sql_mapi
+from aria.storage import (
+    sql_mapi,
+    filesystem_rapi,
+)
 
 from . import models
 from .topology import create_simple_topology_two_nodes
 
 
-def simple(tmpdir, model_driver_kwargs=None, resources_driver_kwargs=None, context_kwargs=None):
+def simple(tmpdir,
+           model_initiator_kwargs=None,
+           resources_initiator_kwargs=None,
+           context_kwargs=None):
 
     model_storage = aria.application_model_storage(
         sql_mapi.SQLAlchemyModelAPI,
-        api_kwargs=model_driver_kwargs or {},
-        storage_initiator_func=sql_mapi.init_storage
+        initiator=sql_mapi.init_storage,
+        initiator_kwargs=model_initiator_kwargs or {},
     )
-
     resource_storage = aria.application_resource_storage(
-        FileSystemResourceAPI, api_kwargs=resources_driver_kwargs or dict(directory=str(tmpdir)))
+        filesystem_rapi.FileSystemResourceAPI,
+        initiator_kwargs=resources_initiator_kwargs or dict(directory=str(tmpdir)))
 
     deployment_id = create_simple_topology_two_nodes(model_storage)
 

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/tests/orchestrator/context/test_operation.py
----------------------------------------------------------------------
diff --git a/tests/orchestrator/context/test_operation.py b/tests/orchestrator/context/test_operation.py
index 1b84390..38d3682 100644
--- a/tests/orchestrator/context/test_operation.py
+++ b/tests/orchestrator/context/test_operation.py
@@ -39,7 +39,7 @@ global_test_holder = {}
 def ctx(tmpdir):
     context = mock.context.simple(
         str(tmpdir.join('workdir')),
-        model_driver_kwargs=dict(base_dir=str(tmpdir)),
+        model_initiator_kwargs=dict(base_dir=str(tmpdir)),
         context_kwargs=dict(workdir=str(tmpdir.join('workdir')))
     )
     yield context

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/tests/orchestrator/context/test_serialize.py
----------------------------------------------------------------------
diff --git a/tests/orchestrator/context/test_serialize.py b/tests/orchestrator/context/test_serialize.py
index ef553d2..899a963 100644
--- a/tests/orchestrator/context/test_serialize.py
+++ b/tests/orchestrator/context/test_serialize.py
@@ -89,7 +89,7 @@ def executor():
 def context(tmpdir):
     result = mock.context.simple(
         str(tmpdir.join('resources')),
-        model_driver_kwargs=dict(base_dir=str(tmpdir)),
+        model_initiator_kwargs=dict(base_dir=str(tmpdir)),
         context_kwargs=dict(workdir=str(tmpdir.join('workdir')))
     )
 

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/tests/orchestrator/context/test_toolbelt.py
----------------------------------------------------------------------
diff --git a/tests/orchestrator/context/test_toolbelt.py b/tests/orchestrator/context/test_toolbelt.py
index 6f83d1e..4e42972 100644
--- a/tests/orchestrator/context/test_toolbelt.py
+++ b/tests/orchestrator/context/test_toolbelt.py
@@ -35,7 +35,7 @@ global_test_holder = {}
 def workflow_context(tmpdir):
     context = mock.context.simple(
         str(tmpdir),
-        model_driver_kwargs=dict(base_dir=str(tmpdir)))
+        model_initiator_kwargs=dict(base_dir=str(tmpdir)))
     yield context
     storage.release_sqlite_storage(context.model)
 

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/tests/orchestrator/context/test_workflow.py
----------------------------------------------------------------------
diff --git a/tests/orchestrator/context/test_workflow.py b/tests/orchestrator/context/test_workflow.py
index 6d9ed39..b1d1875 100644
--- a/tests/orchestrator/context/test_workflow.py
+++ b/tests/orchestrator/context/test_workflow.py
@@ -61,7 +61,7 @@ class TestWorkflowContext(object):
 @pytest.fixture(scope='function')
 def storage():
     workflow_storage = application_model_storage(sql_mapi.SQLAlchemyModelAPI,
-                                                 storage_initiator_func=sql_mapi.init_storage)
+                                                 initiator=sql_mapi.init_storage)
     workflow_storage.blueprint.put(models.get_blueprint())
     blueprint = workflow_storage.blueprint.get_by_name(models.BLUEPRINT_NAME)
     workflow_storage.deployment.put(models.get_deployment(blueprint))

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/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 dd41224..29de453 100644
--- a/tests/orchestrator/execution_plugin/test_local.py
+++ b/tests/orchestrator/execution_plugin/test_local.py
@@ -504,7 +504,7 @@ if __name__ == '__main__':
     @pytest.fixture
     def workflow_context(self, tmpdir):
         workflow_context = mock.context.simple(
-            str(tmpdir.join('resources')), model_driver_kwargs=dict(base_dir=str(tmpdir)))
+            str(tmpdir.join('resources')), model_initiator_kwargs=dict(base_dir=str(tmpdir)))
         workflow_context.states = []
         workflow_context.exception = None
         yield workflow_context

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/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 b023284..631b29b 100644
--- a/tests/orchestrator/execution_plugin/test_ssh.py
+++ b/tests/orchestrator/execution_plugin/test_ssh.py
@@ -266,7 +266,7 @@ class TestWithActualSSHServer(object):
     @pytest.fixture
     def workflow_context(self, tmpdir):
         workflow_context = mock.context.simple(str(tmpdir.join('resources')),
-                                               model_driver_kwargs=dict(base_dir=str(tmpdir)))
+                                               model_initiator_kwargs=dict(base_dir=str(tmpdir)))
         workflow_context.states = []
         workflow_context.exception = None
         yield workflow_context

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/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 4ad614a..61e3b88 100644
--- a/tests/orchestrator/workflows/builtin/test_execute_operation.py
+++ b/tests/orchestrator/workflows/builtin/test_execute_operation.py
@@ -25,7 +25,7 @@ from tests import storage
 @pytest.fixture
 def ctx(tmpdir):
     context = mock.context.simple(str(tmpdir),
-                                  model_driver_kwargs=dict(base_dir=str(tmpdir)))
+                                  model_initiator_kwargs=dict(base_dir=str(tmpdir)))
     yield context
     storage.release_sqlite_storage(context.model)
 

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/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 2555919..100e02a 100644
--- a/tests/orchestrator/workflows/builtin/test_heal.py
+++ b/tests/orchestrator/workflows/builtin/test_heal.py
@@ -27,7 +27,7 @@ from . import (assert_node_install_operations,
 @pytest.fixture
 def ctx(tmpdir):
     context = mock.context.simple(str(tmpdir),
-                                  model_driver_kwargs=dict(base_dir=str(tmpdir)))
+                                  model_initiator_kwargs=dict(base_dir=str(tmpdir)))
     yield context
     storage.release_sqlite_storage(context.model)
 

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/tests/orchestrator/workflows/builtin/test_install.py
----------------------------------------------------------------------
diff --git a/tests/orchestrator/workflows/builtin/test_install.py b/tests/orchestrator/workflows/builtin/test_install.py
index dc425b3..c822cd7 100644
--- a/tests/orchestrator/workflows/builtin/test_install.py
+++ b/tests/orchestrator/workflows/builtin/test_install.py
@@ -26,7 +26,7 @@ from . import assert_node_install_operations
 @pytest.fixture
 def ctx(tmpdir):
     context = mock.context.simple(str(tmpdir),
-                                  model_driver_kwargs=dict(base_dir=str(tmpdir)))
+                                  model_initiator_kwargs=dict(base_dir=str(tmpdir)))
     yield context
     storage.release_sqlite_storage(context.model)
 

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/tests/orchestrator/workflows/builtin/test_uninstall.py
----------------------------------------------------------------------
diff --git a/tests/orchestrator/workflows/builtin/test_uninstall.py b/tests/orchestrator/workflows/builtin/test_uninstall.py
index 5a34494..e1bca10 100644
--- a/tests/orchestrator/workflows/builtin/test_uninstall.py
+++ b/tests/orchestrator/workflows/builtin/test_uninstall.py
@@ -27,7 +27,7 @@ from . import assert_node_uninstall_operations
 @pytest.fixture
 def ctx(tmpdir):
     context = mock.context.simple(str(tmpdir),
-                                  model_driver_kwargs=dict(base_dir=str(tmpdir)))
+                                  model_initiator_kwargs=dict(base_dir=str(tmpdir)))
     yield context
     storage.release_sqlite_storage(context.model)
 

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/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 68ba477..fd7c442 100644
--- a/tests/orchestrator/workflows/core/test_engine.py
+++ b/tests/orchestrator/workflows/core/test_engine.py
@@ -126,7 +126,7 @@ class BaseTest(object):
     def workflow_context(self, tmpdir):
         workflow_context = mock.context.simple(
             str(tmpdir),
-            model_driver_kwargs=dict(base_dir=str(tmpdir)))
+            model_initiator_kwargs=dict(base_dir=str(tmpdir)))
         workflow_context.states = []
         workflow_context.exception = None
         yield workflow_context

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/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 7ffe045..5e54e2f 100644
--- a/tests/orchestrator/workflows/core/test_task.py
+++ b/tests/orchestrator/workflows/core/test_task.py
@@ -33,7 +33,7 @@ from tests import mock, storage
 def ctx(tmpdir):
     context = mock.context.simple(
         str(tmpdir),
-        model_driver_kwargs=dict(base_dir=str(tmpdir)))
+        model_initiator_kwargs=dict(base_dir=str(tmpdir)))
     yield context
     storage.release_sqlite_storage(context.model)
 

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/tests/orchestrator/workflows/executor/test_process_executor.py
----------------------------------------------------------------------
diff --git a/tests/orchestrator/workflows/executor/test_process_executor.py b/tests/orchestrator/workflows/executor/test_process_executor.py
index ab47bca..4972e61 100644
--- a/tests/orchestrator/workflows/executor/test_process_executor.py
+++ b/tests/orchestrator/workflows/executor/test_process_executor.py
@@ -75,8 +75,8 @@ class TestProcessExecutor(object):
 @pytest.fixture
 def model(tmpdir):
     result = application_model_storage(sql_mapi.SQLAlchemyModelAPI,
-                                       api_kwargs=dict(base_dir=str(tmpdir)),
-                                       storage_initiator_func=sql_mapi.init_storage)
+                                       initiator_kwargs=dict(base_dir=str(tmpdir)),
+                                       initiator=sql_mapi.init_storage)
     yield result
     tests.storage.release_sqlite_storage(result)
 

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/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 9e8623e..550fa9c 100644
--- a/tests/orchestrator/workflows/executor/test_process_executor_extension.py
+++ b/tests/orchestrator/workflows/executor/test_process_executor_extension.py
@@ -76,6 +76,6 @@ def executor():
 @pytest.fixture
 def context(tmpdir):
     result = mock.context.simple(str(tmpdir),
-                                 model_driver_kwargs=dict(base_dir=str(tmpdir)))
+                                 model_initiator_kwargs=dict(base_dir=str(tmpdir)))
     yield result
     storage.release_sqlite_storage(result.model)

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/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 45793c4..48c387a 100644
--- a/tests/orchestrator/workflows/executor/test_process_executor_tracked_changes.py
+++ b/tests/orchestrator/workflows/executor/test_process_executor_tracked_changes.py
@@ -149,6 +149,6 @@ def executor():
 @pytest.fixture
 def context(tmpdir):
     result = mock.context.simple(str(tmpdir),
-                                 model_driver_kwargs=dict(base_dir=str(tmpdir)))
+                                 model_initiator_kwargs=dict(base_dir=str(tmpdir)))
     yield result
     storage.release_sqlite_storage(result.model)

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/tests/storage/__init__.py
----------------------------------------------------------------------
diff --git a/tests/storage/__init__.py b/tests/storage/__init__.py
index 10c2ee2..e97b4eb 100644
--- a/tests/storage/__init__.py
+++ b/tests/storage/__init__.py
@@ -42,7 +42,6 @@ class MockModel(model.DeclarativeBase, structure.ModelMixin): #pylint: disable=a
     name = Column(Text)
 
 
-
 class TestFileSystem(object):
 
     def setup_method(self):
@@ -61,8 +60,6 @@ def release_sqlite_storage(storage):
     mapis = storage.registered.values()
 
     if mapis:
-        for mapi in mapis:
-            mapi.free_storage_initiator()
         for session in set(mapi._session for mapi in mapis):
             session.rollback()
             session.close()

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/tests/storage/test_instrumentation.py
----------------------------------------------------------------------
diff --git a/tests/storage/test_instrumentation.py b/tests/storage/test_instrumentation.py
index 7eb733f..db888b3 100644
--- a/tests/storage/test_instrumentation.py
+++ b/tests/storage/test_instrumentation.py
@@ -328,7 +328,6 @@ def restore_instrumentation():
 
 @pytest.fixture
 def storage():
-    sql_mapi.SQLAlchemyModelAPI.storage_initiator(sql_mapi.init_storage)
     result = ModelStorage(
         api_cls=sql_mapi.SQLAlchemyModelAPI,
         items=(MockModel1, MockModel2, StrictMockModel))

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/tests/storage/test_model_storage.py
----------------------------------------------------------------------
diff --git a/tests/storage/test_model_storage.py b/tests/storage/test_model_storage.py
index 3ba92fe..c02f2a0 100644
--- a/tests/storage/test_model_storage.py
+++ b/tests/storage/test_model_storage.py
@@ -30,7 +30,6 @@ from . import MockModel
 @pytest.fixture
 def storage():
     base_storage = ModelStorage(sql_mapi.SQLAlchemyModelAPI)
-    sql_mapi.SQLAlchemyModelAPI.storage_initiator(sql_mapi.init_storage)
     base_storage.register(MockModel)
     yield base_storage
     release_sqlite_storage(base_storage)
@@ -62,7 +61,7 @@ def test_model_storage(storage):
 
 def test_application_storage_factory():
     storage = application_model_storage(sql_mapi.SQLAlchemyModelAPI,
-                                        storage_initiator_func=sql_mapi.init_storage)
+                                        initiator=sql_mapi.init_storage)
     assert storage.node
     assert storage.node_instance
     assert storage.plugin

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/tests/storage/test_models.py
----------------------------------------------------------------------
diff --git a/tests/storage/test_models.py b/tests/storage/test_models.py
index c5b1c62..f2c2531 100644
--- a/tests/storage/test_models.py
+++ b/tests/storage/test_models.py
@@ -55,7 +55,7 @@ def sql_storage(storage_func):
 
 def _empty_storage():
     return application_model_storage(sql_mapi.SQLAlchemyModelAPI,
-                                     storage_initiator_func=sql_mapi.init_storage)
+                                     initiator=sql_mapi.init_storage)
 
 
 def _blueprint_storage():

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/tests/storage/test_structures.py
----------------------------------------------------------------------
diff --git a/tests/storage/test_structures.py b/tests/storage/test_structures.py
index 6caa4ff..ae1e956 100644
--- a/tests/storage/test_structures.py
+++ b/tests/storage/test_structures.py
@@ -37,7 +37,6 @@ from ..mock import (
 @pytest.fixture
 def storage():
     base_storage = ModelStorage(sql_mapi.SQLAlchemyModelAPI)
-    sql_mapi.SQLAlchemyModelAPI.storage_initiator(sql_mapi.init_storage)
     base_storage.register(MockModel)
     yield base_storage
     release_sqlite_storage(base_storage)

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e2d2cc1d/tests/utils/test_plugin.py
----------------------------------------------------------------------
diff --git a/tests/utils/test_plugin.py b/tests/utils/test_plugin.py
index 6a45f19..e5d3583 100644
--- a/tests/utils/test_plugin.py
+++ b/tests/utils/test_plugin.py
@@ -50,7 +50,7 @@ class TestPluginManager(object):
 @pytest.fixture
 def model():
     model = application_model_storage(sql_mapi.SQLAlchemyModelAPI,
-                                      storage_initiator_func=sql_mapi.init_storage)
+                                      initiator=sql_mapi.init_storage)
     yield model
     storage.release_sqlite_storage(model)