From d44e5986925d3129ca0d34599109ad2019295362 Mon Sep 17 00:00:00 2001 From: Eric Guo <eric.guo@easystack.cn> Date: Fri, 14 Feb 2014 08:43:12 +0800 Subject: [PATCH] Remove usage of module py3kcompat Module py3kcompat was removed from oslo-incubator. We need remove its usage in client side firstly. This make us move smoothly when sync oslo-incubator code. Change-Id: I8b07c32c9852e747579a23685f3c8a07ac13ec01 Partial-Bug: #1280033 --- novaclient/client.py | 7 ++++--- novaclient/tests/v1_1/fakes.py | 4 ++-- novaclient/v1_1/contrib/migrations.py | 5 +++-- novaclient/v1_1/flavors.py | 5 +++-- novaclient/v1_1/floating_ip_dns.py | 7 ++++--- novaclient/v1_1/hypervisors.py | 5 +++-- novaclient/v1_1/images.py | 6 ++++-- novaclient/v1_1/limits.py | 5 +++-- novaclient/v1_1/security_groups.py | 4 ++-- novaclient/v1_1/servers.py | 4 ++-- novaclient/v1_1/volumes.py | 4 ++-- novaclient/v3/hypervisors.py | 5 +++-- novaclient/v3/images.py | 6 ++++-- novaclient/v3/servers.py | 4 ++-- 14 files changed, 41 insertions(+), 30 deletions(-) diff --git a/novaclient/client.py b/novaclient/client.py index 8ec471cf9..bab36301b 100644 --- a/novaclient/client.py +++ b/novaclient/client.py @@ -30,9 +30,10 @@ try: except ImportError: import simplejson as json +from six.moves.urllib import parse + from novaclient import exceptions from novaclient.openstack.common.gettextutils import _ -from novaclient.openstack.common.py3kcompat import urlutils from novaclient import service_catalog from novaclient import utils @@ -325,7 +326,7 @@ class HTTPClient(object): extract_token=False) def authenticate(self): - magic_tuple = urlutils.urlsplit(self.auth_url) + magic_tuple = parse.urlsplit(self.auth_url) scheme, netloc, path, query, frag = magic_tuple port = magic_tuple.port if port is None: @@ -343,7 +344,7 @@ class HTTPClient(object): # TODO(sandy): Assume admin endpoint is 35357 for now. # Ideally this is going to have to be provided by the service catalog. new_netloc = netloc.replace(':%d' % port, ':%d' % (35357,)) - admin_url = urlutils.urlunsplit( + admin_url = parse.urlunsplit( (scheme, new_netloc, path, query, frag)) auth_url = self.auth_url diff --git a/novaclient/tests/v1_1/fakes.py b/novaclient/tests/v1_1/fakes.py index 3604312b3..44330550d 100644 --- a/novaclient/tests/v1_1/fakes.py +++ b/novaclient/tests/v1_1/fakes.py @@ -17,10 +17,10 @@ from datetime import datetime import six +from six.moves.urllib import parse from novaclient import client as base_client from novaclient import exceptions -from novaclient.openstack.common.py3kcompat import urlutils from novaclient.openstack.common import strutils from novaclient.tests import fakes from novaclient.tests import utils @@ -64,7 +64,7 @@ class FakeHTTPClient(base_client.HTTPClient): assert 'body' in kwargs # Call the method - args = urlutils.parse_qsl(urlutils.urlparse(url)[4]) + args = parse.parse_qsl(parse.urlparse(url)[4]) kwargs.update(args) munged_url = url.rsplit('?', 1)[0] munged_url = munged_url.strip('/').replace('/', '_').replace('.', '_') diff --git a/novaclient/v1_1/contrib/migrations.py b/novaclient/v1_1/contrib/migrations.py index 507ebc9eb..16be844ab 100644 --- a/novaclient/v1_1/contrib/migrations.py +++ b/novaclient/v1_1/contrib/migrations.py @@ -14,9 +14,10 @@ migration interface """ +from six.moves.urllib import parse + from novaclient import base from novaclient.openstack.common.gettextutils import _ -from novaclient.openstack.common.py3kcompat import urlutils from novaclient import utils @@ -47,7 +48,7 @@ class MigrationManager(base.ManagerWithFind): # order, then the encoded string will be consistent in Python 2&3. new_opts = sorted(opts.items(), key=lambda x: x[0]) - query_string = "?%s" % urlutils.urlencode(new_opts) if new_opts else "" + query_string = "?%s" % parse.urlencode(new_opts) if new_opts else "" return self._list("/os-migrations%s" % query_string, "migrations") diff --git a/novaclient/v1_1/flavors.py b/novaclient/v1_1/flavors.py index 8aa875ff0..c47c47633 100644 --- a/novaclient/v1_1/flavors.py +++ b/novaclient/v1_1/flavors.py @@ -16,10 +16,11 @@ Flavor interface. """ +from six.moves.urllib import parse + from novaclient import base from novaclient import exceptions from novaclient.openstack.common.gettextutils import _ -from novaclient.openstack.common.py3kcompat import urlutils from novaclient.openstack.common import strutils from novaclient import utils @@ -112,7 +113,7 @@ class FlavorManager(base.ManagerWithFind): # and flavors from their own projects only. if not is_public: qparams['is_public'] = is_public - query_string = "?%s" % urlutils.urlencode(qparams) if qparams else "" + query_string = "?%s" % parse.urlencode(qparams) if qparams else "" detail = "" if detailed: diff --git a/novaclient/v1_1/floating_ip_dns.py b/novaclient/v1_1/floating_ip_dns.py index a5dfcb8d9..449c7e11e 100644 --- a/novaclient/v1_1/floating_ip_dns.py +++ b/novaclient/v1_1/floating_ip_dns.py @@ -13,8 +13,9 @@ # License for the specific language governing permissions and limitations # under the License. +from six.moves.urllib import parse + from novaclient import base -from novaclient.openstack.common.py3kcompat import urlutils def _quote_domain(domain): @@ -24,7 +25,7 @@ def _quote_domain(domain): but Routes tends to choke on them, so we need an extra level of by-hand quoting here. """ - return urlutils.quote(domain.replace('.', '%2E')) + return parse.quote(domain.replace('.', '%2E')) class FloatingIPDNSDomain(base.Resource): @@ -101,7 +102,7 @@ class FloatingIPDNSEntryManager(base.Manager): def get_for_ip(self, domain, ip): """Return a list of entries for the given domain and ip or name.""" qparams = {'ip': ip} - params = "?%s" % urlutils.urlencode(qparams) + params = "?%s" % parse.urlencode(qparams) return self._list("/os-floating-ip-dns/%s/entries%s" % (_quote_domain(domain), params), diff --git a/novaclient/v1_1/hypervisors.py b/novaclient/v1_1/hypervisors.py index fae04026a..4a4f2b93a 100644 --- a/novaclient/v1_1/hypervisors.py +++ b/novaclient/v1_1/hypervisors.py @@ -17,8 +17,9 @@ Hypervisors interface (1.1 extension). """ +from six.moves.urllib import parse + from novaclient import base -from novaclient.openstack.common.py3kcompat import urlutils class Hypervisor(base.Resource): @@ -48,7 +49,7 @@ class HypervisorManager(base.ManagerWithFind): """ target = 'servers' if servers else 'search' url = ('/os-hypervisors/%s/%s' % - (urlutils.quote(hypervisor_match, safe=''), target)) + (parse.quote(hypervisor_match, safe=''), target)) return self._list(url, 'hypervisors') def get(self, hypervisor): diff --git a/novaclient/v1_1/images.py b/novaclient/v1_1/images.py index ba6820b64..f355b894f 100644 --- a/novaclient/v1_1/images.py +++ b/novaclient/v1_1/images.py @@ -15,8 +15,10 @@ """ Image interface. """ + +from six.moves.urllib import parse + from novaclient import base -from novaclient.openstack.common.py3kcompat import urlutils class Image(base.Resource): @@ -63,7 +65,7 @@ class ImageManager(base.ManagerWithFind): detail = '/detail' if limit: params['limit'] = int(limit) - query = '?%s' % urlutils.urlencode(params) if params else '' + query = '?%s' % parse.urlencode(params) if params else '' return self._list('/images%s%s' % (detail, query), 'images') def delete(self, image): diff --git a/novaclient/v1_1/limits.py b/novaclient/v1_1/limits.py index 4ea80a053..46d77def8 100644 --- a/novaclient/v1_1/limits.py +++ b/novaclient/v1_1/limits.py @@ -12,8 +12,9 @@ # License for the specific language governing permissions and limitations # under the License. +from six.moves.urllib import parse + from novaclient import base -from novaclient.openstack.common.py3kcompat import urlutils class Limits(base.Resource): @@ -94,6 +95,6 @@ class LimitsManager(base.Manager): opts['reserved'] = 1 if tenant_id: opts['tenant_id'] = tenant_id - query_string = "?%s" % urlutils.urlencode(opts) if opts else "" + query_string = "?%s" % parse.urlencode(opts) if opts else "" return self._get("/limits%s" % query_string, "limits") diff --git a/novaclient/v1_1/security_groups.py b/novaclient/v1_1/security_groups.py index 00e1b48f0..40d1e7ff7 100644 --- a/novaclient/v1_1/security_groups.py +++ b/novaclient/v1_1/security_groups.py @@ -18,9 +18,9 @@ Security group interface (1.1 extension). """ import six +from six.moves.urllib import parse from novaclient import base -from novaclient.openstack.common.py3kcompat import urlutils class SecurityGroup(base.Resource): @@ -90,7 +90,7 @@ class SecurityGroupManager(base.ManagerWithFind): qparams = dict((k, v) for (k, v) in six.iteritems(search_opts) if v) - query_string = '?%s' % urlutils.urlencode(qparams) if qparams else '' + query_string = '?%s' % parse.urlencode(qparams) if qparams else '' return self._list('/os-security-groups%s' % query_string, 'security_groups') diff --git a/novaclient/v1_1/servers.py b/novaclient/v1_1/servers.py index 0ae5d1663..cf284d94b 100644 --- a/novaclient/v1_1/servers.py +++ b/novaclient/v1_1/servers.py @@ -22,10 +22,10 @@ Server interface. import base64 import six +from six.moves.urllib import parse from novaclient import base from novaclient import crypto -from novaclient.openstack.common.py3kcompat import urlutils from novaclient.openstack.common import strutils from novaclient.v1_1.security_groups import SecurityGroup @@ -573,7 +573,7 @@ class ServerManager(base.BootingManagerWithFind): # order, then the encoded string will be consistent in Python 2&3. if qparams: new_qparams = sorted(qparams.items(), key=lambda x: x[0]) - query_string = "?%s" % urlutils.urlencode(new_qparams) + query_string = "?%s" % parse.urlencode(new_qparams) else: query_string = "" diff --git a/novaclient/v1_1/volumes.py b/novaclient/v1_1/volumes.py index 1c4792015..77746dd30 100644 --- a/novaclient/v1_1/volumes.py +++ b/novaclient/v1_1/volumes.py @@ -18,9 +18,9 @@ Volume interface (1.1 extension). """ import six +from six.moves.urllib import parse from novaclient import base -from novaclient.openstack.common.py3kcompat import urlutils class Volume(base.Resource): @@ -89,7 +89,7 @@ class VolumeManager(base.ManagerWithFind): qparams = dict((k, v) for (k, v) in six.iteritems(search_opts) if v) - query_string = '?%s' % urlutils.urlencode(qparams) if qparams else '' + query_string = '?%s' % parse.urlencode(qparams) if qparams else '' if detailed is True: return self._list("/volumes/detail%s" % query_string, "volumes") diff --git a/novaclient/v3/hypervisors.py b/novaclient/v3/hypervisors.py index 0542895fb..b04a60080 100644 --- a/novaclient/v3/hypervisors.py +++ b/novaclient/v3/hypervisors.py @@ -17,7 +17,8 @@ Hypervisors interface """ -from novaclient.openstack.common.py3kcompat import urlutils +from six.moves.urllib import parse + from novaclient.v1_1 import hypervisors @@ -35,7 +36,7 @@ class HypervisorManager(hypervisors.HypervisorManager): :param servers: If True, server information is also retrieved. """ url = ('/os-hypervisors/search?query=%s' % - urlutils.quote(hypervisor_match, safe='')) + parse.quote(hypervisor_match, safe='')) return self._list(url, 'hypervisors') def servers(self, hypervisor): diff --git a/novaclient/v3/images.py b/novaclient/v3/images.py index 2e1b34aa8..b78d9af55 100644 --- a/novaclient/v3/images.py +++ b/novaclient/v3/images.py @@ -16,8 +16,10 @@ """ Image interface. """ + +from six.moves.urllib import parse + from novaclient import base -from novaclient.openstack.common.py3kcompat import urlutils from novaclient.openstack.common import strutils @@ -100,5 +102,5 @@ class ImageManager(base.ManagerWithFind): detail = '/detail' if limit: params['limit'] = int(limit) - query = '?%s' % urlutils.urlencode(params) if params else '' + query = '?%s' % parse.urlencode(params) if params else '' return self._list('/v1/images%s%s' % (detail, query), 'images') diff --git a/novaclient/v3/servers.py b/novaclient/v3/servers.py index b097ffe65..d8ebd0a13 100644 --- a/novaclient/v3/servers.py +++ b/novaclient/v3/servers.py @@ -22,10 +22,10 @@ Server interface. import base64 import six +from six.moves.urllib import parse from novaclient import base from novaclient import crypto -from novaclient.openstack.common.py3kcompat import urlutils from novaclient.openstack.common import strutils REBOOT_SOFT, REBOOT_HARD = 'SOFT', 'HARD' @@ -507,7 +507,7 @@ class ServerManager(base.BootingManagerWithFind): # order, then the encoded string will be consistent in Python 2&3. if qparams: new_qparams = sorted(qparams.items(), key=lambda x: x[0]) - query_string = "?%s" % urlutils.urlencode(new_qparams) + query_string = "?%s" % parse.urlencode(new_qparams) else: query_string = ""