This is an automated email from the ASF dual-hosted git repository. madhan pushed a commit to branch ranger-2.4 in repository https://gitbox.apache.org/repos/asf/ranger.git
commit 4aaa1b11be3e88d69147ce947c63fb58834e0dd1 Author: Madhan Neethiraj <[email protected]> AuthorDate: Fri Feb 10 14:05:44 2023 -0800 RANGER-4079: Python client fix to handle URLs having subpaths (cherry picked from commit 63cf6007fb5c25a8b4558ad8b0ce31322e19d853) --- .../python/apache_ranger/client/ranger_client.py | 24 ++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/intg/src/main/python/apache_ranger/client/ranger_client.py b/intg/src/main/python/apache_ranger/client/ranger_client.py index e26528013..260095b2f 100644 --- a/intg/src/main/python/apache_ranger/client/ranger_client.py +++ b/intg/src/main/python/apache_ranger/client/ranger_client.py @@ -40,8 +40,8 @@ QUERY_PARAM_USER_DOT_NAME = 'user.name'.encode("utf-8") class RangerClient: - def __init__(self, url, auth): - self.client_http = RangerClientHttp(url, auth) + def __init__(self, url, auth, query_params=None, headers=None): + self.client_http = RangerClientHttp(url, auth, query_params, headers) self.session = self.client_http.session logging.getLogger("requests").setLevel(logging.WARNING) @@ -433,8 +433,10 @@ class RESTResponse(RangerBase): class RangerClientHttp: - def __init__(self, url, auth): - self.url = url.rstrip('/') + def __init__(self, url, auth, query_params=None, headers=None): + self.url = url.rstrip('/') + '/' # ensure that self.url ends with a / + self.query_params = query_params + self.headers = headers self.session = Session() self.session.auth = auth @@ -443,6 +445,20 @@ class RangerClientHttp: ret = None params = { 'headers': { 'Accept': api.consumes, 'Content-type': api.produces } } + if self.headers: + params['headers'].update(self.headers) + + if self.query_params: + if query_params: + merged_query_params = {} + + merged_query_params.update(self.query_params) + merged_query_params.update(query_params) + + query_params = merged_query_params + else: + query_params = self.query_params + if query_params: params['params'] = query_params
