diff --git a/openstackclient/common/extension.py b/openstackclient/common/extension.py index dad7ed6285..8825b4918b 100644 --- a/openstackclient/common/extension.py +++ b/openstackclient/common/extension.py @@ -111,9 +111,9 @@ class ListExtension(lister.Lister): if parsed_args.network or show_all: network_client = self.app.client_manager.network try: - data = network_client.list_extensions()['extensions'] + data = network_client.extensions() dict_tuples = ( - utils.get_dict_properties( + utils.get_item_properties( s, columns, formatters={}, diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py index 67da63b118..9e2721fb67 100644 --- a/openstackclient/compute/v2/server.py +++ b/openstackclient/compute/v2/server.py @@ -37,7 +37,6 @@ from openstackclient.common import parseractions from openstackclient.common import utils from openstackclient.i18n import _ # noqa from openstackclient.identity import common as identity_common -from openstackclient.network import common as network_common def _format_servers_list_networks(networks): @@ -476,19 +475,13 @@ class CreateServer(show.ShowOne): if neutron_enabled: network_client = self.app.client_manager.network if nic_info["net-id"]: - nic_info["net-id"] = network_common.find( - network_client, - 'network', - 'networks', - nic_info["net-id"] - ) + net = network_client.find_network( + nic_info["net-id"], ignore_missing=False) + nic_info["net-id"] = net.id if nic_info["port-id"]: - nic_info["port-id"] = network_common.find( - network_client, - 'port', - 'ports', - nic_info["port-id"] - ) + port = network_client.find_port( + nic_info["port-id"], ignore_missing=False) + nic_info["port-id"] = port.id else: if nic_info["net-id"]: nic_info["net-id"] = utils.find_resource( diff --git a/openstackclient/network/common.py b/openstackclient/network/common.py deleted file mode 100644 index 7b3f8a62e9..0000000000 --- a/openstackclient/network/common.py +++ /dev/null @@ -1,29 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# - - -def find(client, resource, resources, name_or_id, name_attr='name'): - """Find a network resource - - :param client: network client - :param resource: name of the resource - :param resources: plural name of resource - :param name_or_id: name or id of resource user is looking for - :param name_attr: key to the name attribute for the resource - - For example: - n = find(netclient, 'network', 'networks', 'matrix') - """ - list_method = getattr(client, "find_%s" % resource) - data = list_method(name_or_id, ignore_missing=False) - return data.id diff --git a/openstackclient/tests/common/test_extension.py b/openstackclient/tests/common/test_extension.py index 6d34bdd8d8..5f5588a7d3 100644 --- a/openstackclient/tests/common/test_extension.py +++ b/openstackclient/tests/common/test_extension.py @@ -34,9 +34,9 @@ class TestExtension(utils.TestCommand): self.app.client_manager.identity.extensions) self.identity_extensions_mock.reset_mock() - network = network_fakes.FakeNetworkV2Client() - self.app.client_manager.network = network - self.network_extensions_mock = network.list_extensions + network_client = network_fakes.FakeNetworkV2Client() + self.app.client_manager.network = network_client + self.network_extensions_mock = network_client.extensions self.network_extensions_mock.reset_mock() diff --git a/openstackclient/tests/compute/v2/test_server.py b/openstackclient/tests/compute/v2/test_server.py index d6dcde1af4..82f32051be 100644 --- a/openstackclient/tests/compute/v2/test_server.py +++ b/openstackclient/tests/compute/v2/test_server.py @@ -215,12 +215,17 @@ class TestServerCreate(TestServer): self.app.client_manager.auth_ref.service_catalog.get_endpoints = ( get_endpoints) - list_networks = mock.Mock() - list_ports = mock.Mock() - self.app.client_manager.network.list_networks = list_networks - self.app.client_manager.network.list_ports = list_ports - list_networks.return_value = {'networks': [{'id': 'net1_uuid'}]} - list_ports.return_value = {'ports': [{'id': 'port1_uuid'}]} + find_network = mock.Mock() + find_port = mock.Mock() + network_client = self.app.client_manager.network + network_client.find_network = find_network + network_client.find_port = find_port + netty = mock.Mock() + netty.id = 'net1_uuid' + porty = mock.Mock() + porty.id = 'port1_uuid' + find_network.return_value = netty + find_port.return_value = porty # Mock sdk APIs. _network = mock.Mock() diff --git a/openstackclient/tests/network/test_common.py b/openstackclient/tests/network/test_common.py deleted file mode 100644 index 58586ac066..0000000000 --- a/openstackclient/tests/network/test_common.py +++ /dev/null @@ -1,57 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# - -import mock - -from openstackclient.network import common -from openstackclient.tests import utils - -RESOURCE = 'resource' -RESOURCES = 'resources' -NAME = 'matrix' -ID = 'Fishburne' - - -class TestFind(utils.TestCase): - def setUp(self): - super(TestFind, self).setUp() - self.mock_client = mock.Mock() - self.list_resources = mock.Mock() - self.mock_client.find_resource = self.list_resources - self.resource = mock.Mock() - self.resource.id = ID - - def test_name(self): - self.list_resources.return_value = self.resource - - result = common.find(self.mock_client, RESOURCE, RESOURCES, NAME) - - self.assertEqual(ID, result) - self.list_resources.assert_called_with(NAME, ignore_missing=False) - - def test_id(self): - self.list_resources.return_value = self.resource - - result = common.find(self.mock_client, RESOURCE, RESOURCES, NAME) - - self.assertEqual(ID, result) - self.list_resources.assert_called_with(NAME, ignore_missing=False) - - def test_nameo(self): - self.list_resources.return_value = self.resource - - result = common.find(self.mock_client, RESOURCE, RESOURCES, NAME, - name_attr='nameo') - - self.assertEqual(ID, result) - self.list_resources.assert_called_with(NAME, ignore_missing=False) diff --git a/openstackclient/tests/network/v2/fakes.py b/openstackclient/tests/network/v2/fakes.py index 10814f96fb..9e99911430 100644 --- a/openstackclient/tests/network/v2/fakes.py +++ b/openstackclient/tests/network/v2/fakes.py @@ -27,19 +27,21 @@ extension_updated = '2013-07-09T12:00:0-00:00' extension_alias = 'Dystopian' extension_links = '[{"href":''"https://github.com/os/network", "type"}]' -NETEXT = { - 'name': extension_name, - 'namespace': extension_namespace, - 'description': extension_description, - 'updated': extension_updated, - 'alias': extension_alias, - 'links': extension_links, -} + +def create_extension(): + extension = mock.Mock() + extension.name = extension_name + extension.namespace = extension_namespace + extension.description = extension_description + extension.updated = extension_updated + extension.alias = extension_alias + extension.links = extension_links + return extension class FakeNetworkV2Client(object): def __init__(self, **kwargs): - self.list_extensions = mock.Mock(return_value={'extensions': [NETEXT]}) + self.extensions = mock.Mock(return_value=[create_extension()]) class TestNetworkV2(utils.TestCommand):