Repository: lens Updated Branches: refs/heads/master 58752d0a4 -> c6423ae01
LENS-1516 : SSL changes to ignore cert for python module Project: http://git-wip-us.apache.org/repos/asf/lens/repo Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/c6423ae0 Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/c6423ae0 Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/c6423ae0 Branch: refs/heads/master Commit: c6423ae01a4776383f0edcd8591124ac643b9e3e Parents: 58752d0 Author: Rajitha R <[email protected]> Authored: Fri May 25 20:04:43 2018 +0530 Committer: Rajitha.R <[email protected]> Committed: Fri May 25 20:04:43 2018 +0530 ---------------------------------------------------------------------- contrib/clients/python/lens/client/log.py | 6 ++- contrib/clients/python/lens/client/query.py | 63 +++++++++++++++++----- contrib/clients/python/lens/client/session.py | 30 ++++++++--- 3 files changed, 80 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lens/blob/c6423ae0/contrib/clients/python/lens/client/log.py ---------------------------------------------------------------------- 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 @@ class LensLogClient(object): 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 http://git-wip-us.apache.org/repos/asf/lens/blob/c6423ae0/contrib/clients/python/lens/client/query.py ---------------------------------------------------------------------- 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 @@ class LensQueryClient(object): 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 @@ class LensQueryClient(object): 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 @@ class LensQueryClient(object): 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 @@ class LensQueryClient(object): resp.raise_for_status() logger.error(resp.text) raise Exception("Unknown error with response", resp) + http://git-wip-us.apache.org/repos/asf/lens/blob/c6423ae0/contrib/clients/python/lens/client/session.py ---------------------------------------------------------------------- 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 @@ class LensSessionClient(object): 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 @@ class LensSessionClient(object): 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)) + +
