diff options
| author | Tang Chen <tangchen@cn.fujitsu.com> | 2015-12-04 16:30:10 +0800 |
|---|---|---|
| committer | Tang Chen <tangchen@cn.fujitsu.com> | 2015-12-09 09:30:29 +0800 |
| commit | 4be716eb27752d715ea1140b76e4a03907edd87f (patch) | |
| tree | 06284f23536f14b236b1b21fc9a17bd48df36ec2 /openstackclient/network | |
| parent | 2a2cb4f75d4b83ac821df0d3da0046d24ca5eee0 (diff) | |
| download | python-openstackclient-4be716eb27752d715ea1140b76e4a03907edd87f.tar.gz | |
Migrate network client to SDK.
The previous patches have migrate all network commands to
the new version using sdk. This patch will remove the
temporary method, and implement a new make_client() to
create sdk network client.
And also, find() in openstackclient/network/common.py must
support sdk. The logic of this function will become much
easier than before, so this patch also removes two useless
test cases of find().
This patch will also remove the patched methods in tests.
Change-Id: Ic2f7bca073beb9757172d16f95d9b82c48cbbc12
Implements: blueprint neutron-client
Co-Authored-By: Terry Howe <terrylhowe@gmail.com>
Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
Diffstat (limited to 'openstackclient/network')
| -rw-r--r-- | openstackclient/network/client.py | 62 | ||||
| -rw-r--r-- | openstackclient/network/common.py | 24 | ||||
| -rw-r--r-- | openstackclient/network/v2/network.py | 18 |
3 files changed, 13 insertions, 91 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()) |
