Forum Discussion
pycontrol, remove_wideip_pool() problem
Hello,
I'm using pycontrol v2 to control GTM WideIP. I'm trying to remove WIDEIP POOL with remove_wideip_pool()
When I run the python script, below error has been occured.
[merlinet@as-jw gslb]$ ./rmwp.py
No handlers could be found for logger "suds.client"
Server raised fault: 'Could not find element by name: pool_name'
here are part of the script:
new_set = glb.wip_obj.typefactory.create('GlobalLB.WideIP.WideIPPool')
new_set.pool_name = "real_www.domain.com"
new_set.order = 1
new_set.ratio = 0
try:
glb.wip_obj.remove_wideip_pool(wide_ips = [wideip], wideip_pools = [[new_set]])
except Exception, e:
print e
- JRahmAdminRemove the double brackets surrounding the new_set object and you should be good to go.
>>> wip = b.GlobalLB.WideIP >>> pl = b.GlobalLB.Pool >>> wip.get_list() [/Common/test.wip.com] >>> wip.get_wideip_pool(wide_ips = ['/Common/test.wip.com']) [[(GlobalLB.WideIP.WideIPPool){ pool_name = "/Common/gpool1" order = 0 ratio = 1 }, (GlobalLB.WideIP.WideIPPool){ pool_name = "/Common/gpool2" order = 1 ratio = 2 }]] >>> pooldef = wip.typefactory.create('GlobalLB.WideIP.WideIPPool') >>> pooldef.pool_name = '/Common/gpool2' >>> pooldef.order = 1 >>> pooldef.ratio = 2 >>> wip.remove_wideip_pool(wide_ips = ['/Common/test.wip.com'], wideip_pools = pooldef) >>> wip.get_wideip_pool(wide_ips = ['/Common/test.wip.com']) [[(GlobalLB.WideIP.WideIPPool){ pool_name = "/Common/gpool1" order = 0 ratio = 1 }, (GlobalLB.WideIP.WideIPPool){ pool_name = "/Common/gpool2" order = 1 ratio = 2 }]] >>>
- JRahmAdminhuh, doesn't appear after second glance that my pool was removed. Odd. Let me pick at it a little longer
- JRahmAdminCan you test on your version to see if this works. Even if I use the object as is returned from get_wideip_pool in the remove, it still isn't working on my v11 beta image:
>>> a = wip.get_wideip_pool(wide_ips = ['/Common/test.wip.com']) >>> a[0][0] (GlobalLB.WideIP.WideIPPool){ pool_name = "/Common/gpool1" order = 0 ratio = 1 } >>> wip.remove_wideip_pool(wide_ips = ['/Common/test.wip.com'], wideip_pools = a[0][0]) >>> wip.get_wideip_pool(wide_ips = ['/Common/test.wip.com']) [[(GlobalLB.WideIP.WideIPPool){ pool_name = "/Common/gpool1" order = 0 ratio = 1 }, (GlobalLB.WideIP.WideIPPool){ pool_name = "/Common/gpool2" order = 1 ratio = 2 }]] >>>
- JRahmAdminbacked off to 10.2.2 and still see the same behavior. Probably user error on my part. I'm going to test the method from another language and see if it's a pycontrol issue or a method issue.
- JRahmAdminso i have confirmed that the method works with a little ruby help from George. Now I have to figure out my pycontrol errors.
- JRahmAdminOK, idiot me...figured this out. Requires two creates, one to create the pool definition, then one to create the sequence. Gets me every time!
>>> pooldef = wip.typefactory.create('GlobalLB.WideIP.WideIPPool') >>> pooldef.pool_name = 'gpool1' >>> pooldef.order = 0 >>> pooldef.ratio = 1 >>> pooldef_seq = wip.typefactory.create('GlobalLB.WideIP.WideIPPoolSequence') >>> pooldef_seq.item = [pooldef] >>> wip.add_wideip_pool(wide_ips = ['test.wip.com'], wideip_pools = [pooldef_seq]) >>> wip.get_wideip_pool(wide_ips = ['test.wip.com']) [[(GlobalLB.WideIP.WideIPPool){ pool_name = "gpool1" order = 0 ratio = 1 }, (GlobalLB.WideIP.WideIPPool){ pool_name = "gpool2" order = 1 ratio = 2 }]] >>> wip.remove_wideip_pool(wide_ips = ['test.wip.com'], wideip_pools = [pooldef_seq]) >>> wip.get_wideip_pool(wide_ips = ['test.wip.com']) [[(GlobalLB.WideIP.WideIPPool){ pool_name = "gpool2" order = 1 ratio = 2 }]]
- merlinet_60432NimbostratusPoint of the problem is how to assign GlobalLB.WideIP.WideIPPool to GlobalLB.WideIP.WideIPPoolSequence. right?
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com