diff --git a/samples/refresh.py b/samples/refresh.py index dd39bc6f6..73aa7fb2f 100644 --- a/samples/refresh.py +++ b/samples/refresh.py @@ -16,7 +16,7 @@ def main(): parser.add_argument('--server', '-s', required=True, help='server address') parser.add_argument('--username', '-u', required=True, help='username to sign into server') parser.add_argument('--site', '-S', default=None) - parser.add_argument('-p', default=None) + parser.add_argument('--password', '-p', default=None, help='if not specified, you will be prompted') parser.add_argument('--logging-level', '-l', choices=['debug', 'info', 'error'], default='error', help='desired logging level (set to error by default)') @@ -26,10 +26,10 @@ def main(): args = parser.parse_args() - if args.p is None: + if args.password is None: password = getpass.getpass("Password: ") else: - password = args.p + password = args.password # Set logging level based on user input, or error by default logging_level = getattr(logging, args.logging_level.upper()) @@ -39,15 +39,21 @@ def main(): tableau_auth = TSC.TableauAuth(args.username, password, args.site) server = TSC.Server(args.server, use_server_version=True) with server.auth.sign_in(tableau_auth): - endpoint = { - 'workbook': server.workbooks, - 'datasource': server.datasources - }.get(args.resource_type) + if args.resource_type == "workbook": + # Get the workbook by its Id to make sure it exists + resource = server.workbooks.get_by_id(args.resource_id) - refresh_func = endpoint.refresh - resource = endpoint.get_by_id(args.resource_id) + # trigger the refresh, you'll get a job id back which can be used to poll for when the refresh is done + results = server.workbooks.refresh(resource) + else: + # Get the datasource by its Id to make sure it exists + resource = server.datasources.get_by_id(args.resource_id) - print(refresh_func(resource)) + # trigger the refresh, you'll get a job id back which can be used to poll for when the refresh is done + results = server.datasources.refresh(resource) + + print(results) + # TODO: Add a flag that will poll and wait for the returned job to be done if __name__ == '__main__':