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 \