Forum Discussion

A_J_'s avatar
A_J_
Icon for Altostratus rankAltostratus
Oct 21, 2021

How to get all servers in a GTM pool (Python f5-sdk)

I am sure this is quite simple but I can't find reference to this in documentation.

pool = mgmt.tm.gtm.pools.a_s.a.load(name='poolname')

Once i've loaded it, how can I see what servers are in this pool and get their name(s)? I would also like to do the same with wideips, gather all pools in each one to see if a particular pool is being used by it. (Version 12)

  • xuwen's avatar
    xuwen
    Icon for Cumulonimbus rankCumulonimbus

    this code for type A and partition is Common:

    from f5.bigip import ManagementRoot

     

    mgmt = ManagementRoot('192.168.5.109', 'admin', 'xt32112300')

     

    for i in mgmt.tm.gtm.wideips.a_s.get_collection():

    try:

    type_A_wideip = mgmt.tm.gtm.wideips.a_s.a.load(name=i.name)

    except Exception as e:

    print('type A widip name {} error msg is '.format(i.name) + str(e))

    else:

    if hasattr(type_A_wideip, 'pools'):

    for pool_name in type_A_wideip.pools:

    gslb_A_pool = mgmt.tm.gtm.pools.a_s.a.load(name=pool_name['name'])

    gslb_pool_members_vs_name_list = [str(mem.name) for mem in gslb_A_pool.members_s.get_collection()]

    print('type A wideip name: {} use gslb pool name is: {}; gslb_pool_members_vs_name_list: {}'.format(i.name, pool_name['name'], gslb_pool_members_vs_name_list))

     

     

    code running result:

    type A wideip name: www.bank.com use gslb pool name is: gslb_pool; gslb_pool_members_vs_name_list: ['dc1-vs', 'dc2-vs']

    type A wideip name: www.gslb.xuwen.com use gslb pool name is: gslb_pool; gslb_pool_members_vs_name_list: ['dc1-vs', 'dc2-vs']

     

    Process finished with exit code 0

    • A_J_'s avatar
      A_J_
      Icon for Altostratus rankAltostratus

      This is great! Very helpful. I can use this as a reference. I want to take a VS, find what pools it is in, then what wideip has that pool.