def read_stats_from_device(self, resource): stats = Stats(resource.stats.load()) return stats.stat
action = "" # default value is none. # fail = mgmt.tm.sys.failover.load() failOverStat = fail.apiRawValues['apiAnonymous'].rstrip() # fields = failOverStat.strip().split() aabbcc = fields[1] print(aabbcc) # pool_list = [] #pool_list.append(nodeMember + ":" + nodeMemberPort) # for poolna in pools: #print(poolna.name) my_pool = mgmt.tm.ltm.pools.pool.load(partition='Common', name=poolna.name) pool_stats = Stats(my_pool.stats.load()) #print(pool_stats.stat.status_availabilityState) currm = pool_stats.stat.availableMemberCnt['value'] if currm <= 1: print(currm) continue else: member_nodes = [ member.fullPath.split(':')[0] for member in poolna.members_s.get_collection() ] member_nodes_name = [ member.name for member in poolna.members_s.get_collection() ] # member_address = [
#pmaddrsp1 = [i.split('|')[1] for i in pmaddrsp] if aabbcc in ["active"]: for i in pmaddrsp: try: pamaddrsp1 = i.split('|')[1] pamaddrsp0 = i.split('|')[0] if pamaddrsp1 in member_list: print("poolName :{} poomMember :{} poolMemberaddr: {}". format(pmname, pamaddrsp0, pamaddrsp1)) pooln = mgmt.tm.ltm.pools.pool.load(name=pmname, partition='Common') #pm1 = pooln.members_s.members.load(partition='Common', name=pamaddrsp0) member = pooln.members_s.members.load( partition='Common', name=pamaddrsp0) #my_pool = mgmt.tm.ltm.pools.pool.load(partition='Common', name=pmname) pool_stats = Stats(pooln.stats.load()) #print(pool_stats.stat.status_availabilityState) currm = pool_stats.stat.availableMemberCnt['value'] if action == 'enabled': # enables member logger.info( 'enables member %s, previous state: %s' % (member.name, member.state)) member.state = 'user-up' member.session = 'user-enabled' elif action == 'checked': # Checl online member stt = member.session #logger.info('checked online member %s, previous state: %s' % # (member.name, member.state)) print(
def get_virtual_state(self, v_name, v_partition='Common'): """ Function to retrieve current virtual server availability status """ virtual_stat = self.mgmt.tm.ltm.virtuals.virtual.load( name=v_name, partition=v_partition) stats = Stats(virtual_stat.stats.load()) return stats.stat.status_availabilityState['description']
def get_pool_state(self, p_name, p_partition='Common'): """ Function to retrieve current pool availability status """ pool_stat = self.mgmt.tm.ltm.pools.pool.load(name=p_name, partition=p_partition) stats = Stats(pool_stat.stats.load()) return stats.stat.status_availabilityState['description']
if name not in unique: # 2nd loop unique.append(name) # print("\n") now = datetime.datetime.now() fnames = "開關機" for x in unique: my_pool = mgmt.tm.ltm.pools.pool.load(partition='Common', name=(x)) my_pool_mbrs = my_pool.members_s.get_collection() Count = 0 print ( "\n" ) print ("\033[0;37;44m\tCurrent Run date and time : \033[0m") print (now.strftime("\033[0;37;45m\t%Y-%m-%d %H:%M:%S\t\t\033[0m")) for pool_mbr in my_pool_mbrs: mbr_stats = Stats(pool_mbr.stats.load()) dic_test = mbr_stats.stat.nodeName dic_test1 = dic_test['description'] dic_test2 = dic_test1.replace('/Common/', '') dic_btest = mbr_stats.stat.status_availabilityState dic_btest1 = dic_btest['description'] dic_ctest = mbr_stats.stat.serverside_curConns dic_ctest1 = dic_ctest['value'] dic_dtest = mbr_stats.stat.status_enabledState dic_dtest1 = dic_dtest['description'] Count = ((Count+1)) #print ( "%s_%02d pool_member: [ %s ] 主機狀態 : %s 目前連線數 : \033[43m[ %s ]\033[0m" % (fnames, Count, dic_test2, dic_btest1, dic_ctest1) ) if (dic_btest1 == 'available' or dic_dtest1 != 'enabled' or dic_btest1 == 'offline'): if (dic_dtest1 == 'enabled' and dic_btest1 == 'available'): print("%s pool_member: [ %s ] 主機狀態 : \033[0;37;42m[ %s ]\033[0m 目前連線數 : \033[43m[ %s ]\033[0m" %(x, dic_test2, dic_btest1, dic_ctest1)) elif (dic_dtest1 != 'disabled' or dic_btest1 != 'offline'):
######################################################################### # title: Collect_VS_Stats.py # # author: Dario Garrido # # date: 20200409 # # description: Collect VS Stats from an already kwown VS name # ######################################################################### 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'))) # ----------------------------------------------------------
# REQUIREMENTS: --- # BUGS: --- # NOTES: --- # AUTHOR: Oscarob Wu([email protected]), # ORGANIZATION: # VERSION: 1.0 # Created Time: 2021-01-25 09:29:36 # Last modified: 2021-01-25 09:37 # REVISION: --- #=============================================================================== from f5.bigip import ManagementRoot from f5.utils.responses.handlers import Stats from pprint import pprint # Get login password from CLI F5_host = input('F5_Host: ') F5_user = input('Username: '******'Password: '******'Common', name='my_virtual') my_pool = mgmt.tm.ltm.pools.pool.load(partition='Common', name='my_pool') v_stats = Stats(my_virtual.stats.load()) p_stats = Stats(my_pool.stats.load()) pprint(v_stats.stat) pprint(p_stats.stat) print(v_stats.stat.status_availabilityState) print(p_stats.stat.status_availabilityState)