Пример #1
0
def get_schedule_ids(conn, schedule_names=None):
    if schedule_names:
        schedule_ids = [
            schedule['id'] for schedule in extract_pages(conn.query_schedules)
            if schedule['name'] in schedule_names
        ]
    else:
        schedule_ids = [
            schedule['id'] for schedule in extract_pages(conn.query_schedules)
        ]
    return schedule_ids
Пример #2
0
def get_all_view_fields(conn: TableauServerConnection,
                        site_id: str) -> List[Dict[str, Any]]:
    """Returns a list of JSON / dicts describing all available views."""
    all_views = extract_pages(conn.query_views_for_site,
                              content_id=site_id,
                              parameter_dict={"fields": "fields=_all_"})
    return all_views
Пример #3
0
def test_extract_pages_default():
    test_query = conn.query_sites().json()
    total_sites_available = int(test_query['pagination']['totalAvailable'])
    extracted_sites = extract_pages(conn.query_sites)
    print("\nNumber of extracted sites: {}\nNumber of available sites: {}".
          format(len(extracted_sites), total_sites_available))
    assert len(extracted_sites) == total_sites_available
Пример #4
0
def get_all_flow_fields(conn) -> list:
    """
    Queries all available flow fields from Tableau Server.
    :param class conn: the Tableau Server connection
    :return: list
    """
    all_flows = extract_pages(conn.query_flows_for_site,
                              parameter_dict={'fields': 'fields=_all_'})
    return all_flows
Пример #5
0
def test_delete_cloned_schedules():
    expected_names = [
        TEST_CLONE_NAME_PREFIX + name for name in TEST_SCHEDULE_NAMES
    ]
    print("expected names: ", expected_names)
    cloned_schedule_ids = [
        schedule['id'] for schedule in extract_pages(conn.query_schedules)
        if schedule['name'] in expected_names
    ]
    for schedule_id in cloned_schedule_ids:
        response = conn.delete_schedule(schedule_id=schedule_id)
        print("delete response code: ", response.status_code)
    clones_remaining = [
        schedule['name'] for schedule in extract_pages(conn.query_schedules)
        if schedule['name'] in expected_names
    ]
    print("clones remaining (should be none): ", clones_remaining)
    assert not any(clones_remaining)
Пример #6
0
def get_all_datasource_fields(conn) -> list:
    """
    Queries all available datasource fields from Tableau Server.
    :param class conn: the Tableau Server connection
    :return: list
    """
    all_datasources = extract_pages(conn.query_data_sources,
                                    parameter_dict={'fields': 'fields=_all_'})
    return all_datasources
Пример #7
0
def get_all_workbook_fields(
        conn: TableauServerConnection,
        all_fields: Optional[bool] = True) -> List[Dict[str, Any]]:
    """Returns a list of JSON / dicts describing all available workbooks."""
    fields_param = "_all_" if all_fields is True else "_default_"
    all_workbooks = extract_pages(
        conn.query_workbooks_for_site,
        parameter_dict={"fields": f"fields={fields_param}"})
    return all_workbooks
Пример #8
0
def get_target_site_df(conn_target, site_names=None) -> pd.DataFrame:
    """
    Query details for all sites on the target server, or only the sites listed in 'site_names'.
    :param class conn_target: the Tableau Server connection object
    :param list site_names: a list of the desired site names whose details will be queried
    :return: Pandas DataFrame
    """
    site_df = pd.DataFrame(extract_pages(conn_target.query_sites))
    if site_names:
        site_df = site_df[site_df['name'].isin(site_names)]
    site_df.fillna(value='-1', inplace=True)
    return site_df
Пример #9
0
def get_target_project_df(conn_target, project_names=None):
    """
    Query details for all projects on the target site, or only the projects listed in 'project_names'.
    :param class conn_target: the Tableau Server connection object
    :param list project_names: a list of the desired project names whose details will be queried
    :return: Pandas DataFrame
    """
    project_df = pd.DataFrame(extract_pages(conn_target.query_projects))
    if project_names:
        project_df = project_df[project_df['name'].isin(project_names)]
    project_df['target_owner_id'] = project_df['owner'].apply(
        extract_project_owner_id)
    project_df.rename(columns={
        'id': 'target_project_id',
        'name': 'target_project_name',
        'description': 'target_project_description',
        'parentProjectId': 'target_project_parent_id'
    },
                      inplace=True)
    return project_df
Пример #10
0
def get_all_workbook_fields(
        conn: TableauServerConnection) -> List[Dict[str, Any]]:
    """Returns a list of JSON / dicts describing all available workbooks."""
    all_workbooks = extract_pages(conn.query_workbooks_for_site,
                                  parameter_dict={"fields": "fields=_all_"})
    return all_workbooks
Пример #11
0
def get_all_view_fields(conn, site_id):
    all_views = extract_pages(conn.query_views_for_site,
                              content_id=site_id,
                              parameter_dict={'fields': 'fields=_all_'})
    return all_views
Пример #12
0
def get_all_workbook_fields(conn):
    all_workbooks = extract_pages(conn.query_workbooks_for_site,
                                  parameter_dict={'fields': 'fields=_all_'})
    return all_workbooks
Пример #13
0
def get_all_group_fields(conn):
    all_groups = extract_pages(conn.query_groups,
                               parameter_dict={'fields': 'fields=_all_'})
    return all_groups
Пример #14
0
def get_all_subscription_fields(conn):
    all_subscriptions = extract_pages(
        conn.query_subscriptions, parameter_dict={'fields': 'fields=_all_'})
    return all_subscriptions
Пример #15
0
def get_groups_for_a_user_dataframe(conn: TableauServerConnection,
                                    user_id: str) -> pd.DataFrame:
    """Returns a Pandas DataFrame containing all groups a user belongs to."""
    groups_for_user_df = pd.DataFrame(
        extract_pages(conn.get_groups_for_a_user, content_id=user_id))
    return groups_for_user_df
Пример #16
0
def get_all_schedule_fields(conn):
    all_schedules = extract_pages(conn.query_schedules,
                                  parameter_dict={'fields': 'fields=_all_'})
    return all_schedules
Пример #17
0
def get_group_users(conn, group_id):
    all_group_users = extract_pages(conn.get_users_in_group,
                                    content_id=group_id,
                                    parameter_dict={'fields': 'fields=_all_'})
    return all_group_users
Пример #18
0
def get_all_project_fields(conn):
    all_projects = extract_pages(conn.query_projects,
                                 parameter_dict={'fields': 'fields=_all_'})
    return all_projects