diff --git a/tobiko/common/clients.py b/tobiko/common/clients.py index 6da31ba3b..c668f6de7 100644 --- a/tobiko/common/clients.py +++ b/tobiko/common/clients.py @@ -31,14 +31,8 @@ class ClientManager(object): def session(self): """Returns keystone session.""" if self._session is None: - from keystoneauth1 import loading - from keystoneauth1 import session - loader = loading.get_plugin_loader('password') - credentials = (self.credentials or - keystone.default_keystone_credentials()).to_dict() - del credentials['api_version'] # this parameter is not accepted - auth = loader.load_from_options(**credentials) - self._session = session.Session(auth=auth, verify=False) + self._session = keystone.get_keystone_session( + credentials=self.credentials) return self._session @property diff --git a/tobiko/openstack/keystone/__init__.py b/tobiko/openstack/keystone/__init__.py index 3fa3c4022..387717012 100644 --- a/tobiko/openstack/keystone/__init__.py +++ b/tobiko/openstack/keystone/__init__.py @@ -23,3 +23,4 @@ InvalidKeystoneCredentials = credentials.InvalidKeystoneCredentials KeystoneSessionFixture = session.KeystoneSessionFixture KeystoneSessionManager = session.KeystoneSessionManager +get_keystone_session = session.get_keystone_session diff --git a/tobiko/openstack/keystone/session.py b/tobiko/openstack/keystone/session.py index f03061c64..1abd59760 100644 --- a/tobiko/openstack/keystone/session.py +++ b/tobiko/openstack/keystone/session.py @@ -87,3 +87,11 @@ class KeystoneSessionManager(object): SESSIONS = KeystoneSessionManager() + + +def get_keystone_session(credentials=None, shared=True, init_session=None, + manager=None): + manager = manager or SESSIONS + session = manager.get_session(credentials=credentials, shared=shared, + init_session=init_session) + return tobiko.setup_fixture(session).session