diff --git a/tests/unit/transport/test_http.py b/tests/unit/transport/test_http.py index 6f9b079b..dea50a50 100644 --- a/tests/unit/transport/test_http.py +++ b/tests/unit/transport/test_http.py @@ -57,7 +57,9 @@ class TestHttpTransport(base.TestBase): request_method.assert_called_with('GET', url=final_url, params=final_params, headers=final_headers, - data=None) + data=None, + verify=True, + cert=None) def test_send_without_api(self): params = {'name': 'Test', @@ -79,7 +81,9 @@ class TestHttpTransport(base.TestBase): request_method.assert_called_with('GET', url=final_url, params=params, headers=final_headers, - data=None) + data=None, + verify=True, + cert=None) def test_error_handling(self): params = {'name': 'Opportunity', diff --git a/zaqarclient/auth/keystone.py b/zaqarclient/auth/keystone.py index f23fb149..0adc43b9 100644 --- a/zaqarclient/auth/keystone.py +++ b/zaqarclient/auth/keystone.py @@ -203,4 +203,8 @@ class KeystoneAuth(base.AuthBackend): # NOTE(flaper87): Update the request spec # with the final token. request.headers['X-Auth-Token'] = token + # NOTE(flwang): We also need to apply the insecure and cacert when + # talking with Zaqar server. + request.verify = not get_options('insecure') + request.cert = get_options('cacert') return request diff --git a/zaqarclient/transport/http.py b/zaqarclient/transport/http.py index 0c61662a..eae3fa95 100644 --- a/zaqarclient/transport/http.py +++ b/zaqarclient/transport/http.py @@ -86,7 +86,9 @@ class HttpTransport(base.Transport): url=url, params=request.params, headers=headers, - data=request.content) + data=request.content, + verify=request.verify, + cert=request.cert) if resp.status_code in self.http_to_zaqar: kwargs = {} diff --git a/zaqarclient/transport/request.py b/zaqarclient/transport/request.py index 1919273e..28e3b39b 100644 --- a/zaqarclient/transport/request.py +++ b/zaqarclient/transport/request.py @@ -90,7 +90,7 @@ class Request(object): def __init__(self, endpoint='', operation='', ref='', content=None, params=None, - headers=None, api=None): + headers=None, api=None, verify=True, cert=None): self._api = None # ensure that some values like "v1.0" could work as "v1" @@ -106,6 +106,8 @@ class Request(object): self.content = content self.params = params or {} self.headers = headers or {} + self.verify = verify + self.cert = cert @property def api(self):