Skip to content

API Examples

Za Wilgustus edited this page Dec 21, 2015 · 24 revisions

This page will document how to use the BigIP API:

Simple example of CRUD calls

Each of the following example builds on the previous. We use an "LTM" "NAT" object for these examples.

CREATE

from f5.bigip import BigIP
bigip = BigIP("HOSTNAME", "USERNAME", "PASSWORD")
nat_obj_1 = bigip.ltm.nat_manager.create_nat(partition='TestPartition', name='Nat1', translationAddress='1.2.3.4', originatingAddress='1.2.3.5')

Notice: The Creation of an object is not called on the object itself, rather it is called on the relevant "manager", in this case "nat_manager". The other CRUD operations (Read, Update, and Delete) are called on the NAT object itself.

READ

nat_obj_1.read()

UPDATE

updated_version_nat_obj_1 = nat_obj_1.update({KEY_TO_UPDATE1: NEW_VALUE1, KEY_TO_UPDATE2:NEW_VALUE2, ...})

DELETE

nat_obj_1.delete()

A second function "managers" support

list_of_nat_objects = bigip.ltm.nat_manager.get_nats()

Example Operations on a different LTM functionality, "pool"

pool_obj = bigip.ltm.pool_manager.create_pool(${CONSTRUCTOR_REQUIRED_ARGS})
pool_objs_list = bigip.ltm.pool_manager.get_pools()

print pool_obj.name;          # Print an attribute that we set
print nat_obj.trafficGroup;   # Print an attribute that BIGIP set by default

READ

# Refresh the nat object with the current settings on the BIGIP
nat_obj.read()

# We can also get a filtered list of the nats on the device
list_of_nat_objs_in_SpecificPartition = bigip.ltm.nat_manager.get_nats(partition='SpecificPartition')
for n in list_of_nat_objs_in_SpecificPartition:
    print n.name

UPDATE

# Set an attribute and update it
nat_obj.trafficGroup = "Common/newgroup"
nat_obj.update()

# Update using key/value pairs
nat_obj.update(trafficGroup='Common/anothernewgroup')

# Update attribute and override with update (key/value pairs always override current settings)
nat_obj.arp = 'Enabled'
nat_obj.update(arp='Disabled')

DELETE

nat_obj.delete()

# This should raise an exception
print nat_obj.name
Clone this wiki locally