Forum Discussion

Devjyoti's avatar
Devjyoti
Icon for Nimbostratus rankNimbostratus
Nov 17, 2020

Unable to get few fields in the iControl REST Api response

The iControlREST APi response seems to eliminate fields that are not configured in F5. Below is one example.

I tried quering http://<F5 IP>/mgmt/tm/ltm/pool, for a pool where a monitor is configured, the API returns the monitor field , however, if a monitor is not configured (or) in disabled state, the "monitor" field is absent. Is this how the iControl REST API normally works. Ideally, it should give all the field names in the API output and an empty value field if a property is not configured rather than completing removing the field. Please advice.

 

{

​​​​​​​​

"kind": "tm:ltm:pool:poolcollectionstate",

"selfLink": "https://localhost/mgmt/tm/ltm/pool?ver=15.1.0.5",

"items": [{

​​​​​​​​

"kind": "tm:ltm:pool:poolstate",

"name": " devtest",

"partition": "Common",

"fullPath": "/Common/ devtest",

"generation": 111763,

"selfLink": "https://localhost/mgmt/tm/ltm/pool/~Common~ devtest?ver=15.1.0.5",

"allowNat": "yes",

"allowSnat": "yes",

"ignorePersistedWeight": "disabled",

"ipTosToClient": "pass-through",

"ipTosToServer": "pass-through",

"linkQosToClient": "pass-through",

"linkQosToServer": "pass-through",

"loadBalancingMode": "round-robin",

"minActiveMembers": 0,

"minUpMembers": 0,

"minUpMembersAction": "failover",

"minUpMembersChecking": "disabled",

"queueDepthLimit": 0,

"queueOnConnectionLimit": "disabled",

"queueTimeLimit": 0,

"reselectTries": 0,

"serviceDownAction": "none",

"slowRampTime": 10,

"membersReference": {

​​​​​​​​

"link": "https://localhost/mgmt/tm/ltm/pool/~Common~ devtest/members?ver=15.1.0.5",

"isSubcollection": true

}​​​​​​​​

}​​​​​​​​, {

​​​​​​​​

"kind": "tm:ltm:pool:poolstate",

"name": " devtest1",

"partition": "Common",

"fullPath": "/Common/ devtest1",

"generation": 1,

"selfLink": "https://localhost/mgmt/tm/ltm/pool/~Common~ devtest1?ver=15.1.0.5",

"allowNat": "yes",

"allowSnat": "yes",

"ignorePersistedWeight": "disabled",

"ipTosToClient": "pass-through",

"ipTosToServer": "pass-through",

"linkQosToClient": "pass-through",

"linkQosToServer": "pass-through",

"loadBalancingMode": "least-connections-member",

"minActiveMembers": 0,

"minUpMembers": 0,

"minUpMembersAction": "failover",

"minUpMembersChecking": "disabled",

"monitor": "/Common/tcp",

"queueDepthLimit": 0,

"queueOnConnectionLimit": "disabled",

"queueTimeLimit": 0,

"reselectTries": 0,

"abc": "uwdhuq

"serviceDownAction": "reset",

"slowRampTime": 10,

"membersReference": {

​​​​​​​​

"link": "https://localhost/mgmt/tm/ltm/pool/~Common~ devtest1/members?ver=15.1.0.5",

"isSubcollection": true

}​​​​​​​​

}​​​​​​​​,

2 Replies

  • Yes, this is my understanding which I use in my scripts ie check whether the element is in the array. I use my iCR Python module which makes that part simple.

  • You can find all the properties by appending 'example' to the endpoint: e.g., /mgmt/tm/ltm/pool/example. Compare the output against the one you get from the GET request to your pool, so that you can find the properties that are missing.