Merge "Switch sahara swift to work with keystone v3"

This commit is contained in:
Zuul 2018-02-07 14:32:49 +00:00 committed by Gerrit Code Review
commit 5fde30e2ae
6 changed files with 14 additions and 34 deletions

View File

@ -55,7 +55,7 @@ def get_swift_configs():
configs = x.load_hadoop_xml_defaults('swift/resources/conf-template.xml')
for conf in configs:
if conf['name'] == HADOOP_SWIFT_AUTH_URL:
conf['value'] = su.retrieve_auth_url() + "tokens/"
conf['value'] = su.retrieve_auth_url() + "auth/tokens/"
if conf['name'] == HADOOP_SWIFT_TENANT:
conf['value'] = retrieve_tenant()
if CONF.os_region_name and conf['name'] == HADOOP_SWIFT_REGION:

View File

@ -29,14 +29,10 @@ SWIFT_URL_SUFFIX = SWIFT_URL_SUFFIX_START + 'sahara'
def retrieve_auth_url(endpoint_type="publicURL"):
"""This function returns auth url v2.0 api.
"""This function returns auth url v3 api.
Hadoop Swift library doesn't support keystone v3 api.
"""
if CONF.use_domain_for_proxy_users:
version_suffix = 'v3/auth'
else:
version_suffix = 'v2.0'
version_suffix = 'v3'
# return auth url with trailing slash
return clients_base.retrieve_auth_url(

View File

@ -120,7 +120,7 @@ class TestInternalSwift(base.SaharaTestCase):
job_binary.extra = dict(user='test', password='secret')
i_s.get_raw_data_with_context(job_binary)
self.assertEqual([mock.call(
auth_version='2.0',
auth_version='3',
cacert=None, insecure=False,
max_backoff=10,
preauthtoken='testtoken',

View File

@ -164,7 +164,7 @@ class TestSwiftType(base.SaharaTestCase):
job_binary.extra = dict(user='test', password='secret')
self.i_s.get_raw_data(job_binary, with_context=True)
self.assertEqual([mock.call(
auth_version='2.0',
auth_version='3',
cacert=None, insecure=False,
max_backoff=10,
preauthtoken='testtoken',

View File

@ -28,7 +28,7 @@ class SwiftUtilsTest(testbase.SaharaTestCase):
@mock.patch('sahara.utils.openstack.base.url_for')
def test_retrieve_auth_url(self, url_for_mock):
correct = "https://127.0.0.1:8080/v2.0/"
correct = "https://127.0.0.1:8080/v3/"
def _assert(uri):
url_for_mock.return_value = uri
@ -37,23 +37,23 @@ class SwiftUtilsTest(testbase.SaharaTestCase):
_assert("%s/" % correct)
_assert("https://127.0.0.1:8080")
_assert("https://127.0.0.1:8080/")
_assert("https://127.0.0.1:8080/v2.0")
_assert("https://127.0.0.1:8080/v2.0/")
_assert("https://127.0.0.1:8080/v3")
_assert("https://127.0.0.1:8080/v3/")
@mock.patch('sahara.utils.openstack.base.url_for')
def test_retrieve_auth_url_path_present(self, url_for_mock):
correct = "https://127.0.0.1:8080/identity/v2.0/"
correct = "https://127.0.0.1:8080/identity/v3/"
def _assert(uri):
url_for_mock.return_value = uri
self.assertEqual(correct, utils.retrieve_auth_url())
_assert("https://127.0.0.1:8080/identity")
_assert("https://127.0.0.1:8080/identity/v2.0/")
_assert("https://127.0.0.1:8080/identity/v3/")
@mock.patch('sahara.utils.openstack.base.url_for')
def test_retrieve_auth_url_without_port(self, url_for_mock):
correct = "https://127.0.0.1/v2.0/"
correct = "https://127.0.0.1/v3/"
def _assert(uri):
url_for_mock.return_value = uri
@ -62,21 +62,5 @@ class SwiftUtilsTest(testbase.SaharaTestCase):
_assert("%s/" % correct)
_assert("https://127.0.0.1")
_assert("https://127.0.0.1/")
_assert("https://127.0.0.1/v2.0")
_assert("https://127.0.0.1/v2.0/")
@mock.patch('sahara.utils.openstack.base.url_for')
def test_retrieve_auth_url_v3(self, url_for_mock):
self.override_config('use_domain_for_proxy_users', True)
correct = "https://127.0.0.1/v3/auth/"
def _assert(uri):
url_for_mock.return_value = uri
self.assertEqual(correct, utils.retrieve_auth_url())
_assert("%s/" % correct)
_assert("https://127.0.0.1/v3")
_assert("https://127.0.0.1")
_assert("https://127.0.0.1/")
_assert("https://127.0.0.1/v2.0")
_assert("https://127.0.0.1/v2.0/")
_assert("https://127.0.0.1/v3/")

View File

@ -63,7 +63,7 @@ def client(username, password, trust_id=None):
return client_from_token(k.token_from_auth(proxyauth))
else:
return swiftclient.Connection(
auth_version='2.0',
auth_version='3',
cacert=CONF.swift.ca_file,
insecure=CONF.swift.api_insecure,
authurl=su.retrieve_auth_url(CONF.keystone.endpoint_type),
@ -80,7 +80,7 @@ def client_from_token(token=None):
if not token:
token = context.get_auth_token()
'''return a Swift client authenticated from a token.'''
return swiftclient.Connection(auth_version='2.0',
return swiftclient.Connection(auth_version='3',
cacert=CONF.swift.ca_file,
insecure=CONF.swift.api_insecure,
preauthurl=base.url_for(