Forum Discussion

Andy_Litzinger's avatar
Jan 07, 2014

does iControl GTM pool create_v2 method actually work as documented?

I am trying to create a GTM pool using the create_v2 method as described here:https://devcentral.f5.com/wiki/iControl.GlobalLB__Pool__create_v2.ashx which says to pass in a type of VirtualServerID. This type includes only parameters, name-the virtual server name, and server-the name of the server object that hosts the virtual server.

 

when i try run this method passing in the paramters described I get back this error message: Exception: Common::OperationFailed primary_error_code: 17236515 (0x01070223) secondary_error_code: 0 error_string: 01070223:3: Pool Member must contain VS IP and Pool Name

 

this is surprising since the method documentation doesn't indicate it needs an IP address at all.

 

i've tried this against a GTM-VE running 11.0 and 11.4.0HF4 with the same results. I'm using the ruby icontrol gem for 11.x. I tried using wsdls from 11.0 and 11.4 with no change. I'm going to go back and use the original create method, but i was hoping someone has had more success using the create_v2 method?

 

  • How can i track this down in ruby? I thought the WSDLs did the heavy lifting but is there some place else i should be looking?

     

  • I don't know ruby, but it is working fine in python:

    >>>b.GlobalLB.Pool.create_v2(pool_names = ['/Common/p2'], lb_methods = ['LB_METHOD_ROUND_ROBIN'], members = [[{'name': '/partition1/testvip', 'server': '/Common/ltm1'}, {'name': '/partition2/testvip', 'server': '/Common/ltm1'}, {'name': '/partition3/testvip', 'server': '/Common/ltm1'}]], orders = [[0, 1, 2]])
    >>> b.GlobalLB.Pool.get_list()
    ['/Common/p1', '/Common/p2']
    >>> b.GlobalLB.Pool.get_member_v2(['/Common/p2'])
    [[{'name': '/partition1/testvip', 'server': '/Common/ltm1'}, {'name': '/partition2/testvip', 'server': '/Common/ltm1'}, {'name': '/partition3/testvip', 'server': '/Common/ltm1'}]]
    >>> gtmp.get_member_order(['/Common/p2'], [[{'name': '/partition1/testvip', 'server': '/Common/ltm1'}, {'name': '/partition2/testvip', 'server': '/Common/ltm1'}, {'name': '/partition3/testvip', 'server': '/Common/ltm1'}]])
    [[0, 1, 2]]