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 node information by node ID
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>"
}
}