From b23d9e285b68315ba80bf85656a9661ba4d3f06c Mon Sep 17 00:00:00 2001 From: Liam Young Date: Wed, 18 Nov 2020 09:36:44 +0000 Subject: [PATCH] Support nova client micro versions Support micro versions when requesting a nova client. --- unit_tests/utilities/test_zaza_utilities_openstack.py | 9 +++++++++ zaza/openstack/utilities/openstack.py | 7 +++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/unit_tests/utilities/test_zaza_utilities_openstack.py b/unit_tests/utilities/test_zaza_utilities_openstack.py index 5ad0b9b..a047d9d 100644 --- a/unit_tests/utilities/test_zaza_utilities_openstack.py +++ b/unit_tests/utilities/test_zaza_utilities_openstack.py @@ -289,6 +289,15 @@ class TestOpenStackUtils(ut_utils.BaseTestCase): openstack_utils.get_undercloud_keystone_session() self.get_keystone_session.assert_called_once_with(_auth, verify=None) + def test_get_nova_session_client(self): + session_mock = mock.MagicMock() + self.patch_object(openstack_utils.novaclient_client, "Client") + openstack_utils.get_nova_session_client(session_mock) + self.Client.assert_called_once_with(2, session=session_mock) + self.Client.reset_mock() + openstack_utils.get_nova_session_client(session_mock, version=2.56) + self.Client.assert_called_once_with(2.56, session=session_mock) + def test_get_urllib_opener(self): self.patch_object(openstack_utils.urllib.request, "ProxyHandler") self.patch_object(openstack_utils.urllib.request, "HTTPHandler") diff --git a/zaza/openstack/utilities/openstack.py b/zaza/openstack/utilities/openstack.py index 8d25433..5d2dcca 100644 --- a/zaza/openstack/utilities/openstack.py +++ b/zaza/openstack/utilities/openstack.py @@ -253,15 +253,18 @@ def get_designate_session_client(**kwargs): **kwargs) -def get_nova_session_client(session): +def get_nova_session_client(session, version=None): """Return novaclient authenticated by keystone session. :param session: Keystone session object :type session: keystoneauth1.session.Session object + :param version: Version of client to request. + :type version: float :returns: Authenticated novaclient :rtype: novaclient.Client object """ - return novaclient_client.Client(2, session=session) + version = version or 2 + return novaclient_client.Client(version, session=session) def get_neutron_session_client(session):