Pools (dlbv3)

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
      }
   ]
}