For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Forum Discussion

Akash9920's avatar
Akash9920
Icon for Nimbostratus rankNimbostratus
Nov 09, 2020

get virtual list based on vip/destination filter [request params]?

Hi folks and python developers, I am looking for a solution to a question. Currently I am using python sdk to get the list of the virtuals with filter option as partition and destination/vip? I have tried following things and unable to achieve that:

virtuals = mgmt.tm.ltm.virtuals.get_collection(requests_params={
    'params': 'expandSubcollections=true&$filter=partition+eq+partition&$destination+eq+vip')}

What I am trying to do is for a given device , partition, vip I want to get the list of the virtuals. s there a way to wild card for destination?

articles i referred are:

1) https://devcentral.f5.com/s/articles/getting-started-with-the-python-sdk-part-4-working-with-request-parameters-31420

2) https://devcentral.f5.com/s/articles/demystifying-icontrol-rest-part-3-how-to-pass-query-parameters-and-tmsh-options

3)

1 Reply

  • I'm confused why your filter ends with $destination+eq+vip

    Take a look at https://www.odata.org/documentation/odata-version-2-0/uri-conventions/#FilterSystemQueryOption for the odata syntax

    Your string handling is also not correct

    My thinking is that from a Python perspective you want:

    partition = "myPartition"
    destination="1.2.3.4:443"
    virtuals = mgmt.tm.ltm.virtuals.get_collection(requests_params={    'params': 'expandSubcollections=true&$filter=partition+eq+' + partition + 'and+destination+eq+' + vip)}

    A good way to test this is to create the filter string and then insert it into the command, so you can print it out first

    eg

    partition = "myPartition"
    destination="1.2.3.4:443"
    filterString = 'expandSubcollections=true&$filter=partition+eq+' + partition + 'and+destination+eq+' + vip
    print("filterString:" + filterString) 
    virtuals = mgmt.tm.ltm.virtuals.get_collection(requests_params={    'params': filterString)}

    You can also use my iCR python module for a simple script