LocalLB::Pool::create - How to create a pool ala bigpipe
I'm trying to use the SOAP API to replace some bigpipe commands. Currently, we're automagically configuring the BIG-IP for environments at order time with our custom private cloud. Our automated process currently ssh's to the F5 and runs specific bigpipe commands depending on what configuration the customer orders ( pools, members, SSL, iRule versions, etc. ) For example, we loop through creating all the base elements based on a stored DB config for an "environment"
As such, we've got some singleton commands ( in this case, an empty pool. )
e.g.
bigpipe pool $BigIpCreatePool.PoolName { monitor all tcp }
Multiple calls to this based on how many pools this env should have ( e.g. select bigIPPoolName from bigIPEnvConfig; might return 3 pools for env type A, and 7 for env type B.)
I'd like to do the same using a soap call to ( iControl )LocalLB::Pool::create.
I can, if I specify pool members at creation time:
--- well, it seems you can't embed XML here. Rats! ---
soap:Envelope soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
soap:Body
create xmlns="urn:iControl:LocalLB/Pool"
pool_names soapenc:arrayType="xsd:string[1]" xsi:type="soapenc:Array"
item xsi:type="xsd:string"scooby_doo/item
/pool_names
lb_methods soapenc:arrayType="xsd:string[1]" xsi:type="soapenc:Array"
item xsi:type="xsd:string"LB_METHOD_ROUND_ROBIN/item
/lb_methods
members soapenc:arrayType="soapenc:Array[1]" xsi:type="soapenc:Array"
item soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"
item
address xsi:type="xsd:string"11.48.7.236/address
port xsi:type="xsd:int"8080/port
/item
/item
/members
/create
/soap:Body
/soap:Envelope
I can't see a way to create just an empty pool - we'll be looping through adding the members later, some of the process is asynchronous - I may or may not know the complete list of nodes up front, due to the existing automated process ( and some external integration points. )