19-Jun-2019
13:24
- last edited on
01-Jun-2023
14:59
by
JimmyPackets
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 ?
19-Jun-2019
14:49
- last edited on
01-Jun-2023
14:59
by
JimmyPackets
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.
19-Jun-2019 14:53
Hi Dario
Thanks for the responses, but this will return device HA status not the virtual server (Availability). status..
20-Jun-2019
00:09
- last edited on
01-Jun-2023
14:59
by
JimmyPackets
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.
19-Jun-2019
23:52
- last edited on
01-Jun-2023
14:59
by
JimmyPackets
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, "")))