Forum Discussion
Andy_4386
Jul 16, 2010Nimbostratus
Problem with LocalLB.PoolMember.set_monitor_association
I'm trying to call set_health_monitor to configure http monitors for a test pool; the BigIP is complaining about not being able to find the "pool_names" element, but it's in the XML body sent to the BigIP. Below is the error and XML body.
I'm guessing the error is in the structure of the XML (as most of the other problems I've encountered have been).
=========================================================================================
1) Error:
test_set_health_monitor(Test::Loadbalancer::Run):
::Loadbalancer::Base::SoapFault: (SOAP-ENV:Server) Could not find element by name: pool_names
XML sent to BigIP:
aboveground
MONITOR_RULE_TYPE_SINGLE
2
http
=========================================================================================
Actually noticed another thing. The API reference specifies that the element should be just "pool_name", not "pool_names" as the BigIP says it iis looking for. I tried changing the element to "pool_name" just for kicks and still get the same error above.
Regarding my environment, I'm programming in Ruby using Builder to put together the SOAP message and Savon for the SOAP communication.
Any ideas?
Cheers,
Andy - Andy, there is no set_health_monitor method in the API. Can you provide the calling code so I know exactly which method you are calling. The LocalLB.Pool.set_monitor_association() method is likely what you are calling. There is also a LocalLB.PoolMember.set_monitor_association() method to set the monitors for a specific pool member. That method does have a separate pool_names parameter.
- Andy_4386NimbostratusJoe, apologies for the confusion...the subject line had the correct method and the body of my post was off...the code I'm trying does have the correct method defined - set_monitor_association.
- I still think you have the interfaces off. The LocalLB.Pool and LocalLB.PoolMember interfaces both have set_monitor_association methods:
LocalLB.PoolMember.set_monitor_association( in String [] pool_names, in LocalLB__PoolMember__MemberMonitorAssociation [] [] monitor_associations ); LocalLB.Pool.set_monitor_association( in LocalLB__Pool__MonitorAssociation [] monitor_associations );
- Andy_4386NimbostratusI traced the full generated XML and indeed, you're right, I was using the incorrect interface - "urn:iControl:LocalLB/PoolMemberset_monitor_association". I fixed that bit, so now am using "urn:iControl:LocalLB/Poolset_monitor_association". The missing pool_names error is gone as expected; but I started receiving a 500 error on a missing element: type. I experimented a bit with the XML for the monitor_rule element. At first, I had it defined like this, which was incorrect:
I changed the XML for monitor_rule to this, and it ended up working:MONITOR_RULE_TYPE_SINGLE 1 http
I'm all set, thanks for your help, AndyMONITOR_RULE_TYPE_SINGLE 1 http
Recent Discussions
Related Content
DevCentral Quicklinks
* 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
Discover DevCentral Connects