From 4b393681d98e6a78248f6fa36e576a9f09c4ee34 Mon Sep 17 00:00:00 2001 From: Matt Riedemann Date: Thu, 24 Oct 2019 13:58:12 -0400 Subject: [PATCH] Use SDK to get compute API extensions python-novaclient 16.0.0 removed the deprecated list_extensions module [1] so this changes the extensions command to use openstacksdk to get the compute API extensions. The functional test ExtensionTests.test_extension_list_compute ensures this works. [1] https://review.opendev.org/686516/ Change-Id: I9894bc395c0474aaa6494ac4534862efe4ea7984 Story: #2006769 Task: #37284 --- openstackclient/common/extension.py | 4 ++-- .../tests/unit/common/test_extension.py | 21 +++++++------------ 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/openstackclient/common/extension.py b/openstackclient/common/extension.py index 7120661880..1ed2012c10 100644 --- a/openstackclient/common/extension.py +++ b/openstackclient/common/extension.py @@ -89,9 +89,9 @@ class ListExtension(command.Lister): LOG.warning(message) if parsed_args.compute or show_all: - compute_client = self.app.client_manager.compute + compute_client = self.app.client_manager.sdk_connection.compute try: - data += compute_client.list_extensions.show_all() + data += compute_client.extensions() except Exception: message = _("Extensions list not supported by Compute API") LOG.warning(message) diff --git a/openstackclient/tests/unit/common/test_extension.py b/openstackclient/tests/unit/common/test_extension.py index eefa814c49..87c62da499 100644 --- a/openstackclient/tests/unit/common/test_extension.py +++ b/openstackclient/tests/unit/common/test_extension.py @@ -36,13 +36,9 @@ class TestExtension(utils.TestCommand): self.identity_extensions_mock = identity_client.extensions self.identity_extensions_mock.reset_mock() - compute_client = compute_fakes.FakeComputev2Client( - endpoint=fakes.AUTH_URL, - token=fakes.AUTH_TOKEN, - ) - self.app.client_manager.compute = compute_client - compute_client.list_extensions = mock.Mock() - self.compute_extensions_mock = compute_client.list_extensions + sdk_connection = mock.Mock() + self.app.client_manager.sdk_connection = sdk_connection + self.compute_extensions_mock = sdk_connection.compute.extensions self.compute_extensions_mock.reset_mock() volume_client = volume_fakes.FakeVolumeClient( @@ -80,8 +76,7 @@ class TestExtensionList(TestExtension): self.identity_extensions_mock.list.return_value = [ self.identity_extension] - self.compute_extensions_mock.show_all.return_value = [ - self.compute_extension] + self.compute_extensions_mock.return_value = [self.compute_extension] self.volume_extensions_mock.show_all.return_value = [ self.volume_extension] self.network_extensions_mock.return_value = [self.network_extension] @@ -131,7 +126,7 @@ class TestExtensionList(TestExtension): ) self._test_extension_list_helper(arglist, verifylist, datalist) self.identity_extensions_mock.list.assert_called_with() - self.compute_extensions_mock.show_all.assert_called_with() + self.compute_extensions_mock.assert_called_with() self.volume_extensions_mock.show_all.assert_called_with() self.network_extensions_mock.assert_called_with() @@ -178,7 +173,7 @@ class TestExtensionList(TestExtension): ) self._test_extension_list_helper(arglist, verifylist, datalist, True) self.identity_extensions_mock.list.assert_called_with() - self.compute_extensions_mock.show_all.assert_called_with() + self.compute_extensions_mock.assert_called_with() self.volume_extensions_mock.show_all.assert_called_with() self.network_extensions_mock.assert_called_with() @@ -248,7 +243,7 @@ class TestExtensionList(TestExtension): self.compute_extension.description, ), ) self._test_extension_list_helper(arglist, verifylist, datalist) - self.compute_extensions_mock.show_all.assert_called_with() + self.compute_extensions_mock.assert_called_with() def test_extension_list_compute_and_network(self): arglist = [ @@ -272,7 +267,7 @@ class TestExtensionList(TestExtension): ), ) self._test_extension_list_helper(arglist, verifylist, datalist) - self.compute_extensions_mock.show_all.assert_called_with() + self.compute_extensions_mock.assert_called_with() self.network_extensions_mock.assert_called_with() def test_extension_list_volume(self):