@@ -278,22 +278,30 @@ def add_req(self, user_item):
278
278
279
279
280
280
class WorkbookRequest (object ):
281
- def _generate_xml (self , workbook_item , connection_credentials = None ):
281
+ def _generate_xml (self , workbook_item , connections = None ):
282
282
xml_request = ET .Element ('tsRequest' )
283
283
workbook_element = ET .SubElement (xml_request , 'workbook' )
284
284
workbook_element .attrib ['name' ] = workbook_item .name
285
285
if workbook_item .show_tabs :
286
286
workbook_element .attrib ['showTabs' ] = str (workbook_item .show_tabs ).lower ()
287
287
project_element = ET .SubElement (workbook_element , 'project' )
288
288
project_element .attrib ['id' ] = workbook_item .project_id
289
- if connection_credentials :
290
- credentials_element = ET .SubElement (workbook_element , 'connectionCredentials' )
291
- credentials_element .attrib ['name' ] = connection_credentials .name
292
- credentials_element .attrib ['password' ] = connection_credentials .password
293
- credentials_element .attrib ['embed' ] = 'true' if connection_credentials .embed else 'false'
294
-
295
- if connection_credentials .oauth :
296
- credentials_element .attrib ['oAuth' ] = 'true'
289
+ if connections is not None :
290
+ connections_element = ET .SubElement (workbook_element , 'connections' )
291
+ for connection in connections :
292
+ if connection :
293
+ connection_element = ET .SubElement (connections_element , 'connection' )
294
+ connection_element .attrib ['serverAddress' ] = connection .server_address
295
+ if connection .server_port :
296
+ connection_element .attrib ['serverPort' ] = connection .server_port
297
+ if connection .connection_credentials :
298
+ connection_credentials = connection .connection_credentials
299
+ credentials_element = ET .SubElement (connection_element , 'connectionCredentials' )
300
+ credentials_element .attrib ['name' ] = connection_credentials .name
301
+ credentials_element .attrib ['password' ] = connection_credentials .password
302
+ credentials_element .attrib ['embed' ] = 'true' if connection_credentials .embed else 'false'
303
+ if connection_credentials .oauth :
304
+ credentials_element .attrib ['oAuth' ] = 'true'
297
305
return ET .tostring (xml_request )
298
306
299
307
def update_req (self , workbook_item ):
@@ -309,15 +317,15 @@ def update_req(self, workbook_item):
309
317
owner_element .attrib ['id' ] = workbook_item .owner_id
310
318
return ET .tostring (xml_request )
311
319
312
- def publish_req (self , workbook_item , filename , file_contents , connection_credentials = None ):
313
- xml_request = self ._generate_xml (workbook_item , connection_credentials )
320
+ def publish_req (self , workbook_item , filename , file_contents , connections = None ):
321
+ xml_request = self ._generate_xml (workbook_item , connections )
314
322
315
323
parts = {'request_payload' : ('' , xml_request , 'text/xml' ),
316
324
'tableau_workbook' : (filename , file_contents , 'application/octet-stream' )}
317
325
return _add_multipart (parts )
318
326
319
- def publish_req_chunked (self , workbook_item , connection_credentials = None ):
320
- xml_request = self ._generate_xml (workbook_item , connection_credentials )
327
+ def publish_req_chunked (self , workbook_item , connections = None ):
328
+ xml_request = self ._generate_xml (workbook_item , connections )
321
329
322
330
parts = {'request_payload' : ('' , xml_request , 'text/xml' )}
323
331
return _add_multipart (parts )
0 commit comments