-
Notifications
You must be signed in to change notification settings - Fork 447
Closed
Description
When connecting to Tableau Server 2019.4, tableauserverclient works fine on 0.13, however when moving to 0.14 the Filter breaks. When connecting to Tableau Server 2020.2, all functionality works fine. Is this a regression for older versions of Tableau Server? There was a change in the ChangeLog referring to RequestOptions so I wondered if that could be the cause. I note there are mutliple issues fixed by this change, which relate to url encoding, however I would expect this code should still work, as it does not use any reserved characters.
With 0.13:
(tsc) ...\tsc>py filter_test.py
Output:
0
With 0.14:
(tsc_014) ...\tsc_014>py ..\tsc\filter_test.py
Output:
(tsc_014) ...\tsc_014>py ..\tsc\filter_test.py
Traceback (most recent call last):
File "..\tsc\filter_test.py", line 12, in <module>
ds_list, p = server.datasources.get(req_option)
File "...\tsc_014\lib\site-packages\tableau
serverclient\server\endpoint\endpoint.py", line 127, in wrapper
return func(self, *args, **kwargs)
File "...\tsc_014\lib\site-packages\tableau
serverclient\server\endpoint\datasources_endpoint.py", line 40, in get
server_response = self.get_request(url, req_options)
File "...\tsc_014\lib\site-packages\tableau
serverclient\server\endpoint\endpoint.py", line 85, in get_request
return self._make_request(self.parent_srv.session.get, url, auth_token=self.
parent_srv.auth_token,
File "...\tsc_014\lib\site-packages\tableau
serverclient\server\endpoint\endpoint.py", line 55, in _make_request
self._check_status(server_response)
File "...\tsc_014\lib\site-packages\tableau
serverclient\server\endpoint\endpoint.py", line 70, in _check_status
raise ServerResponseError.from_response(server_response.content, self.parent
_srv.namespace)
tableauserverclient.server.endpoint.exceptions.ServerResponseError:
400065: Bad Request
None
With ...\tsc\filter_test.py:
import tableauserverclient as TSC
tableau_auth = TSC.PersonalAccessTokenAuth(token_name="poc", personal_access_token="ACCESS_TOKEN", site_id="MY_SITE") # redacted
server = TSC.Server('https://tableau.example.com', use_server_version=True) # redacted
with server.auth.sign_in_with_personal_access_token(tableau_auth):
name_query = "Account"
req_option = TSC.RequestOptions()
req_option.filter.add(TSC.Filter(TSC.RequestOptions.Field.Name,
TSC.RequestOptions.Operator.Equals,
name_query))
ds_list, p = server.datasources.get(req_option)
print(len(ds_list))
# output expected: "0"Metadata
Metadata
Assignees
Labels
No labels