From 316f059a0e18e705c0fe276f181445b05ba087ea Mon Sep 17 00:00:00 2001 From: Brant Knudson Date: Wed, 15 May 2013 21:37:22 -0500 Subject: Base.get_engine honor allow_global_engine=False This change makes it so that get_engine() in keystone.common.sql.core.Base does not return the global engine when allow_global_engine is False. The behavior before could be described like: If get_engine() has never been called with allow_global_engine=True, then if you pass allow_global_engine=False returns a new engine. Otherwise, you always get the global engine (even if allow_global_engine=False) The new behavior is: If get_engine() is called with allow_global_engine=True then it returns the global engine, otherwise it returns a new engine. Change-Id: I756b54d9f3984733f56d09c11b2702c3451102f2 --- keystone/common/sql/core.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'keystone') diff --git a/keystone/common/sql/core.py b/keystone/common/sql/core.py index 694d30bd..e1bd138e 100644 --- a/keystone/common/sql/core.py +++ b/keystone/common/sql/core.py @@ -99,10 +99,6 @@ def set_global_engine(engine): GLOBAL_ENGINE = engine -def get_global_engine(): - return GLOBAL_ENGINE - - # Special Fields class JsonBlob(sql_types.TypeDecorator): @@ -244,14 +240,19 @@ class Base(object): return sql.create_engine(CONF.sql.connection, **engine_config) - engine = get_global_engine() or new_engine() + if not allow_global_engine: + return new_engine() + + if GLOBAL_ENGINE: + return GLOBAL_ENGINE + + engine = new_engine() # auto-build the db to support wsgi server w/ in-memory backend - if allow_global_engine and CONF.sql.connection == 'sqlite://': + if CONF.sql.connection == 'sqlite://': ModelBase.metadata.create_all(bind=engine) - if allow_global_engine: - set_global_engine(engine) + set_global_engine(engine) return engine -- cgit