diff --git a/ceilometerclient/common/http.py b/ceilometerclient/common/http.py index bb650b48..cd940a12 100644 --- a/ceilometerclient/common/http.py +++ b/ceilometerclient/common/http.py @@ -31,9 +31,9 @@ except ImportError: import six from six.moves import http_client as httplib # noqa +from six.moves.urllib import parse from ceilometerclient import exc -from ceilometerclient.openstack.common.py3kcompat import urlutils LOG = logging.getLogger(__name__) @@ -51,7 +51,7 @@ class HTTPClient(object): @staticmethod def get_connection_params(endpoint, **kwargs): - parts = urlutils.urlparse(endpoint) + parts = parse.urlparse(endpoint) _args = (parts.hostname, parts.port, parts.path) _kwargs = {'timeout': (float(kwargs.get('timeout')) @@ -75,7 +75,7 @@ class HTTPClient(object): _class = self.connection_params[0] try: if self.proxy_url: - proxy_parts = urlutils.urlparse(self.proxy_url) + proxy_parts = parse.urlparse(self.proxy_url) return _class(proxy_parts.hostname, proxy_parts.port, **self.connection_params[2]) else: @@ -212,7 +212,7 @@ class HTTPClient(object): return self._http_request(url, method, **kwargs) def get_proxy_url(self): - scheme = urlutils.urlparse(self.endpoint).scheme + scheme = parse.urlparse(self.endpoint).scheme if scheme == 'https': return os.environ.get('https_proxy') elif scheme == 'http': diff --git a/ceilometerclient/openstack/common/apiclient/base.py b/ceilometerclient/openstack/common/apiclient/base.py index 1920b861..f8531f82 100644 --- a/ceilometerclient/openstack/common/apiclient/base.py +++ b/ceilometerclient/openstack/common/apiclient/base.py @@ -26,9 +26,9 @@ Base utilities to build API operation managers and objects on top of. import abc import six +from six.moves.urllib import parse from ceilometerclient.openstack.common.apiclient import exceptions -from ceilometerclient.openstack.common.py3kcompat import urlutils from ceilometerclient.openstack.common import strutils @@ -327,7 +327,7 @@ class CrudManager(BaseManager): return self._list( '%(base_url)s%(query)s' % { 'base_url': self.build_url(base_url=base_url, **kwargs), - 'query': '?%s' % urlutils.urlencode(kwargs) if kwargs else '', + 'query': '?%s' % parse.urlencode(kwargs) if kwargs else '', }, self.collection_key) @@ -366,7 +366,7 @@ class CrudManager(BaseManager): rl = self._list( '%(base_url)s%(query)s' % { 'base_url': self.build_url(base_url=base_url, **kwargs), - 'query': '?%s' % urlutils.urlencode(kwargs) if kwargs else '', + 'query': '?%s' % parse.urlencode(kwargs) if kwargs else '', }, self.collection_key) num = len(rl) diff --git a/ceilometerclient/openstack/common/apiclient/fake_client.py b/ceilometerclient/openstack/common/apiclient/fake_client.py index 2e816e9d..e99947b8 100644 --- a/ceilometerclient/openstack/common/apiclient/fake_client.py +++ b/ceilometerclient/openstack/common/apiclient/fake_client.py @@ -28,9 +28,9 @@ import json import requests import six +from six.moves.urllib import parse from ceilometerclient.openstack.common.apiclient import client -from ceilometerclient.openstack.common.py3kcompat import urlutils def assert_has_keys(dct, required=[], optional=[]): @@ -147,7 +147,7 @@ class FakeHTTPClient(client.HTTPClient): "text": fixture[1]}) # 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/ceilometerclient/openstack/common/py3kcompat/__init__.py b/ceilometerclient/openstack/common/py3kcompat/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/ceilometerclient/openstack/common/py3kcompat/urlutils.py b/ceilometerclient/openstack/common/py3kcompat/urlutils.py deleted file mode 100644 index 6200271f..00000000 --- a/ceilometerclient/openstack/common/py3kcompat/urlutils.py +++ /dev/null @@ -1,65 +0,0 @@ -# -# Copyright 2013 Canonical Ltd. -# All Rights Reserved. -# -# 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. -# - -""" -Python2/Python3 compatibility layer for OpenStack -""" - -import six - -if six.PY3: - # python3 - import urllib.error - import urllib.parse - import urllib.request - - urlencode = urllib.parse.urlencode - urljoin = urllib.parse.urljoin - quote = urllib.parse.quote - parse_qsl = urllib.parse.parse_qsl - unquote = urllib.parse.unquote - unquote_plus = urllib.parse.unquote_plus - urlparse = urllib.parse.urlparse - urlsplit = urllib.parse.urlsplit - urlunsplit = urllib.parse.urlunsplit - SplitResult = urllib.parse.SplitResult - - urlopen = urllib.request.urlopen - URLError = urllib.error.URLError - pathname2url = urllib.request.pathname2url -else: - # python2 - import urllib - import urllib2 - import urlparse - - urlencode = urllib.urlencode - quote = urllib.quote - unquote = urllib.unquote - unquote_plus = urllib.unquote_plus - - parse = urlparse - parse_qsl = parse.parse_qsl - urljoin = parse.urljoin - urlparse = parse.urlparse - urlsplit = parse.urlsplit - urlunsplit = parse.urlunsplit - SplitResult = parse.SplitResult - - urlopen = urllib2.urlopen - URLError = urllib2.URLError - pathname2url = urllib.pathname2url diff --git a/ceilometerclient/v2/options.py b/ceilometerclient/v2/options.py index 0e057d09..6649971e 100644 --- a/ceilometerclient/v2/options.py +++ b/ceilometerclient/v2/options.py @@ -11,9 +11,10 @@ # License for the specific language governing permissions and limitations # under the License. -from ceilometerclient.openstack.common.py3kcompat import urlutils import re +from six.moves.urllib import parse + def build_url(path, q, params=None): '''This converts from a list of dicts and a list of params to @@ -38,7 +39,7 @@ def build_url(path, q, params=None): # Transform the dict to a sequence of two-element tuples in fixed # order, then the encoded string will be consistent in Python 2&3. new_qparams = sorted(query_params.items(), key=lambda x: x[0]) - path += "?" + urlutils.urlencode(new_qparams, doseq=True) + path += "?" + parse.urlencode(new_qparams, doseq=True) if params: for p in params: diff --git a/openstack-common.conf b/openstack-common.conf index fcbc05e4..34b51964 100644 --- a/openstack-common.conf +++ b/openstack-common.conf @@ -4,7 +4,6 @@ module=cliutils module=importutils module=install_venv_common -module=py3kcompat # The base module to hold the copy of openstack.common base=ceilometerclient