question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Unable to check if the GSLB pool member "exists" using SDK and get the member configuration using "load"

See original GitHub issue

I am trying to check if the pool member exists in a GSLB pool using SDK.

I have created a GSLB pool with name - “gslb_pool” and have added and added LTM server with name and can see that all the vip’s in the LTM are being discovered.

url to make actual get call is - https://xx.x.xxx.xx:xxx/mgmt/tm/gtm/pool/a/~Common~gslb_pool/members/~Common~sanjoseltm:~Common~createdwetwo

By using the subPath option, I was able to provide all the details which SDK can use to construct the actual url but it misses to add the tilda sign (~) and also avoids me to add a tilda sign (~) in the subPath.

command used:
gslbpool.members_s.member.exists(name='createdwetwo',partition="Common", subPath="sanjoseltm:Common")

URL constructed:
https://xx.x.xxx.xx:xxx/mgmt/tm/gtm/pool/a/~Common~gslb_pool/members/~Common~sanjoseltm:Common~createdwetwo

Since we cannot use special characters in the subPath, the above method makes a service call to

~Common~sanjoseltm:Common~createdwetwo instead of
~Common~sanjoseltm:~Common~createdwetwo

Thus, there is no way we can use exists or load method for checking or getting the member details of a GSLB pool.

After debugging and going through the BIG IP f5-dns SDK, this is the only way to check weather the pool member exists:

workaround 1: Step 1. Get the collection using below code:

   gslbpool = mgmt.tm.gtm.pools.a_s.a.load(name="gslb_pool",partition="Common")

Step 2. Iterate through the gslb pool collection and check whether it exists. Pass the path in the suffix while using exists or loads:

workaround 2: Instead of using the above steps other way to check is to pass the path of the member and pass it as suffix as below:

if gslbpool.members_s.member.exists(suffix="**/~Common~sanjoseltm:~Common~createdwetwo**", name=""):

I believe this is a bug and needs to be fixed so that developers can use the SDK for GSLB functions as well. Please let me know if I have missed something and there are other ways to do this.

In short:

With current version of SDK, we are not able to use “exists”, “load” methods to check if the GSLB pool member exists and get the configuration of a pool member.

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:6

github_iconTop GitHub Comments

1reaction
manojk011commented, Mar 18, 2019

can you put your code specifics in a code block? Some stuff is being rendered incorrectly, making it difficult to figure out what your problem is @manojk011

0reactions
manojk011commented, Apr 2, 2019

Thank you Jason. I will test it out.

Regards Manoj

On Mon, Apr 1, 2019 at 5:20 PM Jason Rahm notifications@github.com wrote:

@manojk011 https://github.com/manojk011, I released 1.3.12 of the icontrol library, so if you upgrade that sdk dependency, you can now use transform_subpath=True and exists should work for you.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/F5Networks/f5-common-python/issues/1522#issuecomment-478794365, or mute the thread https://github.com/notifications/unsubscribe-auth/AoxlmcuVq2eDmrsDYUVnoAG8gvRDlQ5Lks5vcqJJgaJpZM4bpe7g .

Read more comments on GitHub >

github_iconTop Results From Across the Web

Creating or managing GSLB DNAME pool members ... - AskF5
Your BIG-IP DNS system is configured with a GSLB CNAME pool. Using the Configuration utility, you attempt to modify the GSLB CNAME pool...
Read more >
DELL EMC ECS WITH F5
Two primary options for routing exist for the pool members, in our case, ECS nodes: 1. The default route on the ECS nodes...
Read more >
Identifying GSLB Pool Member by IP Address or Virtual Service
IP(v4/v6) Address or FQDN. The pool member is identified by its IP address or by a FQDN that is resolved to an IP...
Read more >
GKE Ingress for HTTP(S) Load Balancing - Google Cloud
For a comprehensive list, see Ingress configuration. Container-native load balancing. Note: This feature is not supported with Windows Server node pools.
Read more >
Pulse Secure Virtual Traffic Manager 21.2: User's Guide
Ivanti makes no warranty for the use of this document and assumes no responsibility for any errors ... member is running the same...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found