cancel
Showing results for 
Search instead for 
Did you mean: 
Login & Join the DevCentral Connects Group to watch the Recorded LiveStream (May 12) on Basic iControl Security - show notes included.

Unable to get few fields in the iControl REST Api response

Devjyoti
Nimbostratus
Nimbostratus

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 2

PeteWhite
F5 Employee
F5 Employee

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.

Satoshi_Toyosa1
F5 Employee
F5 Employee

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.