Coding Example¶
Managing LTM Pools and Members via the F5 SDK
from f5.bigip import ManagementRoot
# Connect to the BigIP and configure the basic objects
mgmt = ManagementRoot('10.190.7.161', 'admin', 'admin')
ltm = mgmt.tm.ltm
pools = mgmt.tm.ltm.pools
pool = mgmt.tm.ltm.pools.pool
# Create a pool
pool1 = mgmt.tm.ltm.pools.pool.create(name='pool1', partition='Common')
# Define a pool object and load an existing pool
pool_obj = mgmt.tm.ltm.pools.pool
pool_1 = pool_obj.load(partition='Common', name='pool1')
# We can also skip creating the object and load the pool directly
pool_2 = mgmt.tm.ltm.pools.pool.load(partition='Common', name='pool1')
# Make sure 1 and 2 have the same names and generation
assert pool_1.name == pool_2.name
assert pool_1.generation == pool_2.generation
print pool_1.name
pool1
print pool_2.name
pool1
print pool_1.generation
209
print pool_2.generation
209
# Update the pool description
pool_1.description = "This is my pool"
pool_1.update()
# Check the updated description
print pool_1.description
This is my first pool
# Since we haven't refreshed pool_2 it shouldn't match pool_1 any more
print pool_2.description
This is my pool
# Refresh pool_2 and check that is now equal
pool_2.refresh()
print pool_2.description
This is my first pool
print pool_1.generation
210
print pool_2.generation
208
# Create members on pool_1
members = pool_1.members_s
member = pool_1.members_s.members
m1 = pool_1.members_s.members.create(partition='Common', name='m1:80')
m2 = pool_1.members_s.members.create(partition='Common', name='m2:80')
# load the pool members
m1 = pool_1.members_s.members.load(partition='Common', name='m1:80')
m2 = pool_1.members_s.members.load(partition='Common', name='m2:80')
# Get all of the pool members for pool_1 and print their names
for member in members:
print member.name
# Delete our pool member m1
m1.delete()
# Make sure it is gone
if pool_1.members_s.members.exists(partition='Common', name='m1:80'):
raise Exception("Object should have been deleted")
# We are done with this pool so remove it from BIG-IP®
pool_1.delete()
# Make sure it is gone
if mgmt_rt.tm.ltm.pools.pool.exists(partition='Common', name='mypool'):
raise Exception("Object should have been deleted")