diff --git a/ironic_inspector/common/swift.py b/ironic_inspector/common/swift.py index 4ed753ef5..547a2d22d 100644 --- a/ironic_inspector/common/swift.py +++ b/ironic_inspector/common/swift.py @@ -16,7 +16,6 @@ import json from oslo_config import cfg -import six from swiftclient import client as swift_client from swiftclient import exceptions as swift_exceptions @@ -79,30 +78,8 @@ class SwiftAPI(object): global SWIFT_SESSION if not SWIFT_SESSION: SWIFT_SESSION = keystone.get_session(SWIFT_GROUP) - # TODO(pas-ha): swiftclient does not support keystone sessions ATM. - # Must be reworked when LP bug #1518938 is fixed. - swift_url = SWIFT_SESSION.get_endpoint( - service_type=CONF.swift.os_service_type, - endpoint_type=CONF.swift.os_endpoint_type, - region_name=CONF.swift.os_region - ) - token = SWIFT_SESSION.get_token() - params = dict(retries=CONF.swift.max_retries, - preauthurl=swift_url, - preauthtoken=token) - # NOTE(pas-ha):session.verify is for HTTPS urls and can be - # - False (do not verify) - # - True (verify but try to locate system CA certificates) - # - Path (verify using specific CA certificate) - # This is normally handled inside the Session instance, - # but swiftclient still does not support sessions, - # so we need to reconstruct these options from Session here. - verify = SWIFT_SESSION.verify - params['insecure'] = not verify - if verify and isinstance(verify, six.string_types): - params['cacert'] = verify - self.connection = swift_client.Connection(**params) + self.connection = swift_client.Connection(session=SWIFT_SESSION) def create_object(self, object, data, container=CONF.swift.container, headers=None): diff --git a/ironic_inspector/test/unit/test_swift.py b/ironic_inspector/test/unit/test_swift.py index c8c0668fb..03bc13ef3 100644 --- a/ironic_inspector/test/unit/test_swift.py +++ b/ironic_inspector/test/unit/test_swift.py @@ -64,23 +64,9 @@ class SwiftTestCase(BaseTest): self.addCleanup(swift.reset_swift_session) def test___init__(self, connection_mock, load_mock, opts_mock): - swift_url = 'http://swiftapi' - token = 'secret_token' - mock_sess = mock.Mock() - mock_sess.get_token.return_value = token - mock_sess.get_endpoint.return_value = swift_url - mock_sess.verify = False - load_mock.return_value = mock_sess swift.SwiftAPI() - params = {'retries': 2, - 'preauthurl': swift_url, - 'preauthtoken': token, - 'insecure': True} - connection_mock.assert_called_once_with(**params) - mock_sess.get_endpoint.assert_called_once_with( - service_type='object-store', - endpoint_type='internalURL', - region_name='somewhere') + connection_mock.assert_called_once_with( + session=load_mock.return_value) def test_create_object(self, connection_mock, load_mock, opts_mock): swiftapi = swift.SwiftAPI()