diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-07-01 09:39:52 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-07-01 09:39:52 +0000 |
commit | 432812794e6e6a54cf69356e921afb9fd1a6a23d (patch) | |
tree | 17d133d3e2f5016f1a54967adf16e79b3a62a8af | |
parent | de2f8c037f4848f03711da705f977118e3785e29 (diff) | |
parent | e8c4a03c8783b5911e84088027e50689c892f6db (diff) | |
download | oslo-db-432812794e6e6a54cf69356e921afb9fd1a6a23d.tar.gz |
Merge "Add legacy get_sessionmaker() method"
-rw-r--r-- | oslo_db/sqlalchemy/enginefacade.py | 12 | ||||
-rw-r--r-- | oslo_db/tests/sqlalchemy/test_enginefacade.py | 7 |
2 files changed, 19 insertions, 0 deletions
diff --git a/oslo_db/sqlalchemy/enginefacade.py b/oslo_db/sqlalchemy/enginefacade.py index 056dd31..4497a50 100644 --- a/oslo_db/sqlalchemy/enginefacade.py +++ b/oslo_db/sqlalchemy/enginefacade.py @@ -964,6 +964,18 @@ class LegacyEngineFacade(object): else: return self._factory._writer_maker(**kwargs) + def get_sessionmaker(self, use_slave=False): + """Get the sessionmaker instance used to create a Session. + + This can be called for those cases where the sessionmaker() is to + be temporarily injected with some state such as a specific connection. + + """ + if use_slave: + return self._factory._reader_maker + else: + return self._factory._writer_maker + @classmethod def from_config(cls, conf, sqlite_fk=False, autocommit=True, expire_on_commit=False): diff --git a/oslo_db/tests/sqlalchemy/test_enginefacade.py b/oslo_db/tests/sqlalchemy/test_enginefacade.py index a463c7b..fe8030c 100644 --- a/oslo_db/tests/sqlalchemy/test_enginefacade.py +++ b/oslo_db/tests/sqlalchemy/test_enginefacade.py @@ -947,6 +947,13 @@ class LegacyIntegrationtest(test_base.DbTestCase): enginefacade.get_legacy_facade() is legacy_facade ) + def test_get_sessionmaker(self): + legacy_facade = enginefacade.get_legacy_facade() + self.assertTrue( + legacy_facade.get_sessionmaker() is + enginefacade._context_manager._factory._writer_maker + ) + class ThreadingTest(test_base.DbTestCase): """Test copying on new threads using real connections and sessions.""" |