8000 added enabled materialized views on selected workbooks by a list of w… · rmagier1/server-client-python@78858a6 · GitHub
[go: up one dir, main page]

Skip to content

Commit 78858a6

Browse files
author
bzhang
committed
added enabled materialized views on selected workbooks by a list of workbook names
1 parent 56424f5 commit 78858a6

File tree

1 file changed

+26
-7
lines changed

1 file changed

+26
-7
lines changed

samples/materialize_workbooks.py

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ def main():
2121
parser.add_argument('--type', '-t', required=False, choices=['site', 'workbook', 'project_name',
2222
'project_id', 'project_path'],
2323
help='type of content you want to update materialized views settings on')
24-
parser.add_argument('--file-path', '-fp', required=False, help='path to a list of workbooks')
24+
parser.add_argument('--path-list', '-pl', required=False, help='path to a list of workbook paths')
25+
parser.add_argument('--name-list', '-nl', required=False, help='path to a list of workbook names')
2526
parser.add_argument('--project-name', '-pn', required=False, help='name of the project')
2627
parser.add_argument('--project-path', '-pp', required=False, help="path of the project")
2728

@@ -168,16 +169,19 @@ def parse_workbook_path(file_path):
168169

169170

170171
def update_workbook(args, enable_materialized_views, password, site_content_url):
171-
if args.file_path is None:
172-
print("Use '--file-path <file path>' to specify the path of a list of workbooks")
172+
if args.path_list is None and args.name_list is None:
173+
print("Use '--path-list <filename>' or '--name-list <filename>' to specify the path of a list of workbooks")
173174
print('\n')
174175
return False
175176
tableau_auth = TSC.TableauAuth(args.username, password, site_id=site_content_url)
176177
server = TSC.Server(args.server, use_server_version=True)
177178
with server.auth.sign_in(tableau_auth):
178-
workbook_path_mapping = parse_workbook_path(args.file_path)
179-
all_projects = {project.id: project for project in TSC.Pager(server.projects)}
180-
update_workbooks_by_paths(all_projects, enable_materialized_views, server, workbook_path_mapping)
179+
if args.path_list is not None:
180+
workbook_path_mapping = parse_workbook_path(args.path_list)
181+
all_projects = {project.id: project for project in TSC.Pager(server.projects)}
182+
update_workbooks_by_paths(all_projects, enable_materialized_views, server, workbook_path_mapping)
183+
elif args.name_list is not None:
184+
update_workbooks_by_names(args.name_list, server, enable_materialized_views)
181185
return True
182186

183187

@@ -194,7 +198,22 @@ def update_workbooks_by_paths(all_projects, enable_materialized_views, server, w
194198
workbook.materialized_views_enabled = enable_materialized_views
195199
server.workbooks.update(workbook)
196200
print("Updated materialized views settings for workbook: {}".format(path + '/' + workbook.name))
197-
print('\n')
201+
print('\n')
202+
203+
204+
def update_workbooks_by_names(name_list, server, enable_materialized_views):
205+
workbook_names = open(name_list, 'r')
206+
for workbook_name in workbook_names:
207+
req_option = TSC.RequestOptions()
208+
req_option.filter.add(TSC.Filter(TSC.RequestOptions.Field.Name,
209+
TSC.RequestOptions.Operator.Equals,
210+
workbook_name.rstrip()))
211+
workbooks = list(TSC.Pager(server.workbooks, req_option))
212+
for workbook in workbooks:
213+
workbook.materialized_views_enabled = enable_materialized_views
214+
server.workbooks.update(workbook)
215+
print("Updated materialized views settings for workbook: {}".format(workbook.name))
216+
print('\n')
198217

199218

200219
def update_site(args, enable_materialized_views, password, site_content_url):

0 commit comments

Comments
 (0)
0