Forum Discussion
iControl Command working w/ v10 but not 11
My apologies if this has been asked already... I searched this forum and didn't find anything, so hopefully this isn't a duplicate question.
I use a VB.NET application to manage nodes and pool members. We've recently implemented a v11 device, and pool member operations that succeed against the v10.2.2 fail against the v11.1.0 device.
Here's what I'm doing...
Dim sessionState As New LocalLBPoolMemberMemberSessionStatesessionState.member.address = memberToManage.MemberIP
sessionState.member.port = memberToManage .Port
sessionState.session_state = CommonEnabledState.STATE_DISABLED
Dim MemberSessionStateAofA(1)() As LocalLBPoolMemberMemberSessionState
Array.Resize(MemberSessionStateAofA(0), 1)
MemberSessionStateAofA(0)(0) = sessionState
iControlClient.LocalLBPoolMember.set_session_enabled_state(New String() { memberToManage.PoolName}, MemberSessionStateAofA)
Obviously memberToManage contains the member details (IP, port, pool name as reported by the BigIP, etc.). In this case, memberToManage.MemberIP = 10.x.x.x and memberToManage.Port = 80. When executing against v10, it completes as expected. Against v11, I get this exception:
Exception caught in LocalLB::urn:iControl:LocalLB/PoolMember::set_session_enabled_state() Exception: Common::OperationFailed primary_error_code : 16908342 (0x01020036) secondary_error_code : 0 error_string : 01020036:3: The requested pool member (/xxPartitionName/xxPoolName /xxPartitionName/10.x.x.x 80) was not found.
(actual names redacted)
The pool name and pool member name returned in the exception are all correct, which leads me to believe it's finding something. Operations against NodeAddresses work as expected on the v11.
Am I doing something wrong?
Thanks in advance,
Matt
4 Replies
- Hi Matt,
first of all, I always thought you needed to allocate an IPPortDefinition structure for the sessionState.member value before assigning it values. But, you would have got a runtime exception if that was a problem. If you are indeed getting back an error stating that the valid poolname and poolmember doesn't exist when it really does, then this is likely a product support problem.
One thing you might check is that in v11, we started a migration from the PoolMember interface back into the Pool interface. The PoolMember interface was marked deprecated and will eventually be removed. It should still work, but thought I'd bring that up. If you could try calling the LocalLB.Pool.set_member_session_enabled_state() method and seeing if that works. Info can be found here:
https://devcentral.f5.com/wiki/iControl.LocalLB__Pool__set_member_session_enabled_state.ashx
If that one works, then it's a problem with the implementation in the PoolMember.set_session_enabled_state() method.
I'll see if I can get some testing time in to try it out on my 11.1 box and see if I can reproduce.
-Joe - Another issue I just thought of could be a partition issue where you have your objects in a different partition than Common (which is the default). If so, you'll need to call the Management.Partition.set_active_partition() as defined here:
https://devcentral.f5.com/wiki/iControl.Management__Partition__set_active_partition.ashx
-Joe - mconnley_59873
Nimbostratus
Hi Joe,
Thanks for the follow-up. As it turned out, it was the partition issue. Which I should have known... But I was thrown by the fact that I apparently don't have to set the active partition to manage nodes.
Anyway, I'm good to go now, so thanks! - Todd_Cromwell_9
Nimbostratus
Note also that Management::Partition::set_active_folder was deprecated in version 11.0.0, as stated in the iControl SDK documentation and dev central.
System::Session::set_active_folder is the method to use now.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)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
