Support verify and cert in cgtsclient upload cmd
Cgtsclient uses post method of request module to upload files and does not use, verify and cert options of post method. This cause failure when doing insecure upload like in license-install command. This change updates cgtsclient to use verify and cert options of post method, when using upload commands. Test Plan: PASS: Verify upload with SessionClient using verify & cert options PASS: Verify upload with HTTPClient using verify & cert options PASS: Verify insecure, ca-file, cert-file & key-file in cgtsclient Closes-Bug: 2067447 Change-Id: Icb9aca3d69ddd2e8b7882f0ce6907f18feccd28e Signed-off-by: Joseph Vazhappilly <joseph.vazhappillypaily@windriver.com>
This commit is contained in:
@@ -139,7 +139,11 @@ def get_client(api_version, session=None, service_type=SERVICE_TYPE, **kwargs):
|
||||
'region_name': kwargs.get('os_region_name'),
|
||||
'endpoint_override': endpoint,
|
||||
'global_request_id': kwargs.get('global_request_id'),
|
||||
'user_agent': kwargs.get('user_agent', 'cgtsclient')
|
||||
'user_agent': kwargs.get('user_agent', 'cgtsclient'),
|
||||
'insecure': kwargs.get('insecure'),
|
||||
'ca_file': kwargs.get('ca_file'),
|
||||
'cert_file': kwargs.get('cert_file'),
|
||||
'key_file': kwargs.get('key_file')
|
||||
}
|
||||
else:
|
||||
# This will become a httplib2 object
|
||||
|
||||
@@ -162,6 +162,11 @@ class SessionClient(adapter.LegacyJsonAdapter):
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.user_agent = USER_AGENT
|
||||
self.api_version = DEFAULT_API_VERSION
|
||||
self.insecure = kwargs.pop('insecure', None)
|
||||
self.ca_file = kwargs.pop('ca_file', None)
|
||||
self.cert_file = kwargs.pop('cert_file', None)
|
||||
self.key_file = kwargs.pop('key_file', None)
|
||||
|
||||
super(SessionClient, self).__init__(*args, **kwargs)
|
||||
|
||||
def _http_request(self, url, method, **kwargs):
|
||||
@@ -244,8 +249,15 @@ class SessionClient(adapter.LegacyJsonAdapter):
|
||||
kwargs['body'],
|
||||
)}
|
||||
data = kwargs.get('data')
|
||||
if self.insecure:
|
||||
verify = False
|
||||
else:
|
||||
verify = self.ca_file or True
|
||||
cert = self.cert_file
|
||||
if cert and self.key_file:
|
||||
cert = (cert, self.key_file)
|
||||
req = requests.post(requests_url, headers=headers, files=files,
|
||||
data=data)
|
||||
verify=verify, cert=cert, data=data)
|
||||
return req.json()
|
||||
|
||||
def upload_request_with_multipart(self, method, url, **kwargs):
|
||||
@@ -261,7 +273,15 @@ class SessionClient(adapter.LegacyJsonAdapter):
|
||||
enc = MultipartEncoder(fields)
|
||||
headers = {'Content-Type': enc.content_type,
|
||||
"X-Auth-Token": self.session.get_token()}
|
||||
response = requests.post(requests_url, data=enc, headers=headers)
|
||||
if self.insecure:
|
||||
verify = False
|
||||
else:
|
||||
verify = self.ca_file or True
|
||||
cert = self.cert_file
|
||||
if cert and self.key_file:
|
||||
cert = (cert, self.key_file)
|
||||
response = requests.post(requests_url, data=enc,
|
||||
verify=verify, cert=cert, headers=headers)
|
||||
|
||||
if kwargs.get('check_exceptions'):
|
||||
if response.status_code != 200:
|
||||
@@ -312,6 +332,9 @@ class HTTPClient(httplib2.Http):
|
||||
|
||||
# httplib2 overrides
|
||||
self.disable_ssl_certificate_validation = insecure
|
||||
self.ca_file = kwargs.get('ca_file', None)
|
||||
self.cert_file = kwargs.get('cert_file', None)
|
||||
self.key_file = kwargs.get('key_file', None)
|
||||
|
||||
self.service_catalog = None
|
||||
|
||||
@@ -483,8 +506,16 @@ class HTTPClient(httplib2.Http):
|
||||
kwargs['body'],
|
||||
)}
|
||||
data = kwargs.get('data')
|
||||
if self.disable_ssl_certificate_validation:
|
||||
verify = False
|
||||
else:
|
||||
verify = self.ca_file or True
|
||||
cert = self.cert_file
|
||||
if cert and self.key_file:
|
||||
cert = (cert, self.key_file)
|
||||
req = requests.post(connection_url, headers=headers,
|
||||
files=files, data=data,
|
||||
verify=verify, cert=cert,
|
||||
timeout=UPLOAD_REQUEST_TIMEOUT)
|
||||
return req.json()
|
||||
|
||||
@@ -502,9 +533,17 @@ class HTTPClient(httplib2.Http):
|
||||
enc = MultipartEncoder(fields)
|
||||
headers = {'Content-Type': enc.content_type,
|
||||
"X-Auth-Token": self.auth_token}
|
||||
if self.disable_ssl_certificate_validation:
|
||||
verify = False
|
||||
else:
|
||||
verify = self.ca_file or True
|
||||
cert = self.cert_file
|
||||
if cert and self.key_file:
|
||||
cert = (cert, self.key_file)
|
||||
response = requests.post(connection_url,
|
||||
data=enc,
|
||||
headers=headers,
|
||||
verify=verify, cert=cert,
|
||||
timeout=UPLOAD_REQUEST_TIMEOUT)
|
||||
|
||||
if kwargs.get('check_exceptions'):
|
||||
|
||||
Reference in New Issue
Block a user