@@ -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' ] = str (connection_credentials .embed ).lower ()
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 )
@@ -205,14 +210,19 @@ def add_req(self, user_item):
205210
206211
207212class WorkbookRequest (object ):
208- def _generate_xml (self , workbook_item ):
213+ def _generate_xml (self , workbook_item , connection_credentials = None ):
209214 xml_request = ET .Element ('tsRequest' )
210215 workbook_element = ET .SubElement (xml_request , 'workbook' )
211216 workbook_element .attrib ['name' ] = workbook_item .name
212217 if workbook_item .show_tabs :
213218 workbook_element .attrib ['showTabs' ] = str (workbook_item .show_tabs ).lower ()
214219 project_element = ET .SubElement (workbook_element , 'project' )
215220 project_element .attrib ['id' ] = workbook_item .project_id
221+ if connection_credentials :
222+ credentials_element = ET .SubElement (workbook_element ,'connectionCredentials' )
223+ credentials_element .attrib ['name' ] = connection_credentials .name
224+ credentials_element .attrib ['password' ] = connection_credentials .password
225+ credentials_element .attrib ['embed' ] = str (connection_credentials .embed ).lower ()
216226 return ET .tostring (xml_request )
217227
218228 def update_req (self , workbook_item ):
@@ -228,15 +238,15 @@ def update_req(self, workbook_item):
228238 owner_element .attrib ['id' ] = workbook_item .owner_id
229239 return ET .tostring (xml_request )
230240
231- def publish_req (self , workbook_item , filename , file_contents ):
232- xml_request = self ._generate_xml (workbook_item )
241+ def publish_req (self , workbook_item , filename , file_contents , connection_credentials = None ):
242+ xml_request = self ._generate_xml (workbook_item , connection_credentials )
233243
234244 parts = {'request_payload' : ('' , xml_request , 'text/xml' ),
235245 'tableau_workbook' : (filename , file_contents , 'application/octet-stream' )}
236246 return _add_multipart (parts )
237247
238- def publish_req_chunked (self , workbook_item ):
239- xml_request = self ._generate_xml (workbook_item )
248+ def publish_req_chunked (self , workbook_item , connection_credentials = None ):
249+ xml_request = self ._generate_xml (workbook_item , connection_credentials )
240250
241251 parts = {'request_payload' : ('' , xml_request , 'text/xml' )}
242252 return _add_multipart (parts )
0 commit comments