From c8f3f2b301cc507920c4b90954bef4743347aa18 Mon Sep 17 00:00:00 2001 From: Federico Ressi Date: Fri, 6 Nov 2020 12:08:02 +0100 Subject: [PATCH] Add get_keystone_token and get_keystone_endpoint functions Change-Id: If82e2e9626908cefbe5466527a01d90b79337d92 --- tobiko/openstack/keystone/__init__.py | 2 ++ tobiko/openstack/keystone/_session.py | 16 ++++++++++++++++ .../tests/functional/openstack/test_keystone.py | 9 +++++++++ 3 files changed, 27 insertions(+) diff --git a/tobiko/openstack/keystone/__init__.py b/tobiko/openstack/keystone/__init__.py index 121b075a9..cb073e2f9 100644 --- a/tobiko/openstack/keystone/__init__.py +++ b/tobiko/openstack/keystone/__init__.py @@ -55,4 +55,6 @@ keystone_session = _session.keystone_session KeystoneSessionType = _session.KeystoneSessionType KeystoneSessionFixture = _session.KeystoneSessionFixture KeystoneSessionManager = _session.KeystoneSessionManager +get_keystone_endpoint = _session.get_keystone_endpoint get_keystone_session = _session.get_keystone_session +get_keystone_token = _session.get_keystone_token diff --git a/tobiko/openstack/keystone/_session.py b/tobiko/openstack/keystone/_session.py index 49bd2d179..5a7875acb 100644 --- a/tobiko/openstack/keystone/_session.py +++ b/tobiko/openstack/keystone/_session.py @@ -17,6 +17,7 @@ import typing from keystoneauth1 import loading from keystoneauth1 import session as _session +from keystoneauth1 import plugin as _plugin from oslo_log import log import tobiko @@ -165,3 +166,18 @@ def get_keystone_session( init_session=init_session) tobiko.check_valid_type(session, KeystoneSessionFixture) return tobiko.setup_fixture(session).session + + +def get_keystone_endpoint( + session: KeystoneSessionType = None, + auth: typing.Optional[_plugin.BaseAuthPlugin] = None, + **kwargs) -> \ + typing.Optional[str]: + return keystone_session(session).get_endpoint(auth=auth, **kwargs) + + +def get_keystone_token( + session: KeystoneSessionType = None, + auth: typing.Optional[_plugin.BaseAuthPlugin] = None) -> \ + typing.Optional[str]: + return keystone_session(session).get_token(auth=auth) diff --git a/tobiko/tests/functional/openstack/test_keystone.py b/tobiko/tests/functional/openstack/test_keystone.py index 490cd58f3..0161e4fd5 100644 --- a/tobiko/tests/functional/openstack/test_keystone.py +++ b/tobiko/tests/functional/openstack/test_keystone.py @@ -172,3 +172,12 @@ class KeystoneClientAPITest(testtools.TestCase): self.assertEqual(service.id, endpoint.service_id) self.assertEqual('public', endpoint.interface) self.assertTrue(endpoint.enabled) + + def test_get_session_endpoint(self): + endpoint = keystone.get_keystone_endpoint( + service_type='identity') + self.assertIsInstance(endpoint, str) + + def test_get_session_token(self): + token = keystone.get_keystone_token() + self.assertIsInstance(token, str)