Managing F5 load balancers with the python bigsuds library

Connecting to a GTM

from bigsuds import *
b = BIGIP(hostname = 'GTM_Name_orIP', username = 'your_username', password = 'your_password')
for pool in b.GlobalLB.Pool.get_list():
  for member in b.GlobalLB.Pool.get_member([pool]):
    for i in range(len(member[0])):
      print "Pool =", pool, \
            ", IP",member[i]['member']['address'], \
            "listens on port",member[i]['member']['port'], \
            "and its current state is", b.GlobalLB.PoolMember.get_enabled_state([pool], [[member[i]['member']]])[0][0]['state']

Enabling/Disabling an LTM member in a GTM

b.GlobalLB.PoolMember.get_enabled_state(['/Common/xyz-ecomm-pool'], [[{'address': '12.27.128.110', 'port': 80}]])
[[{'member': {'port': 80, 'address': '12.27.128.110'}, 'state': 'STATE_DISABLED'}]]
>>> b.GlobalLB.PoolMember.set_enabled_state(['/Common/xyz-ecomm-pool'], [[{'member': {'port': 80, 'address': '12.27.128.110'}, 'state': 'STATE_ENABLED'}]])
>>> b.GlobalLB.PoolMember.get_enabled_state(['/Common/xyz-ecomm-pool'], [[{'address': '12.27.128.110', 'port': 80}]])
[[{'member': {'port': 80, 'address': '12.27.128.110'}, 'state': 'STATE_ENABLED'}]]

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.