summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/network/client.py62
-rw-r--r--openstackclient/network/common.py24
-rw-r--r--openstackclient/network/v2/network.py18
-rw-r--r--openstackclient/tests/compute/v2/test_server.py12
-rw-r--r--openstackclient/tests/network/test_common.py33
-rw-r--r--openstackclient/tests/network/v2/test_network.py62
6 files changed, 48 insertions, 163 deletions
diff --git a/openstackclient/network/client.py b/openstackclient/network/client.py
index 69ed11fe..7714c525 100644
--- a/openstackclient/network/client.py
+++ b/openstackclient/network/client.py
@@ -13,6 +13,8 @@
import logging
+from openstack import connection
+
from openstackclient.common import utils
@@ -22,62 +24,18 @@ DEFAULT_API_VERSION = '2.0'
API_VERSION_OPTION = 'os_network_api_version'
API_NAME = "network"
API_VERSIONS = {
- "2.0": "neutronclient.v2_0.client.Client",
- "2": "neutronclient.v2_0.client.Client",
-}
-# Translate our API version to auth plugin version prefix
-API_VERSION_MAP = {
- '2.0': 'v2.0',
- '2': 'v2.0',
-}
-
-NETWORK_API_TYPE = 'network'
-NETWORK_API_VERSIONS = {
- '2.0': 'openstackclient.api.network_v2.APIv2',
- '2': 'openstackclient.api.network_v2.APIv2',
+ "2.0": "openstack.connection.Connection",
+ "2": "openstack.connection.Connection",
}
def make_client(instance):
- """Returns an network service client"""
- network_client = utils.get_client_class(
- API_NAME,
- instance._api_version[API_NAME],
- API_VERSIONS)
- LOG.debug('Instantiating network client: %s', network_client)
-
- endpoint = instance.get_endpoint_for_service_type(
- API_NAME,
- region_name=instance._region_name,
- interface=instance._interface,
- )
-
- # Remember endpoint_type only if it is set
- kwargs = utils.build_kwargs_dict('endpoint_type', instance._interface)
-
- client = network_client(
- session=instance.session,
- region_name=instance._region_name,
- **kwargs
- )
-
- network_api = utils.get_client_class(
- API_NAME,
- instance._api_version[API_NAME],
- NETWORK_API_VERSIONS)
- LOG.debug('Instantiating network api: %s', network_client)
-
- # v2 is hard-coded until discovery is completed, neutron only has one atm
- client.api = network_api(
- session=instance.session,
- service_type=NETWORK_API_TYPE,
- endpoint='/'.join([
- endpoint,
- API_VERSION_MAP[instance._api_version[API_NAME]],
- ])
- )
-
- return client
+ """Returns a network proxy"""
+ conn = connection.Connection(authenticator=instance.session.auth)
+ LOG.debug('Connection: %s', conn)
+ LOG.debug('Network client initialized using OpenStack SDK: %s',
+ conn.network)
+ return conn.network
def build_option_parser(parser):
diff --git a/openstackclient/network/common.py b/openstackclient/network/common.py
index 31faef25..7b3f8a62 100644
--- a/openstackclient/network/common.py
+++ b/openstackclient/network/common.py
@@ -11,8 +11,6 @@
# under the License.
#
-from openstackclient.common import exceptions
-
def find(client, resource, resources, name_or_id, name_attr='name'):
"""Find a network resource
@@ -26,22 +24,6 @@ def find(client, resource, resources, name_or_id, name_attr='name'):
For example:
n = find(netclient, 'network', 'networks', 'matrix')
"""
- list_method = getattr(client, "list_%s" % resources)
-
- # Search by name
- kwargs = {name_attr: name_or_id, 'fields': 'id'}
- data = list_method(**kwargs)
- info = data[resources]
- if len(info) == 1:
- return info[0]['id']
- if len(info) > 1:
- msg = "More than one %s exists with the name '%s'."
- raise exceptions.CommandError(msg % (resource, name_or_id))
-
- # Search by id
- data = list_method(id=name_or_id, fields='id')
- info = data[resources]
- if len(info) == 1:
- return info[0]['id']
- msg = "No %s with a name or ID of '%s' exists." % (resource, name_or_id)
- raise exceptions.CommandError(msg)
+ list_method = getattr(client, "find_%s" % resource)
+ data = list_method(name_or_id, ignore_missing=False)
+ return data.id
diff --git a/openstackclient/network/v2/network.py b/openstackclient/network/v2/network.py
index 4c94dc65..64b98f5d 100644
--- a/openstackclient/network/v2/network.py
+++ b/openstackclient/network/v2/network.py
@@ -19,8 +19,6 @@ from cliff import command
from cliff import lister
from cliff import show
-from openstack import connection
-
from openstackclient.common import exceptions
from openstackclient.common import utils
from openstackclient.identity import common as identity_common
@@ -41,12 +39,6 @@ _formatters = {
}
-def _make_client_sdk(instance):
- """Return a network proxy"""
- conn = connection.Connection(authenticator=instance.session.auth)
- return conn.network
-
-
class CreateNetwork(show.ShowOne):
"""Create new network"""
@@ -96,8 +88,6 @@ class CreateNetwork(show.ShowOne):
def take_action(self, parsed_args):
self.log.debug('take_action(%s)' % parsed_args)
- self.app.client_manager.network = \
- _make_client_sdk(self.app.client_manager)
client = self.app.client_manager.network
body = self.get_body(parsed_args)
obj = client.create_network(**body)
@@ -138,8 +128,6 @@ class DeleteNetwork(command.Command):
def take_action(self, parsed_args):
self.log.debug('take_action(%s)' % parsed_args)
- self.app.client_manager.network = \
- _make_client_sdk(self.app.client_manager)
client = self.app.client_manager.network
for network in parsed_args.networks:
obj = client.find_network(network)
@@ -170,8 +158,6 @@ class ListNetwork(lister.Lister):
def take_action(self, parsed_args):
self.log.debug('take_action(%s)' % parsed_args)
- self.app.client_manager.network = \
- _make_client_sdk(self.app.client_manager)
client = self.app.client_manager.network
if parsed_args.long:
@@ -270,8 +256,6 @@ class SetNetwork(command.Command):
def take_action(self, parsed_args):
self.log.debug('take_action(%s)' % parsed_args)
- self.app.client_manager.network = \
- _make_client_sdk(self.app.client_manager)
client = self.app.client_manager.network
obj = client.find_network(parsed_args.identifier, ignore_missing=False)
@@ -306,8 +290,6 @@ class ShowNetwork(show.ShowOne):
def take_action(self, parsed_args):
self.log.debug('take_action(%s)' % parsed_args)
- self.app.client_manager.network = \
- _make_client_sdk(self.app.client_manager)
client = self.app.client_manager.network
obj = client.find_network(parsed_args.identifier, ignore_missing=False)
columns = sorted(obj.keys())
diff --git a/openstackclient/tests/compute/v2/test_server.py b/openstackclient/tests/compute/v2/test_server.py
index ce2dcdf7..01c945ee 100644
--- a/openstackclient/tests/compute/v2/test_server.py
+++ b/openstackclient/tests/compute/v2/test_server.py
@@ -231,6 +231,18 @@ class TestServerCreate(TestServer):
list_networks.return_value = {'networks': [{'id': 'net1_uuid'}]}
list_ports.return_value = {'ports': [{'id': 'port1_uuid'}]}
+ # Mock sdk APIs.
+ _network = mock.Mock()
+ _network.id = 'net1_uuid'
+ _port = mock.Mock()
+ _port.id = 'port1_uuid'
+ find_network = mock.Mock()
+ find_port = mock.Mock()
+ find_network.return_value = _network
+ find_port.return_value = _port
+ self.app.client_manager.network.find_network = find_network
+ self.app.client_manager.network.find_port = find_port
+
# DisplayCommandBase.take_action() returns two tuples
columns, data = self.cmd.take_action(parsed_args)
diff --git a/openstackclient/tests/network/test_common.py b/openstackclient/tests/network/test_common.py
index b30fdfcb..58586ac0 100644
--- a/openstackclient/tests/network/test_common.py
+++ b/openstackclient/tests/network/test_common.py
@@ -13,7 +13,6 @@
import mock
-from openstackclient.common import exceptions
from openstackclient.network import common
from openstackclient.tests import utils
@@ -28,45 +27,31 @@ class TestFind(utils.TestCase):
super(TestFind, self).setUp()
self.mock_client = mock.Mock()
self.list_resources = mock.Mock()
- self.mock_client.list_resources = self.list_resources
- self.matrix = {'id': ID}
+ 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 = {RESOURCES: [self.matrix]}
+ 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(fields='id', name=NAME)
+ self.list_resources.assert_called_with(NAME, ignore_missing=False)
def test_id(self):
- self.list_resources.side_effect = [{RESOURCES: []},
- {RESOURCES: [self.matrix]}]
+ 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(fields='id', id=NAME)
+ self.list_resources.assert_called_with(NAME, ignore_missing=False)
def test_nameo(self):
- self.list_resources.return_value = {RESOURCES: [self.matrix]}
+ 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(fields='id', nameo=NAME)
-
- def test_dups(self):
- dup = {'id': 'Larry'}
- self.list_resources.return_value = {RESOURCES: [self.matrix, dup]}
-
- self.assertRaises(exceptions.CommandError, common.find,
- self.mock_client, RESOURCE, RESOURCES, NAME)
-
- def test_nada(self):
- self.list_resources.side_effect = [{RESOURCES: []},
- {RESOURCES: []}]
-
- self.assertRaises(exceptions.CommandError, common.find,
- self.mock_client, RESOURCE, RESOURCES, NAME)
+ self.list_resources.assert_called_with(NAME, ignore_missing=False)
diff --git a/openstackclient/tests/network/v2/test_network.py b/openstackclient/tests/network/v2/test_network.py
index 67f44650..3dcf3811 100644
--- a/openstackclient/tests/network/v2/test_network.py
+++ b/openstackclient/tests/network/v2/test_network.py
@@ -72,7 +72,6 @@ class TestNetwork(network_fakes.TestNetworkV2):
self.api = self.app.client_manager.network.api
-@mock.patch('openstackclient.network.v2.network._make_client_sdk')
class TestCreateNetworkIdentityV3(TestNetwork):
# The new network created.
@@ -132,9 +131,7 @@ class TestCreateNetworkIdentityV3(TestNetwork):
loaded=True,
)
- def test_create_no_options(self, _make_client_sdk):
- _make_client_sdk.return_value = self.app.client_manager.network
-
+ def test_create_no_options(self):
arglist = [
self._network.name,
]
@@ -155,9 +152,7 @@ class TestCreateNetworkIdentityV3(TestNetwork):
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, data)
- def test_create_all_options(self, _make_client_sdk):
- _make_client_sdk.return_value = self.app.client_manager.network
-
+ def test_create_all_options(self):
arglist = [
"--disable",
"--share",
@@ -185,9 +180,7 @@ class TestCreateNetworkIdentityV3(TestNetwork):
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, data)
- def test_create_other_options(self, _make_client_sdk):
- _make_client_sdk.return_value = self.app.client_manager.network
-
+ def test_create_other_options(self):
arglist = [
"--enable",
"--no-share",
@@ -211,7 +204,6 @@ class TestCreateNetworkIdentityV3(TestNetwork):
self.assertEqual(self.data, data)
-@mock.patch('openstackclient.network.v2.network._make_client_sdk')
class TestCreateNetworkIdentityV2(TestNetwork):
# The new network created.
@@ -265,9 +257,7 @@ class TestCreateNetworkIdentityV2(TestNetwork):
# There is no DomainManager Mock in fake identity v2.
- def test_create_with_project_identityv2(self, _make_client_sdk):
- _make_client_sdk.return_value = self.app.client_manager.network
-
+ def test_create_with_project_identityv2(self):
arglist = [
"--project", identity_fakes_v2.project_name,
self._network.name,
@@ -290,9 +280,7 @@ class TestCreateNetworkIdentityV2(TestNetwork):
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, data)
- def test_create_with_domain_identityv2(self, _make_client_sdk):
- _make_client_sdk.return_value = self.app.client_manager.network
-
+ def test_create_with_domain_identityv2(self):
arglist = [
"--project", identity_fakes_v3.project_name,
"--project-domain", identity_fakes_v3.domain_name,
@@ -315,7 +303,6 @@ class TestCreateNetworkIdentityV2(TestNetwork):
)
-@mock.patch('openstackclient.network.v2.network._make_client_sdk')
class TestDeleteNetwork(TestNetwork):
# The network to delete.
@@ -331,9 +318,7 @@ class TestDeleteNetwork(TestNetwork):
# Get the command object to test
self.cmd = network.DeleteNetwork(self.app, self.namespace)
- def test_delete(self, _make_client_sdk):
- _make_client_sdk.return_value = self.app.client_manager.network
-
+ def test_delete(self):
arglist = [
self._network.name,
]
@@ -348,7 +333,6 @@ class TestDeleteNetwork(TestNetwork):
self.assertEqual(None, result)
-@mock.patch('openstackclient.network.v2.network._make_client_sdk')
class TestListNetwork(TestNetwork):
# The networks going to be listed up.
@@ -401,9 +385,7 @@ class TestListNetwork(TestNetwork):
self.network.networks = mock.Mock(return_value=self._network)
- def test_network_list_no_options(self, _make_client_sdk):
- _make_client_sdk.return_value = self.app.client_manager.network
-
+ def test_network_list_no_options(self):
arglist = []
verifylist = [
('external', False),
@@ -418,9 +400,7 @@ class TestListNetwork(TestNetwork):
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, list(data))
- def test_list_external(self, _make_client_sdk):
- _make_client_sdk.return_value = self.app.client_manager.network
-
+ def test_list_external(self):
arglist = [
'--external',
]
@@ -439,9 +419,7 @@ class TestListNetwork(TestNetwork):
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, list(data))
- def test_network_list_long(self, _make_client_sdk):
- _make_client_sdk.return_value = self.app.client_manager.network
-
+ def test_network_list_long(self):
arglist = [
'--long',
]
@@ -459,7 +437,6 @@ class TestListNetwork(TestNetwork):
self.assertEqual(self.data_long, list(data))
-@mock.patch('openstackclient.network.v2.network._make_client_sdk')
class TestSetNetwork(TestNetwork):
# The network to set.
@@ -475,9 +452,7 @@ class TestSetNetwork(TestNetwork):
# Get the command object to test
self.cmd = network.SetNetwork(self.app, self.namespace)
- def test_set_this(self, _make_client_sdk):
- _make_client_sdk.return_value = self.app.client_manager.network
-
+ def test_set_this(self):
self._network.is_dirty = True
arglist = [
@@ -499,9 +474,7 @@ class TestSetNetwork(TestNetwork):
self.network.update_network.assert_called_with(self._network)
self.assertEqual(None, result)
- def test_set_that(self, _make_client_sdk):
- _make_client_sdk.return_value = self.app.client_manager.network
-
+ def test_set_that(self):
self._network.is_dirty = True
arglist = [
@@ -521,9 +494,7 @@ class TestSetNetwork(TestNetwork):
self.network.update_network.assert_called_with(self._network)
self.assertEqual(None, result)
- def test_set_nothing(self, _make_client_sdk):
- _make_client_sdk.return_value = self.app.client_manager.network
-
+ def test_set_nothing(self):
self._network.is_dirty = False
arglist = [self._network.name, ]
@@ -534,7 +505,6 @@ class TestSetNetwork(TestNetwork):
parsed_args)
-@mock.patch('openstackclient.network.v2.network._make_client_sdk')
class TestShowNetwork(TestNetwork):
# The network to set.
@@ -568,9 +538,7 @@ class TestShowNetwork(TestNetwork):
# Get the command object to test
self.cmd = network.ShowNetwork(self.app, self.namespace)
- def test_show_no_options(self, _make_client_sdk):
- _make_client_sdk.return_value = self.app.client_manager.network
-
+ def test_show_no_options(self):
arglist = []
verifylist = []
@@ -580,9 +548,7 @@ class TestShowNetwork(TestNetwork):
except tests_utils.ParserException:
pass
- def test_show_all_options(self, _make_client_sdk):
- _make_client_sdk.return_value = self.app.client_manager.network
-
+ def test_show_all_options(self):
arglist = [
self._network.name,
]