Pools are customizable containers configured on load balancers to specify the back-end devices (nodes) for managing web traffic. Each pool can contain zero or more nodes, known as a pool member. You can bind pools to one or more virtual servers.
Use the following operations to view and manage pools.
Retrieve pools
Retrieve information about all pools created in the current load balancer.
GET /pools
This operation does not accept a request body.
Response
{
"data": [
{
"id": "POOL-127.0.0.1-80",
"allowNat": "yes",
"allowSnat": "yes",
"appService": null,
"gatewayFailsafeDevice": null,
"ignorePersistedWeight": "disabled",
"ipTosToClient": "pass-through",
"ipTosToServer": "pass-through",
"linkQosToClient": "pass-through",
"linkQosToServer": "pass-through",
"loadBalancingMode": "round-robin",
"metadata": [],
"minActiveMembers": 0,
"minUpMembers": 0,
"minUpMembersAction": "failover",
"minUpMembersChecking": "disabled",
"partition": "Common",
"profiles": null,
"queueDepthLimit": 0,
"queueOnConnectionLimit": "disabled",
"queueTimeLimit": 0,
"reselectTries": 0,
"serviceDownAction": null,
"slowRampTime": 10,
"description": null,
"members": {},
"monitorRule": {}
}
]
}
Retrieve pool statistics
Retrieve statistics for all associated pools in a load balancer.
GET /pools/stats
This operation does not accept a request body.
Response
Retrieve a list of stats.
{
"data": [
{
"id": "POOL-127.0.0.1-80",
"activeMemberCnt": 1,
"connq": {
"ageEdm": 0,
"ageEma": 0,
"ageHead": 0,
"ageMax": 0,
"depth": 0,
"serviced": 0
},
"connqAll": {
"ageEdm": 0,
"ageEma": 0,
"ageHead": 0,
"ageMax": 0,
"depth": 0,
"serviced": 0
},
"curSessions": 0,
"minActiveMembers": 0,
"monitorRule": {
"monitors": [
"MON-TCP-80"
],
"minimum": "all"
},
"name": "POOL-127.0.0.1-80",
"totRequests": 0,
"serverside": {
"bitsIn": 0,
"bitsOut": 0,
"curConns": 0,
"maxConns": 0,
"pktsIn": 0,
"pktsOut": 0,
"totConns": 0
},
"status": {
"availabilityState": "available",
"enabledState": "enabled",
"statusReason": "The pool is available"
}
}
]
}
Retrieve a pool by ID
Retrieve information about a specified pool by using the pool ID. Use the Retrieve pools operation to retireve all pools.
GET /pools/{poolId}
This operation does not accept a request body.
Response
Retrieve the pool specified.
{
"data": [
{
"id": "POOL-127.0.0.1-80",
"allowNat": "yes",
"allowSnat": "yes",
"appService": null,
"gatewayFailsafeDevice": null,
"ignorePersistedWeight": "disabled",
"ipTosToClient": "pass-through",
"ipTosToServer": "pass-through",
"linkQosToClient": "pass-through",
"linkQosToServer": "pass-through",
"loadBalancingMode": "round-robin",
"metadata": [],
"minActiveMembers": 0,
"minUpMembers": 0,
"minUpMembersAction": "failover",
"minUpMembersChecking": "disabled",
"partition": "Common",
"profiles": null,
"queueDepthLimit": 0,
"queueOnConnectionLimit": "disabled",
"queueTimeLimit": 0,
"reselectTries": 0,
"serviceDownAction": null,
"slowRampTime": 10,
"description": "none",
"members": {},
"monitor": {},
"monitorRule": {
"minimum": 1,
"names": [
"tcp"
]
}
}
]
}
Update a pool
Update the configuration for a specified pool.
PUT /pools/{poolId}
This operation does not accept a request body.
Request body
{
"allowNat": "yes",
"allowSnat": "yes",
"appService": null,
"description": null,
"gatewayFailsafeDevice": null,
"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",
"profiles": null,
"queueDepthLimit": 0,
"queueOnConnectionLimit": "disabled",
"queueTimeLimit": 0,
"reselectTries": 0,
"serviceDownAction": null,
"slowRampTime": 10
}
Response
{
"data": {
"eventId": "<eventId:str>",
"status": "PROCESSING",
"resource": "<poolId:str>",
"timestamp": "2016-03-24T10:41:08.6194067Z",
"eventRef": "/events/<eventId:str>"
}
}
Remove a pool
Remove a specified pool from the load balancer configuration.
DELETE /pools/{poolId}
This operation does not accept a request body.
Response
Delete a pool specified by using a Pool ID.
{
"data": {
"eventId": "<eventId:str>",
"status": "PROCESSING",
"resource": "<poolId:str>",
"eventRef": "/events/<eventId:str>",
"timestamp": "2016-03-24T10:41:08.6194067Z"
}
}
Retrieve a monitor rule for a pool
Retrieve a monitor rule associated with a specified pool.
GET /pools/{poolId}/monitor-rule
This operation does not accept a request body.
Response
Retrieve the monitor-rule specified.
{
"data": [
{
"names": [
"https_443",
"real_server",
"tcp_echo"
],
"minimum": 1
}
]
}
Update a monitor rule for a pool
Update the monitor rule applied to a specified pool. Use the retrieve monitors by pool ID operation to find the monitor rule name.
PUT /pools/{poolId}/monitor-rule
Request body
{
"names": [
"tcp"
],
"minimum": "all"
}
Response
{
"data": {
"eventId": "<eventId:str)",
"status": "PROCESSING",
"resource": "<poolId:str>",
"timestamp": "2016-03-16T17:09:53.1059638Z",
"eventRef": "/events/<eventId:str>"
}
}
Add a monitor rule to a pool
Add a monitor rule to a specified pool. To find the names of the available monitors, submit a GET monitors request.
POST /pools/{poolId}/monitor-rule
Request body
{
"names": [
"tcp"
],
"minimum": 1
}
Response
{
"data": {
"eventId": "<eventId:str>",
"status": "PROCESSING",
"timestamp": "2016-03-18T03:18:35.5077939Z",
"resource": "<poolId:str>",
"eventRef": "/events/<eventId:str>"
}
}
Remove monitor rule from a pool
Delete a monitor rule for the specified pool.
When you delete a monitor-rule, the system deletes all monitors associated to the pool as well.
DELETE /pools/{poolId}/monitor-rule
This operation does not accept a request body.
Response
{
"data": {
"eventId": "<eventId:str]",
"status": "PROCESSING",
"resource": "<poolId:str>",
"timestamp": "2016-03-16T17:09:53.1059638Z",
"eventRef": "/events/<eventId:str>"
}
}
Retrieve pool member statistics for a pool
Retrieve statistics for each pool member in a specified pool, including configuration settings, availability, and monitoring status. The response includes links to access a detail view for each member.
GET /pools/{poolId}/stats
This operation does not accept a request body.
Response
{
"data": [
{
"id": "test1:80",
"activeMemberCnt": 0,
"address": "127.0.0.1",
"connq": {
"ageEdm": 0,
"ageEma": 0,
"ageHead": 0,
"ageMax": 0,
"depth": 0,
"serviced": 0
},
"connqAll": {
"ageEdm": 0,
"ageEma": 0,
"ageHead": 0,
"ageMax": 0,
"depth": 0,
"serviced": 0
},
"curSessions": 0,
"minActiveMembers": 0,
"monitorRule": {
"monitors": [
"default"
],
"minimum": "all"
},
"name": "test1:80",
"serverside": {
"bitsIn": 0,
"bitsOut": 0,
"curConns": 0,
"maxConns": 0,
"pktsIn": 0,
"pktsOut": 0,
"totConns": 0
},
"status": {
"availabilityState": "unknown",
"enabledState": "enabled",
"statusReason": "Pool member does not have service checking enabled"
},
"totRequests": 0
}
]
}