Forum Discussion

Chris_Campbell1's avatar
Jun 27, 2014

Add a new pool with an existing node

I'm trying to run something like:

b.LocalLB.Pool.create_v2(['pool-https-bigip-workstation-443'], ['LB_METHOD_ROUND_ROBIN'], [[{'address':'1.1.1.1', 'port':'443'}]])

using the bigsuds python module but I get an error:

ServerError: Server raised fault: 'Exception caught in LocalLB::urn:iControl:LocalLB/Pool::create_v2()
Exception: Common::OperationFailed
        primary_error_code   : 17236026 (0x0107003A)
        secondary_error_code : 0
        error_string         : 0107003a:3: Pool member node (/Common/1.1.1.1) and existing node (/Common/workstation) cannot use the same IP Address (1.1.1.1).'

which is obvious as the pool member IP I am trying to add already exists as a node. There doesn't seem to be any icontrol method to create a pool with an existing node, or am I missing something?

3 Replies

  • That's not an iControl-specific limitation. You'll get the same error in the GUI and via tmsh.

     

  • Here's a thought, and I haven't tested this with a Python iControl, so your mileage may vary.

    If I do this from the command line, adding a node to a pool (where that node already exists somewhere else):

    tmsh modify ltm pool test1-pool members add { foo-node:80 { address 10.70.0.2 } }
    

    I'll certainly get the error:

    Pool member node (/Common/foo-node) and existing node (/Common/10.70.0.2) cannot use the same IP Address (10.70.0.2)
    

    But if I do this:

    modify ltm pool test1-pool members add { 10.70.0.2:80 }
    

    It'll work, which basically means that it's using the existing node and not trying to create a new one. If that node didn't already exist, it would be created automatically. Again, I haven't tested this with a Python iControl, but the iControl REST version would look like this:

    curl -sk -u 'admin:admin' -H "Content-Type: application/json" -X PUT https://x.x.x.x/mgmt/tm/ltm/pool/test1-pool -d '{"name":"test1-pool","members":[{"name":"10.70.0.1:80"}]}'
    

    What I don't think is possible is adding a single member to a collection, so you may need to enumerate the existing collection first, and then re-add all of the members.

  • aj1's avatar
    aj1
    Icon for Nimbostratus rankNimbostratus

    Hello,

     

    I have getting the same error and i am using the bigsuds library. I used the NodeAddressV2 interface to create a couple of nodes and now trying to create a pool out of those two create_v2 in the Pool interface. Just wondering what the create_v2 call would look like.

     

    Any help appreciated. Thanks.