summaryrefslogtreecommitdiff
path: root/openstackclient/network
diff options
context:
space:
mode:
authorTang Chen <tangchen@cn.fujitsu.com>2015-12-04 16:30:10 +0800
committerTang Chen <tangchen@cn.fujitsu.com>2015-12-09 09:30:29 +0800
commit4be716eb27752d715ea1140b76e4a03907edd87f (patch)
tree06284f23536f14b236b1b21fc9a17bd48df36ec2 /openstackclient/network
parent2a2cb4f75d4b83ac821df0d3da0046d24ca5eee0 (diff)
downloadpython-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.py62
-rw-r--r--openstackclient/network/common.py24
-rw-r--r--openstackclient/network/v2/network.py18
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())