@@ -30,12 +30,17 @@ def signin_req(self, auth_item):
3030
3131
3232class DatasourceRequest (object ):
33- def _generate_xml (self , datasource_item ):
33+ def _generate_xml (self , datasource_item , connection_credentials = None ):
3434 xml_request = ET .Element ('tsRequest' )
3535 datasource_element = ET .SubElement (xml_request , 'datasource' )
3636 datasource_element .attrib ['name' ] = datasource_item .name
3737 project_element = ET .SubElement (datasource_element , 'project' )
3838 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'
3944 return ET .tostring (xml_request )
4045
4146 def update_req (self , datasource_item ):
@@ -49,15 +54,15 @@ def update_req(self, datasource_item):
4954 owner_element .attrib ['id' ] = datasource_item .owner_id
5055 return ET .tostring (xml_request )
5156
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 )
5459
5560 parts = {'request_payload' : ('' , xml_request , 'text/xml' ),
5661 'tableau_datasource' : (filename , file_contents , 'application/octet-stream' )}
5762 return _add_multipart (parts )
5863
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 )
6166
6267 parts = {'request_payload' : ('' , xml_request , 'text/xml' )}
6368 return _add_multipart (parts )
@@ -260,14 +265,19 @@ def add_req(self, user_item):
260265
261266
262267class WorkbookRequest (object ):
263- def _generate_xml (self , workbook_item ):
268+ def _generate_xml (self , workbook_item , connection_credentials = None ):
264269 xml_request = ET .Element ('tsRequest' )
265270 workbook_element = ET .SubElement (xml_request , 'workbook' )
266271 workbook_element .attrib ['name' ] = workbook_item .name
267272 if workbook_item .show_tabs :
268273 workbook_element .attrib ['showTabs' ] = str (workbook_item .show_tabs ).lower ()
269274 project_element = ET .SubElement (workbook_element , 'project' )
270275 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'
271281 return ET .tostring (xml_request )
272282
273283 def update_req (self , workbook_item ):
@@ -283,15 +293,15 @@ def update_req(self, workbook_item):
283293 owner_element .attrib ['id' ] = workbook_item .owner_id
284294 return ET .tostring (xml_request )
285295
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 )
288298
289299 parts = {'request_payload' : ('' , xml_request , 'text/xml' ),
290300 'tableau_workbook' : (filename , file_contents , 'application/octet-stream' )}
291301 return _add_multipart (parts )
292302
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 )
295305
296306 parts = {'request_payload' : ('' , xml_request , 'text/xml' )}
297307 return _add_multipart (parts )
0 commit comments