tableau / server-client-python

A Python library for the Tableau Server REST API
https://tableau.github.io/server-client-python/
MIT License
657 stars 422 forks source link

List workbooks error when Personal Space workbooks exist (missing project_id) #873

Closed pschuemann closed 2 years ago

pschuemann commented 3 years ago

Describe the bug Listing all existing workbooks is failing with an error.

We usually run the following code to find dashboards by name for refresh operations. Since yesterday its failing with a ValueError exception. After some investigation it looks like a workbook in a "Personal Space" is causing it as it doesn't have a project_id nor a project_name. It can be circumvented by patching the code with:

if not project_id:
  continue

to workbook_item.py line 278 and additionally ignoring the server error

tableauserverclient.server.endpoint.exceptions.ServerResponseError:
    400006: Bad Request
        Invalid page number '7'

following it.

Versions Details of your environment, including:

To Reproduce Here is the code. It worked fine before the user added the personal workbook:

import tableauserverclient
tableau_auth = tableauserverclient.TableauAuth(...)
server = tableauserverclient.Server(server_address='https://dub01.online.tableau.com/', use_server_version=True)
with server.auth.sign_in(tableau_auth)
  refresh_objs = [o for o in tableauserverclient.Pager(server.workbooks)]

Results

ValueError: project_id must be defined.

bcantoni commented 3 years ago

Thanks @pschuemann for reporting this. I too can reproduce it on Tableau Online. We'll do some more digging here to understand what changed.

bcantoni commented 3 years ago

I confirmed with Query Workbooks for Site REST calls directly that workbooks in the new personal space feature do not have project_id or project_name defined. Looks like we'll need to properly handle that in the TSC library and see if any other objects are affected in a similar way.

adeturckheim commented 3 years ago

Hi there, facing this problem too. No issue with Projects, Users and Views

TomKlotzPro commented 3 years ago

Hello @bcantoni, thanks for the fix! When do you plan to release this fix?

jacalata commented 2 years ago

This was released in 0.17 in October https://github.com/tableau/server-client-python/releases/tag/v0.17.0