Repository: incubator-ariatosca Updated Branches: refs/heads/ARIA-213-Sporadic-tests-failures-over-locked-database-issue [created] a27d7a4b8
isolation level fix Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/a27d7a4b Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/a27d7a4b Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/a27d7a4b Branch: refs/heads/ARIA-213-Sporadic-tests-failures-over-locked-database-issue Commit: a27d7a4b85eb69d664b93137ac06144df5b1b24b Parents: fedfb0d Author: max-orlov <[email protected]> Authored: Wed Jun 7 11:49:03 2017 +0300 Committer: max-orlov <[email protected]> Committed: Wed Jun 7 11:49:03 2017 +0300 ---------------------------------------------------------------------- aria/storage/sql_mapi.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/a27d7a4b/aria/storage/sql_mapi.py ---------------------------------------------------------------------- diff --git a/aria/storage/sql_mapi.py b/aria/storage/sql_mapi.py index 68d0ff6..d9b8d70 100644 --- a/aria/storage/sql_mapi.py +++ b/aria/storage/sql_mapi.py @@ -21,6 +21,7 @@ import platform from sqlalchemy import ( create_engine, orm, + event ) from sqlalchemy.exc import SQLAlchemyError from sqlalchemy.orm.exc import StaleDataError @@ -405,13 +406,21 @@ def init_storage(base_dir, filename='db.sqlite'): path=os.path.join(base_dir, filename)) - engine = create_engine(uri, connect_args=dict(timeout=15)) + engine = create_engine(uri) + event.listen(engine, 'connect', do_connect) + event.listen(engine, 'begin', do_begin) + session_factory = orm.sessionmaker(bind=engine) session = orm.scoped_session(session_factory=session_factory) return dict(engine=engine, session=session) +def do_connect(dbapi_connection, _): + dbapi_connection.isolation_level = None + + + class ListResult(list): """ a ListResult contains results about the requested items.
