BigSuds: Different status on LocalLB.Pool.get_member_monitor_status
Hello,
I have a problem when I get status of members from pools.
Environment:
- A vcmp instance (BIG-IP 11.4.1 Build 675.0 Hotfix HF7)
- 2 pools: pool_test_01 and pool_test_02, with http monitor (same for both pools)
- 1 nodes: node001
- bigsuds: '1.0.1'
- node001 is marked down by monitor in pool_test_01
- node001 is marked as " Offline (Enabled) - Forced down" in pool_test_02
Which give to me :
LocalLB.Pool.get_member_monitor_status(['pool_test_01'], [[{'address': 'node001', 'port': 80}]])
=> [['MONITOR_STATUS_DOWN']] => ok, everything is coherent
LocalLB.Pool.get_member_monitor_status(['pool_test_02'], [[{'address': 'node001', 'port': 80}]])
=> [['MONITOR_STATUS_FORCED_DOWN']] => ok, still as expected
My Problem:
If I want to get the status of node001, from both pools at the same time, using:
LocalLB.Pool.get_member_monitor_status(['pool_test_01', 'pool_test_02'], [[{'address': 'node001', 'port': 80}]])
=> [['MONITOR_STATUS_DOWN', 'MONITOR_STATUS_DOWN']] But an expected result could be:
=> [['MONITOR_STATUS_DOWN', 'MONITOR_STATUS_FORCED_DOWN']]
So, I don't know if it's a bug in my code, in BigSuds, ... I have also try to set node name 2 times, like:
LocalLB.Pool.get_member_monitor_status(['pool_test_01', 'pool_test_02'], [[{'address': 'node001', 'port': 80},{'address': 'node001', 'port': 80}]])
But in this case I have : [['MONITOR_STATUS_DOWN', 'MONITOR_STATUS_DOWN', 'MONITOR_STATUS_DOWN', 'MONITOR_STATUS_DOWN']]
If I set the node 2 times like that: LocalLB.Pool.get_member_monitor_status(['pool_test_01', 'pool_test_02'], [[{'address': 'node001', 'port': 80}], [{'address': 'node001', 'port': 80}]])
I get: [['MONITOR_STATUS_DOWN', 'MONITOR_STATUS_DOWN'], ['MONITOR_STATUS_FORCED_DOWN', 'MONITOR_STATUS_FORCED_DOWN']]
And even if the last exemple could be a valid response, it sounds like a loop problem somewhere...
If someone has an idea on how to debug/fix, I'm interested :)
Have a good day :)
--
G2.
Try this:
LocalLB.Pool.get_member_monitor_status(['pool_test_01', 'pool_test_02'], [[{'address': 'node001', 'port': 80}],[{'address': 'node001', 'port': 80}]])