diff options
author | Zhi Yan Liu <zhiyanl@cn.ibm.com> | 2014-08-06 21:08:52 +0800 |
---|---|---|
committer | Zhi Yan Liu <zhiyanl@cn.ibm.com> | 2014-08-07 13:04:25 +0800 |
commit | 867e4cae27afbd7e21d37a79e77f2787b061ec03 (patch) | |
tree | ac32d552aa630fefaa92683c8214f6e735aa3f14 | |
parent | d833006bd4c2430d286905bc3a22004754739c98 (diff) | |
download | python-glanceclient-867e4cae27afbd7e21d37a79e77f2787b061ec03.tar.gz |
Normalize glanceclient requested service url
Some proxy or gateway softwares, e.g. jumpgate [0], use url-pattern
based approach to match which hanlding logic needs to be triggered for
particular service calling when it received a http(s) call as a
middleman. The change fixed an issue which caused glanceclient send out
the request to a dis-normal url, which contains duplicated "/".
The change removed a wrong and duplicated code snippet from curl logging
function as well.
[0] http://goo.gl/yt52X1
Change-Id: Ic8b3920e11d400771ead7f9c44b615f10b4a5cef
Signed-off-by: Zhi Yan Liu <zhiyanl@cn.ibm.com>
-rw-r--r-- | glanceclient/common/http.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/glanceclient/common/http.py b/glanceclient/common/http.py index ad8e4c7..874f2f4 100644 --- a/glanceclient/common/http.py +++ b/glanceclient/common/http.py @@ -97,8 +97,6 @@ class HTTPClient(object): if data and isinstance(data, six.string_types): curl.append('-d \'%s\'' % data) - if "//:" not in url: - url = '%s%s' % (self.endpoint, url) curl.append(url) LOG.debug(strutils.safe_encode(' '.join(curl), errors='ignore')) @@ -168,7 +166,10 @@ class HTTPClient(object): headers = self.encode_headers(headers) try: - conn_url = "%s/%s" % (self.endpoint, url) + if self.endpoint.endswith("/") or url.startswith("/"): + conn_url = "%s%s" % (self.endpoint, url) + else: + conn_url = "%s/%s" % (self.endpoint, url) self.log_curl_request(method, conn_url, headers, data, kwargs) resp = self.session.request(method, conn_url, |