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 15:08:18 UTC

incubator-ariatosca git commit: reuse of code in runner

Repository: incubator-ariatosca
Updated Branches:
  refs/heads/ARIA-42-Generic-ctx-serialization-mechanism c8f75c8c3 -> aded1c938


reuse of code in runner


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

Branch: refs/heads/ARIA-42-Generic-ctx-serialization-mechanism
Commit: aded1c938071f5b62e33687187af5b9e519c274d
Parents: c8f75c8
Author: mxmrlv <mx...@gmail.com>
Authored: Tue Feb 7 17:08:10 2017 +0200
Committer: mxmrlv <mx...@gmail.com>
Committed: Tue Feb 7 17:08:10 2017 +0200

----------------------------------------------------------------------
 aria/orchestrator/runner.py | 54 +++++++++++-----------------------------
 1 file changed, 15 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/aded1c93/aria/orchestrator/runner.py
----------------------------------------------------------------------
diff --git a/aria/orchestrator/runner.py b/aria/orchestrator/runner.py
index 7892d67..6e5c054 100644
--- a/aria/orchestrator/runner.py
+++ b/aria/orchestrator/runner.py
@@ -27,9 +27,11 @@ from sqlalchemy.pool import StaticPool # @UnresolvedImport
 from .context.workflow import WorkflowContext
 from .workflows.core.engine import Engine
 from .workflows.executor.thread import ThreadExecutor
-from ..storage import model
-from ..storage.sql_mapi import SQLAlchemyModelAPI
-from ..storage.filesystem_rapi import FileSystemResourceAPI
+from ..storage import (
+    model,
+    sql_mapi,
+    filesystem_rapi,
+)
 from .. import (application_model_storage, application_resource_storage)
 
 
@@ -76,9 +78,14 @@ class Runner(object):
             self.cleanup()
 
     def create_workflow_context(self, workflow_name, deployment_id, initialize_model_storage_fn):
-        model_storage = self.create_sqlite_model_storage()
+        self.cleanup()
+        model_storage = application_model_storage(
+            sql_mapi.SQLAlchemyModelAPI,
+            initiator=sql_mapi.init_storage,
+            initiator_kwargs=dict(base_dir=self._storage_path))
         initialize_model_storage_fn(model_storage)
-        resource_storage = self.create_fs_resource_storage()
+        resource_storage = application_resource_storage(
+            filesystem_rapi.FileSystemResourceAPI, initiator_kwargs=dict(directory='.'))
         return WorkflowContext(
             name=workflow_name,
             model_storage=model_storage,
@@ -88,41 +95,10 @@ class Runner(object):
             task_max_attempts=1,
             task_retry_interval=1)
 
-    def create_sqlite_model_storage(self): # pylint: disable=no-self-use
-        self.cleanup()
 
-        # Engine
-        if self._storage_path is None:
-            # In memory
-            # Causes serious threading problems:
-            # https://gehrcke.de/2015/05/in-memory-sqlite-database-and-flask-a-threading-trap/
-            sqlite_engine = create_engine(
-                SQLITE_IN_MEMORY,
-                connect_args={'check_same_thread': False},
-                poolclass=StaticPool)
-        else:
-            path_prefix = '' if 'Windows' in platform.system() else '/'
-            sqlite_engine = create_engine(
-                'sqlite:///%s%s' % (path_prefix, self._storage_path))
-
-        # Models
-        model.DeclarativeBase.metadata.create_all(bind=sqlite_engine) # @UndefinedVariable
-
-        # Session
-        sqlite_session_factory = orm.sessionmaker(bind=sqlite_engine)
-        if self._storage_path is None:
-            sqlite_session = sqlite_session_factory()
-        else:
-            # File-based storage only
-            sqlite_session = orm.scoped_session(session_factory=sqlite_session_factory)
-
-        # Storage
-        sqlite_kwargs = dict(engine=sqlite_engine, session=sqlite_session)
-        return application_model_storage(SQLAlchemyModelAPI, api_kwargs=sqlite_kwargs)
-
-    def create_fs_resource_storage(self, directory='.'): # pylint: disable=no-self-use
-        fs_kwargs = dict(directory=directory)
-        return application_resource_storage(FileSystemResourceAPI, api_kwargs=fs_kwargs)
+    @staticmethod
+    def create_fs_resource_storage(directory='.'):
+        return
 
     def cleanup(self):
         if self._is_storage_temporary \