Support SSL and Insecure

Currently, Zaqarclient doesn't support SSL and insecure very well.
This patch fix it.

Implement blueprint: support-ssl-insecure

Change-Id: I2247fbbabc3afb7b5dccc2b48cd4e96864013a7e
This commit is contained in:
Fei Long Wang 2016-08-09 15:03:35 +12:00 committed by Fei Long Wang
parent 89ad44d746
commit 632ede8ef2
4 changed files with 16 additions and 4 deletions

View File

@ -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',

View File

@ -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

View File

@ -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 = {}

View File

@ -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):