From ff3060c067bb2a860642a1c2e01ef151df8c5243 Mon Sep 17 00:00:00 2001 From: Diego Parrilla Date: Fri, 21 Sep 2012 00:51:20 +0200 Subject: [PATCH] Use full URI path from Glance endpoint in HTTP requests Fixes bug 1052846 Now the connection uses host, port and path to connect to Glance. So proxied connections to Glance are allowed. Change-Id: I53a890e6532adb8168961d1d09f938bf439e895c --- glanceclient/common/http.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/glanceclient/common/http.py b/glanceclient/common/http.py index 4a6ce539..6361651a 100644 --- a/glanceclient/common/http.py +++ b/glanceclient/common/http.py @@ -57,7 +57,7 @@ class HTTPClient(object): def get_connection_params(endpoint, **kwargs): parts = urlparse.urlparse(endpoint) - _args = (parts.hostname, parts.port) + _args = (parts.hostname, parts.port, parts.path) _kwargs = {'timeout': float(kwargs.get('timeout', 600))} if parts.scheme == 'https': @@ -134,7 +134,9 @@ class HTTPClient(object): conn = self.get_connection() try: - conn.request(method, url, **kwargs) + conn_params = self.connection_params[1][2] + conn_url = os.path.normpath('%s/%s' % (conn_params, url)) + conn.request(method, conn_url, **kwargs) resp = conn.getresponse() except socket.gaierror as e: message = "Error finding address for %(url)s: %(e)s" % locals()