Technical Forum
Ask questions. Discover Answers.
cancel
Showing results for 
Search instead for 
Did you mean: 
Custom Alert Banner

Automated F5 LTM pre and post checks

Thanushka_Wije1
Nimbostratus
Nimbostratus

Hi

I'm trying to automate F5 check using F5sdk, unfortunately I think that sdk retrieve virtual server details via .conf file.

Reason I'm telling that is from sdk I'm unable to retrieve F5 Availability.

Below is the script I'm using to print virtual server names,

from f5.bigip import ManagementRoot

# Connect to the BigIP
hostname = input("Please Enter F5 IP: ")
mgmt = ManagementRoot(hostname, "admin", "admin")


# Get a list of all pools on the BigIP and print their names and Availability

virtuals = mgmt.tm.ltm.virtuals.get_collection()

for virtuals in virtuals:
   print(virtuals.name, virtuals.partition)

Anyone know how can I get availability status using F5 sdk ?

4 REPLIES 4

Hello Thanushka.

Try this ->

devices = session.tm.cm.devices.get_collection()
for device in devices:
	print("Device: {}".format(device.name))
	print("State: {}".format(device.failoverState))

Output:

Device: bigip1.mydomain.local
State: active
Device: bigip2.mydomain.local
State: standby

KR,

Dario.

Regards,
Dario.

Thanushka_Wije1
Nimbostratus
Nimbostratus

Hi Dario

 

Thanks for the responses, but this will return device HA status not the virtual server (Availability). status..

 

 

The availability of a virtual server resides in the stats

from f5.bigip import ManagementRoot
from f5.utils.responses.handlers import Stats
 
# ----------------------------------------------------------
 
session = ManagementRoot("F5_mgmt_IP","username","password",token=True)
 
virtual = session.tm.ltm.virtuals.virtual.load(name='testVS')
#https://<F5_mgmt_IP>/mgmt/tm/ltm/virtual/testVS
virtualstats = Stats(virtual.stats.load())
#https://<F5_mgmt_IP>/mgmt/tm/ltm/virtual/testVS/stats
for key, value in virtualstats.stat.items():
    if value.get('description') != None:
        print("{}: {}".format(key, value.get('description')))
    elif value.get('value') != None:
        print("{}: {}".format(key, value.get('value')))
 
# ----------------------------------------------------------

KR,

Dario.

Regards,
Dario.

JG
Cumulonimbus
Cumulonimbus
for virtual in virtuals:
    if hasattr(virtual, 'subPath'):
        subp = virtual.subPath
    else:
        subp = ""
 
    if (subp != ""):
        print("Name: '%s' AvailabilityState: '%s'" % (virtual.name, get_vs_state(virtual.name, subp)))
    else:
        print("Name: '%s' AvailabilityState: '%s'" % (virtual.name, get_vs_state(virtual.name, "")))