@@ -16,7 +16,7 @@ def main():
16
16
parser .add_argument ('--server' , '-s' , required = True , help = 'server address' )
17
17
parser .add_argument ('--username' , '-u' , required = True , help = 'username to sign into server' )
18
18
parser .add_argument ('--site' , '-S' , default = None )
19
- parser .add_argument ('-p' , default = None )
19
+ parser .add_argument ('--password' , '- p' , default = None , help = 'if not specified, you will be prompted' )
20
20
21
21
parser .add_argument ('--logging-level' , '-l' , choices = ['debug' , 'info' , 'error' ], default = 'error' ,
22
22
help = 'desired logging level (set to error by default)' )
@@ -26,10 +26,10 @@ def main():
26
26
27
27
args = parser .parse_args ()
28
28
29
- if args .p is None :
29
+ if args .password is None :
30
30
password = getpass .getpass ("Password: " )
31
31
else :
32
- password = args .p
32
+ password = args .password
33
33
34
34
# Set logging level based on user input, or error by default
35
35
logging_level = getattr (logging , args .logging_level .upper ())
@@ -39,15 +39,21 @@ def main():
39
39
tableau_auth = TSC .TableauAuth (args .username , password , args .site )
40
40
server = TSC .Server (args .server , use_server_version = True )
41
41
with server .auth .sign_in (tableau_auth ):
42
- endpoint = {
43
- 'workbook' : server .workbooks ,
44
- 'datasource' : server .datasources
45
- }.get (args .resource_type )
42
+ if args .resource_type == "workbook" :
43
+ # Get the workbook by its Id to make sure it exists
44
+ resource = server .workbooks .get_by_id (args .resource_id )
46
45
47
- refresh_func = endpoint .refresh
48
- resource = endpoint .get_by_id (args .resource_id )
46
+ # trigger the refresh, you'll get a job id back which can be used to poll for when the refresh is done
47
+ results = server .workbooks .refresh (resource )
48
+ else :
49
+ # Get the datasource by its Id to make sure it exists
50
+ resource = server .datasources .get_by_id (args .resource_id )
49
51
50
- print (refresh_func (resource ))
52
+ # trigger the refresh, you'll get a job id back which can be used to poll for when the refresh is done
53
+ results = server .datasources .refresh (resource )
54
+
55
+ print (results )
56
+ # TODO: Add a flag that will poll and wait for the returned job to be done
51
57
52
58
53
59
if __name__ == '__main__' :
0 commit comments