Nodes (dlbv3)

Nodes are a combination of an IP and a port that process requests directed from a pool in a virtual server. You can bind nodes to one or more pools.

Use the nodes API operations to list, delete, and update nodes.

Retrieve nodes

Create a node

Retrieve node statistics

Retrieve node information by node ID

Update a node

Delete a node

Retrieve node statistics

Disable node for maintenance

Enable node after maintenance

Offline node for maintenance

Online node after maintenance

Retrieve nodes

GET /nodes

This operation does not accept a request body.

Response

Retrieve a list of nodes

{
    "data": [
        {
            "id": "127.0.0.1",
            "address": "127.0.0.1",
            "appService": null,
            "connectionLimit": 0,
            "description": "a node",
            "dynamicRatio": 1,
            "fqdn": {
                "addressFamily": "ipv4",
                "autopopulate": "disabled",
                "downInterval": 5,
                "interval": 3600,
                "name": "none"
             },
            "logging": "disabled",
            "metadata": {},
            "monitorRule": {},
            "partition": "Common",
            "rateLimit": "disabled",
            "ratio": 1,
            "session": "user-enabled",
            "state": "unchecked"
        }
    ]
}

Create a node

Add a node to the load balancer.

You can use the event ID returned in the API response to submit an event request to verify that the operation completed and get the ID for the new node.

POST /nodes

Request

{
    "address": "162.242.206.208",
    "appService": null,
    "connectionLimit": 2,
    "description": "test truncated",
    "dynamicRatio": 11,
    "logging": "enabled",
    "rateLimit": "disabled",
    "ratio": 1
}

Response

The node was created successfully.

{
    "data": {
        "eventId": "<eventId:str>",
        "status": "PROCESSING",
        "resource": "Nodes",
        "timestamp": "2016-03-08T17:22:33.6249648Z",
        "eventRef": "/events/<eventId:str>"
    }
}

Retrieve node statistics

Retrieve statistics for all nodes added to the load balancer.

You can use the links in the response to retrieve information about a specific node.

GET /nodes/stats

This operation does not accept a request body.

Response

{
    "data": [
        {
            "id": "my-special-node",
            "address": "127.0.0.1",
            "curSessions": 1,
            "monitorRule": {
                "monitors": [
                    "default"
                ],
                "minimum": "all"
            },
            "serverside": {
                "bitsIn": 1,
                "bitsOut": 1,
                "curConns": 1,
                "maxConns": 2,
                "pktsIn": 1,
                "pktsOut": 1,
                "totConns": 1
            },
            "sessionStatus": "enabled",
            "status": {
                "availabilityState": "offline",
                "enabledState": "enabled",
                "statusReason": "Forced down"
            },
            "totRequests": 3
        }
    ]
}

Retrieve node information by node ID

Retrieve information about the node associated with the node ID.

GET /nodes/{nodeId}

This operation does not accept a request body.

Response

{
    "data": [
        {
            "id": "127.0.0.1",
            "address": "127.0.0.1",
            "appService": "none",
            "connectionLimit": 0,
            "description": "a node",
            "dynamicRatio": 1,
            "fqdn": {
                "addressFamily": "ipv4",
                "autopopulate": "disabled",
                "downInterval": 5,
                "interval": 3600,
                "name": "none"
            },
            "logging": "disabled",
            "monitorRule": {},
            "metadata": {},
            "partition": "Common",
            "rateLimit": "disabled",
            "ratio": 1,
            "session": "user-enabled",
            "state": "unchecked"
        }
    ]
}

Update a node

Change description and configuration settings for an existing node. You need the node ID to complete this operation.

PUT /nodes/{nodeId}

Request body

{
    "appService": null,
    "connectionLimit": 2,
    "description": "Updated node",
    "dynamicRatio": 11,
    "logging": "enabled",
    "rateLimit": "disabled",
    "ratio": 1
}

Response

The node was successfully updated.

{
    "data": {
        "eventId": "<eventId:str>",
        "status": "PROCESSING",
        "resource": "<nodeId:str>",
        "timestamp": "2016-03-08T17:22:33.6249648Z",
        "eventRef": "/events/<eventId:str>"
    }
}

Delete a node

Remove a node from the load balancer configuration. You need the node ID to complete this operation.

DELETE /nodes/{nodeId}

This operation does not accept a request body.

Response

The node was successfully deleted.

{
  "data": {
    "eventId": "<eventId:str>",
    "resource": "<nodeId:str>",
    "status": "PROCESSING",
    "timestamp": "2016-03-08T17:22:33.6349648Z",
    "eventRef": "/events/<eventId:str>"
  }
}

Retrieve node statistics

Retrieve information about availability, session status, monitor rules for the device with the specified node ID.

GET /nodes/{nodeId}/stats

This operation does not accept a request body.

Response

Returns statistics for the specified node.

{
    "data": [
        {
            "id": "my-special-node",
            "address": "127.0.0.1",
            "curSessions": 1,
            "monitorRule": {
                "monitors": [
                    "default"
                ],
                "minimum": "all"
            },
            "serverside": {
                "bitsIn": 1,
                "bitsOut": 1,
                "curConns": 1,
                "maxConns": 2,
                "pktsIn": 1,
                "pktsOut": 1,
                "totConns": 1
            },
            "sessionStatus": "enabled",
            "status": {
                "availabilityState": "offline",
                "enabledState": "enabled",
                "statusReason": "Forced down"
            },
            "totRequests": 3
        }
    ]
}

Disable node for maintenance

This setting allows the node (all services on an IP address) to accept only new connections that match an existing persistence session. Use this feature to prevent new connections to a node without affecting existing client connections on the same node.

To re-enable the node, see: Enable node after maintenance.

It is important to understand differences between Disable versus offline.

PUT /nodes/{node_ID}

Request body

{
    "session": "user-disabled"
}

Response

{
"data": {
    "eventId": "<eventId:str>",
    "status": "PROCESSING",
    "resource": "<nodeId:str>",
    "timestamp": "2016-03-08T17:22:33.6249648Z",
    "eventRef": "/events/<eventId:str>"
    }
}

Enable node after maintenance

This setting allows the node (all services on an IP address) to accept new connections. Use this feature to enable a node after maintenance.

PUT /nodes/{nodeId}

Request body

{
    "session": "user-enabled"
}

Response

{
"data": {
    "eventId": "<eventId:str>",
    "status": "PROCESSING",
    "resource": "<nodeId:str>",
    "timestamp": "2016-03-08T17:22:33.6249648Z",
    "eventRef": "/events/<eventId:str>"
    }
}

Offline node for maintenance

This setting forces a node offline and allows only active connections.

To bring the node back online, see: Online node after maintenance.

It is important to understand differences between Disable versus offline.

Request body

{
    "state": "user-down"
}

Response

{
"data": {
    "eventId": "<eventId:str>",
    "status": "PROCESSING",
    "resource": "<nodeId:str>",
    "timestamp": "2016-03-08T17:22:33.6249648Z",
    "eventRef": "/events/<eventId:str>"
    }
}

Online node after maintenance

Use this setting to bring a node back online, usually after maintenance.

Request body

{
    "state": "user-up"
}

Response

{
"data": {
    "eventId": "<eventId:str>",
    "status": "PROCESSING",
    "resource": "<nodeId:str>",
    "timestamp": "2016-03-08T17:22:33.6249648Z",
    "eventRef": "/events/<eventId:str>"
    }
}