LENS-1516 : SSL changes to ignore cert for python module
diff --git a/contrib/clients/python/lens/client/log.py b/contrib/clients/python/lens/client/log.py
index e427f7f..4dc19ad 100644
--- a/contrib/clients/python/lens/client/log.py
+++ b/contrib/clients/python/lens/client/log.py
@@ -23,6 +23,10 @@
self.base_url = base_url + "logs/"
self.keytab = conf.get('lens.client.authentication.kerberos.keytab')
self.principal = conf.get('lens.client.authentication.kerberos.principal')
+ self.ignoreCert = conf.get('lens.client.ssl.ignore.server.cert')
def __getitem__(self, item):
- return requests.get(self.base_url + str(item), auth=SpnegoAuth(self.keytab, self.principal)).text
+ if self.ignoreCert == 'true':
+ return requests.get(self.base_url + str(item), auth=SpnegoAuth(self.keytab, self.principal), verify=False).text
+ else:
+ return requests.get(self.base_url + str(item), auth=SpnegoAuth(self.keytab, self.principal)).text
diff --git a/contrib/clients/python/lens/client/query.py b/contrib/clients/python/lens/client/query.py
index b09ff19..8b0616b 100644
--- a/contrib/clients/python/lens/client/query.py
+++ b/contrib/clients/python/lens/client/query.py
@@ -159,22 +159,37 @@
in ['true', '1', 't', 'y', 'yes', 'yeah', 'yup']
self.keytab = conf.get('lens.client.authentication.kerberos.keytab')
self.principal = conf.get('lens.client.authentication.kerberos.principal')
+ self.ignoreCert = conf.get('lens.client.ssl.ignore.server.cert')
def __call__(self, **filters):
filters['sessionid'] = self._session._sessionid
- resp = requests.get(self.base_url + "queries/",
+
+ if ignoreCert == 'true':
+ resp = requests.get(self.base_url + "queries/",
params=filters,
headers={'accept': 'application/json'},
- auth=SpnegoAuth(self.keytab, self.principal))
+ auth=SpnegoAuth(self.keytab, self.principal), verify=False)
+ else:
+ resp = requests.get(self.base_url + "queries/",
+ params=filters,
+ headers={'accept': 'application/json'},
+ auth=SpnegoAuth(self.keytab, self.principal))
+
return self.sanitize_response(resp)
def __getitem__(self, item):
if isinstance(item, string_types):
if item in self.finished_queries:
return self.finished_queries[item]
- resp = requests.get(self.base_url + "queries/" + item, params={'sessionid': self._session._sessionid},
+
+ if ignoreCert == 'true':
+ resp = requests.get(self.base_url + "queries/" + item, params={'sessionid': self._session._sessionid},
headers={'accept': 'application/json'},
- auth=SpnegoAuth(self.keytab, self.principal))
+ auth=SpnegoAuth(self.keytab, self.principal), verify=False)
+ else:
+ resp = requests.get(self.base_url + "queries/" + item, params={'sessionid': self._session._sessionid},
+ headers={'accept': 'application/json'},
+ auth=SpnegoAuth(self.keytab, self.principal))
resp.raise_for_status()
query = LensQuery(self, resp.json(object_hook=WrappedJson))
if query.finished:
@@ -201,8 +216,14 @@
operation = "execute_with_timeout" if timeout else "execute"
payload.append(('operation', operation))
payload.append(('conf', conf_to_xml(conf)))
- resp = requests.post(self.base_url + "queries/", files=payload, headers={'accept': 'application/json'},
- auth=SpnegoAuth(self.keytab, self.principal))
+
+ if self.ignoreCert == 'true':
+ resp = requests.post(self.base_url + "queries/", files=payload, headers={'accept': 'application/json'},
+ auth=SpnegoAuth(self.keytab, self.principal), verify=False)
+ else:
+ resp = requests.post(self.base_url + "queries/", files=payload, headers={'accept': 'application/json'},
+ auth=SpnegoAuth(self.keytab, self.principal))
+
query = self.sanitize_response(resp)
logger.info("Submitted query %s", query)
if conf:
@@ -225,24 +246,41 @@
query = self.wait_till_finish(handle_or_query, *args, **kwargs)
handle = str(query.query_handle)
if query.status.status == 'SUCCESSFUL' and query.status.is_result_set_available:
- resp = requests.get(self.base_url + "queries/" + handle + "/resultsetmetadata",
+
+ if self.ignoreCert == 'true':
+ resp = requests.get(self.base_url + "queries/" + handle + "/resultsetmetadata",
params={'sessionid': self._session._sessionid}, headers={'accept': 'application/json'},
- auth=SpnegoAuth(self.keytab, self.principal))
+ auth=SpnegoAuth(self.keytab, self.principal), verify=False)
+ else:
+ resp = requests.get(self.base_url + "queries/" + handle + "/resultsetmetadata",
+ params={'sessionid': self._session._sessionid}, headers={'accept': 'application/json'},
+ auth=SpnegoAuth(self.keytab, self.principal))
metadata = self.sanitize_response(resp)
# Try getting the result through http result
- resp = requests.get(self.base_url + "queries/" + handle + "/httpresultset",
+ if self.ignoreCert == 'true':
+ resp = requests.get(self.base_url + "queries/" + handle + "/httpresultset",
params={'sessionid': self._session._sessionid}, stream=True,
- auth=SpnegoAuth(self.keytab, self.principal))
+ auth=SpnegoAuth(self.keytab, self.principal), verify=False)
+ else:
+ resp = requests.get(self.base_url + "queries/" + handle + "/httpresultset",
+ params={'sessionid': self._session._sessionid}, stream=True,
+ auth=SpnegoAuth(self.keytab, self.principal))
if resp.ok:
is_header_present = self.is_header_present_in_result
if handle in self.query_confs and 'lens.query.output.write.header' in self.query_confs[handle]:
is_header_present = bool(self.query_confs[handle]['lens.query.output.write.header'])
return LensPersistentResult(metadata, resp, is_header_present=is_header_present, *args, **kwargs)
else:
- response = requests.get(self.base_url + "queries/" + handle + "/resultset",
+ if self.ignoreCert == 'true':
+ response = requests.get(self.base_url + "queries/" + handle + "/resultset",
params={'sessionid': self._session._sessionid},
headers={'accept': 'application/json'},
- auth=SpnegoAuth(self.keytab, self.principal))
+ auth=SpnegoAuth(self.keytab, self.principal), verify=False)
+ else:
+ response = requests.get(self.base_url + "queries/" + handle + "/resultset",
+ params={'sessionid': self._session._sessionid},
+ headers={'accept': 'application/json'},
+ auth=SpnegoAuth(self.keytab, self.principal))
resp = self.sanitize_response(response)
# If it has in memory result, return inmemory result iterator
if resp._is_wrapper and resp._wrapped_key == u'inMemoryQueryResult':
@@ -279,3 +317,4 @@
resp.raise_for_status()
logger.error(resp.text)
raise Exception("Unknown error with response", resp)
+
diff --git a/contrib/clients/python/lens/client/session.py b/contrib/clients/python/lens/client/session.py
index 3b527e0..cafbfe5 100644
--- a/contrib/clients/python/lens/client/session.py
+++ b/contrib/clients/python/lens/client/session.py
@@ -27,13 +27,20 @@
self.base_url = base_url + "session/"
self.keytab = conf.get('lens.client.authentication.kerberos.keytab')
self.principal = conf.get('lens.client.authentication.kerberos.principal')
+ self.ignoreCert = conf.get('lens.client.ssl.ignore.server.cert')
self.open(username, password, database, conf)
def __getitem__(self, key):
- resp = requests.get(self.base_url + "params",
+ if self.ignoreCert == 'true':
+ resp = requests.get(self.base_url + "params",
params={'sessionid': self._sessionid, 'key': key},
headers={'accept': 'application/json'},
- auth=SpnegoAuth(self.keytab, self.principal))
+ auth=SpnegoAuth(self.keytab, self.principal), verify=False)
+ else:
+ resp = requests.get(self.base_url + "params",
+ params={'sessionid': self._sessionid, 'key': key},
+ headers={'accept': 'application/json'},
+ auth=SpnegoAuth(self.keytab, self.principal))
if resp.ok:
params = resp.json(object_hook=WrappedJson)
text = params.elements[0]
@@ -45,12 +52,23 @@
payload = [('username', username), ('password', password), ('sessionconf', conf_to_xml(conf))]
if database:
payload.append(('database', database))
- r = requests.post(self.base_url, files=payload, headers={'accept': 'application/xml'},
- auth=SpnegoAuth(self.keytab, self.principal))
+
+ if self.ignoreCert == 'true':
+ r = requests.post(self.base_url, files=payload, headers={'accept': 'application/xml'},
+ auth=SpnegoAuth(self.keytab, self.principal), verify=False)
+ else:
+ r = requests.post(self.base_url, files=payload, headers={'accept': 'application/xml'},
+ auth=SpnegoAuth(self.keytab, self.principal))
r.raise_for_status()
self._sessionid = r.text
def close(self):
- requests.delete(self.base_url, params={'sessionid': self._sessionid},
- auth=SpnegoAuth(self.keytab, self.principal))
+ if self.ignoreCert == 'true':
+ requests.delete(self.base_url, params={'sessionid': self._sessionid},
+ auth=SpnegoAuth(self.keytab, self.principal), verify=False)
+ else:
+ requests.delete(self.base_url, params={'sessionid': self._sessionid},
+ auth=SpnegoAuth(self.keytab, self.principal))
+
+