@@ -30,12 +30,17 @@ def signin_req(self, auth_item):
30
30
31
31
32
32
class DatasourceRequest (object ):
33
- def _generate_xml (self , datasource_item ):
33
+ def _generate_xml (self , datasource_item , connection_credentials = None ):
34
34
xml_request = ET .Element ('tsRequest' )
35
35
datasource_element = ET .SubElement (xml_request , 'datasource' )
36
36
datasource_element .attrib ['name' ] = datasource_item .name
37
37
project_element = ET .SubElement (datasource_element , 'project' )
38
38
project_element .attrib ['id' ] = datasource_item .project_id
39
+ if connection_credentials :
40
+ credentials_element = ET .SubElement (datasource_element , 'connectionCredentials' )
41
+ credentials_element .attrib ['name' ] = connection_credentials .name
42
+ credentials_element .attrib ['password' ] = connection_credentials .password
43
+ credentials_element .attrib ['embed' ] = 'true' if connection_credentials .embed else 'false'
39
44
return ET .tostring (xml_request )
40
45
41
46
def update_req (self , datasource_item ):
@@ -49,15 +54,15 @@ def update_req(self, datasource_item):
49
54
owner_element .attrib ['id' ] = datasource_item .owner_id
50
55
return ET .tostring (xml_request )
51
56
52
- def publish_req (self , datasource_item , filename , file_contents ):
53
- xml_request = self ._generate_xml (datasource_item )
57
+ def publish_req (self , datasource_item , filename , file_contents , connection_credentials = None ):
58
+ xml_request = self ._generate_xml (datasource_item , connection_credentials )
54
59
55
60
parts = {'request_payload' : ('' , xml_request , 'text/xml' ),
56
61
'tableau_datasource' : (filename , file_contents , 'application/octet-stream' )}
57
62
return _add_multipart (parts )
58
63
59
- def publish_req_chunked (self , datasource_item ):
60
- xml_request = self ._generate_xml (datasource_item )
64
+ def publish_req_chunked (self , datasource_item , connection_credentials = None ):
65
+ xml_request = self ._generate_xml (datasource_item , connection_credentials )
61
66
62
67
parts = {'request_payload' : ('' , xml_request , 'text/xml' )}
63
68
return _add_multipart (parts )
@@ -260,14 +265,19 @@ def add_req(self, user_item):
260
265
261
266
262
267
class WorkbookRequest (object ):
263
- def _generate_xml (self , workbook_item ):
268
+ def _generate_xml (self , workbook_item , connection_credentials = None ):
264
269
xml_request = ET .Element ('tsRequest' )
265
270
workbook_element = ET .SubElement (xml_request , 'workbook' )
266
271
workbook_element .attrib ['name' ] = workbook_item .name
267
272
if workbook_item .show_tabs :
268
273
workbook_element .attrib ['showTabs' ] = str (workbook_item .show_tabs ).lower ()
269
274
project_element = ET .SubElement (workbook_element , 'project' )
270
275
project_element .attrib ['id' ] = workbook_item .project_id
276
+ if connection_credentials :
277
+ credentials_element = ET .SubElement (workbook_element , 'connectionCredentials' )
278
+ credentials_element .attrib ['name' ] = connection_credentials .name
279
+ credentials_element .attrib ['password' ] = connection_credentials .password
280
+ credentials_element .attrib ['embed' ] = 'true' if connection_credentials .embed else 'false'
271
281
return ET .tostring (xml_request )
272
282
273
283
def update_req (self , workbook_item ):
@@ -283,15 +293,15 @@ def update_req(self, workbook_item):
283
293
owner_element .attrib ['id' ] = workbook_item .owner_id
284
294
return ET .tostring (xml_request )
285
295
286
- def publish_req (self , workbook_item , filename , file_contents ):
287
- xml_request = self ._generate_xml (workbook_item )
296
+ def publish_req (self , workbook_item , filename , file_contents , connection_credentials = None ):
297
+ xml_request = self ._generate_xml (workbook_item , connection_credentials )
288
298
289
299
parts = {'request_payload' : ('' , xml_request , 'text/xml' ),
290
300
'tableau_workbook' : (filename , file_contents , 'application/octet-stream' )}
291
301
return _add_multipart (parts )
292
302
293
- def publish_req_chunked (self , workbook_item ):
294
- xml_request = self ._generate_xml (workbook_item )
303
+ def publish_req_chunked (self , workbook_item , connection_credentials = None ):
304
+ xml_request = self ._generate_xml (workbook_item , connection_credentials )
295
305
296
306
parts = {'request_payload' : ('' , xml_request , 'text/xml' )}
297
307
return _add_multipart (parts )
0 commit comments