Get All Pool Member Status Using LTM, Python, and bigsuds
Problem this snippet solves:
I spent a bit of time trying to get this to work. Delivering the data in the correct format to the get_member_session_status method took me a while, so I thought I would post my solution.
Code :
#!/usr/bin/env python
import sys
import bigsuds
def get_pools(obj):
try:
return obj.LocalLB.Pool.get_list()
except Exception, e:
print e
def get_members(obj, pool):
try:
return pool, obj.LocalLB.Pool.get_member_v2(pool)
except Exception, e:
print e
def get_status(obj, pool):
try:
return obj.LocalLB.Pool.get_member_session_status(pool)
except Exception, e:
print e
try:
b = bigsuds.BIGIP(
hostname = “”,
username = "admin",
password = “admin”,
)
except Exception, e:
print e
pools = get_pools(b)
members = get_members(b, pools)
for pool in pools:
print "Pool: %s" % pool
members = b.LocalLB.Pool.get_member_v2([pool])
status = b.LocalLB.Pool.get_member_session_status([pool], members)
print "\tMembers:"
for members, status in zip(members, status):
count = 0
while count < len(members):
print "\t\tHost: %s\tState: %s" % (members[count]["address"], status[count])
count += 1 Tested this on version:
11.6Published Aug 19, 2015
Version 1.0Mark_Stradling_
Cirrus
Joined February 25, 2010
Mark_Stradling_
Cirrus
Joined February 25, 2010
3 Comments
- Robert_47833
Altostratus
ha, I catch u eventually - John_Heyer_1508
Cirrostratus
Note that this will only show the admin status of each member. To get the healthcheck status, use: b.LocalLB.Pool.get_member_monitor_status([pool], members) - Geoff_34657
Nimbostratus
How hard would it be to make this a webpage? I am happy I can see this information but, when you have a hundred pools and hundreds of nodes it just scrolls through the screen. I have just started working with psp but, it doesn't seem that this easily translates to that type.