Merge "Fix functest for IPv6 endpoints"

This commit is contained in:
Zuul 2017-09-30 09:14:11 +00:00 committed by Gerrit Code Review
commit 39dc227f39
1 changed files with 12 additions and 19 deletions

View File

@ -122,8 +122,7 @@ class Connection(object):
self.username = config['username']
self.password = config['password']
self.storage_host = None
self.storage_port = None
self.storage_netloc = None
self.storage_url = None
self.conn_class = None
@ -134,9 +133,8 @@ class Connection(object):
def authenticate(self, clone_conn=None):
if clone_conn:
self.conn_class = clone_conn.conn_class
self.storage_host = clone_conn.storage_host
self.storage_netloc = clone_conn.storage_netloc
self.storage_url = clone_conn.storage_url
self.storage_port = clone_conn.storage_port
self.storage_token = clone_conn.storage_token
return
@ -162,26 +160,23 @@ class Connection(object):
if not (storage_url and storage_token):
raise AuthenticationFailed()
x = storage_url.split('/')
url = urllib.parse.urlparse(storage_url)
if x[0] == 'http:':
if url.scheme == 'http':
self.conn_class = http_client.HTTPConnection
self.storage_port = 80
elif x[0] == 'https:':
elif url.scheme == 'https':
self.conn_class = http_client.HTTPSConnection
self.storage_port = 443
else:
raise ValueError('unexpected protocol %s' % (x[0]))
raise ValueError('unexpected protocol %s' % (url.scheme))
self.storage_host = x[2].split(':')[0]
if ':' in x[2]:
self.storage_port = int(x[2].split(':')[1])
self.storage_netloc = url.netloc
# Make sure storage_url is a string and not unicode, since
# keystoneclient (called by swiftclient) returns them in
# unicode and this would cause troubles when doing
# no_safe_quote query.
self.storage_url = str('/%s/%s' % (x[3], x[4]))
self.account_name = str(x[4])
x = url.path.split('/')
self.storage_url = str('/%s/%s' % (x[1], x[2]))
self.account_name = str(x[2])
self.auth_user = auth_user
# With v2 keystone, storage_token is unicode.
# We want it to be string otherwise this would cause
@ -206,8 +201,7 @@ class Connection(object):
return json.loads(self.response.read())
def http_connect(self):
self.connection = self.conn_class(self.storage_host,
port=self.storage_port)
self.connection = self.conn_class(self.storage_netloc)
# self.connection.set_debuglevel(3)
def make_path(self, path=None, cfg=None):
@ -335,8 +329,7 @@ class Connection(object):
for (x, y) in parms.items()]
path = '%s?%s' % (path, '&'.join(query_args))
self.connection = self.conn_class(self.storage_host,
port=self.storage_port)
self.connection = self.conn_class(self.storage_netloc)
# self.connection.set_debuglevel(3)
self.connection.putrequest('PUT', path)
for key, value in headers.items():