Endurance

GSLB

GSLB Real servers

In GSLB, the Real Servers are the endpoints returned to clients in DNS responses.

Real servers

Get all GSLB RealServers

GET /gslb/realservers

curl
curl -X GET "https://appliance.example.com/api/v1/gslb/realservers" \
  -H "Authorization: Bearer $TOKEN"
PHP
<?php

$url = 'https://appliance.example.com/api/v1/gslb/realservers';
$headers = [
    'Authorization: Bearer ' . $token,
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests

headers = {"Authorization": f"Bearer {token}"}

response = requests.get("https://appliance.example.com/api/v1/gslb/realservers", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/gslb/realservers', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

const data = await response.json();
Bruno
meta {
  name: List the GSLB real servers
  type: http
  seq: 1
}

get {
  url: https://{{node-0}}:{{port}}/api/v1/gslb/realservers
  body: none
  auth: bearer
}

auth:bearer {
  token: {{token}}
}
Response
{
  "status": "success",
  "message": "RealServer/s",
  "data": [
    {
      "id": "5ca-36c-d10-655",
      "ip": "10.0.0.1",
      "monitorIp": "10.0.0.1",
      "name": "realserver1",
      "weight": 10,
      "usage": [
        {
          "service": "gslb",
          "serviceFullName": "GSLB",
          "serviceId": "8f2-b41-6d0-3a7",
          "serviceName": "backend1",
          "serviceNodeId": null,
          "section": "GSLB:Backend",
          "sectionFullName": "Backend"
        }
      ]
    }
  ]
}

Add a GSLB RealServer

POST /gslb/realservers

This change is staged. Send PUT /services/apply to apply it.

Body parameters
name string Required
ip string Required
monitorIp string
weight integer
curl
curl -X POST "https://appliance.example.com/api/v1/gslb/realservers" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "<name>",
  "ip": "<ip>",
  "monitorIp": "<monitorIp>",
  "weight": 0
}'
PHP
<?php

$url = 'https://appliance.example.com/api/v1/gslb/realservers';
$headers = [
    'Authorization: Bearer ' . $token,
    'Content-Type: application/json',
];

$payload = [
    'name' => '<name>',
    'ip' => '<ip>',
    'monitorIp' => '<monitorIp>',
    'weight' => 0,
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => json_encode($payload),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests

headers = {"Authorization": f"Bearer {token}"}
payload = {
    "name": "<name>",
    "ip": "<ip>",
    "monitorIp": "<monitorIp>",
    "weight": 0
}

response = requests.post("https://appliance.example.com/api/v1/gslb/realservers", headers=headers, json=payload)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/gslb/realservers', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${token}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
  "name": "<name>",
  "ip": "<ip>",
  "monitorIp": "<monitorIp>",
  "weight": 0
}),
});

const data = await response.json();
Bruno
meta {
  name: Create a GSLB real server
  type: http
  seq: 1
}

post {
  url: https://{{node-0}}:{{port}}/api/v1/gslb/realservers
  body: json
  auth: bearer
}

headers {
  Content-Type: application/json
}

auth:bearer {
  token: {{token}}
}

body:json {
  {
    "name": "<name>",
    "ip": "<ip>",
    "monitorIp": "<monitorIp>",
    "weight": 0
  }
}
Response
{
  "status": "success",
  "message": "RealServer added",
  "data": {
    "id": "5ca-35d-687-c1f"
  }
}

List the GSLB real servers with pending changes

Get Hanging GSLB RealServers

GET /gslb/realservers/hangings

curl
curl -X GET "https://appliance.example.com/api/v1/gslb/realservers/hangings" \
  -H "Authorization: Bearer $TOKEN"
PHP
<?php

$url = 'https://appliance.example.com/api/v1/gslb/realservers/hangings';
$headers = [
    'Authorization: Bearer ' . $token,
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests

headers = {"Authorization": f"Bearer {token}"}

response = requests.get("https://appliance.example.com/api/v1/gslb/realservers/hangings", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/gslb/realservers/hangings', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

const data = await response.json();
Bruno
meta {
  name: List the GSLB real servers with pending changes
  type: http
  seq: 1
}

get {
  url: https://{{node-0}}:{{port}}/api/v1/gslb/realservers/hangings
  body: none
  auth: bearer
}

auth:bearer {
  token: {{token}}
}
Response
{
  "status": "success",
  "message": "Hanging RealServer/s",
  "data": [
    {
      "id": "5ca-36c-d10-655",
      "ip": "10.0.0.1",
      "monitorIp": "10.0.0.1",
      "name": "realserver1",
      "weight": 10
    }
  ]
}

Real servers by ID

Get a GSLB RealServer

GET /gslb/realservers/{id}

Path parameters
id string Required

The id of the realserver.

curl
curl -X GET "https://appliance.example.com/api/v1/gslb/realservers/{id}" \
  -H "Authorization: Bearer $TOKEN"
PHP
<?php

$url = 'https://appliance.example.com/api/v1/gslb/realservers/{id}';
$headers = [
    'Authorization: Bearer ' . $token,
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests

headers = {"Authorization": f"Bearer {token}"}

response = requests.get("https://appliance.example.com/api/v1/gslb/realservers/{id}", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/gslb/realservers/{id}', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

const data = await response.json();
Bruno
meta {
  name: Get a GSLB real server
  type: http
  seq: 1
}

get {
  url: https://{{node-0}}:{{port}}/api/v1/gslb/realservers/{id}
  body: none
  auth: bearer
}

auth:bearer {
  token: {{token}}
}
Response
{
  "status": "success",
  "message": "RealServer",
  "data": {
    "id": "5ca-36c-d10-655",
    "ip": "10.0.0.1",
    "monitorIp": "10.0.0.1",
    "name": "realserver1",
    "weight": 10,
    "usage": [
      {
        "service": "gslb",
        "serviceFullName": "GSLB",
        "serviceId": "8f2-b41-6d0-3a7",
        "serviceName": "backend1",
        "serviceNodeId": null,
        "section": "GSLB:Backend",
        "sectionFullName": "Backend"
      }
    ]
  }
}

Edit a GSLB RealServer

PUT /gslb/realservers/{id}

This change is staged. Send PUT /services/apply to apply it.

Path parameters
id string Required

The id of the realserver.

Body parameters
name string
ip string
monitorIp string
weight integer
curl
curl -X PUT "https://appliance.example.com/api/v1/gslb/realservers/{id}" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "<name>",
  "ip": "<ip>",
  "monitorIp": "<monitorIp>",
  "weight": 0
}'
PHP
<?php

$url = 'https://appliance.example.com/api/v1/gslb/realservers/{id}';
$headers = [
    'Authorization: Bearer ' . $token,
    'Content-Type: application/json',
];

$payload = [
    'name' => '<name>',
    'ip' => '<ip>',
    'monitorIp' => '<monitorIp>',
    'weight' => 0,
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'PUT',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => json_encode($payload),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests

headers = {"Authorization": f"Bearer {token}"}
payload = {
    "name": "<name>",
    "ip": "<ip>",
    "monitorIp": "<monitorIp>",
    "weight": 0
}

response = requests.put("https://appliance.example.com/api/v1/gslb/realservers/{id}", headers=headers, json=payload)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/gslb/realservers/{id}', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${token}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
  "name": "<name>",
  "ip": "<ip>",
  "monitorIp": "<monitorIp>",
  "weight": 0
}),
});

const data = await response.json();
Bruno
meta {
  name: Update a GSLB real server
  type: http
  seq: 1
}

put {
  url: https://{{node-0}}:{{port}}/api/v1/gslb/realservers/{id}
  body: json
  auth: bearer
}

headers {
  Content-Type: application/json
}

auth:bearer {
  token: {{token}}
}

body:json {
  {
    "name": "<name>",
    "ip": "<ip>",
    "monitorIp": "<monitorIp>",
    "weight": 0
  }
}
Response
{
  "status": "success",
  "message": "RealServer edited",
  "data": {
    "id": "5ca-35d-687-71f"
  }
}

Delete a GSLB RealServer

DELETE /gslb/realservers/{id}

This change is staged. Send PUT /services/apply to apply it.

Path parameters
id string Required

The id of the realserver.

curl
curl -X DELETE "https://appliance.example.com/api/v1/gslb/realservers/{id}" \
  -H "Authorization: Bearer $TOKEN"
PHP
<?php

$url = 'https://appliance.example.com/api/v1/gslb/realservers/{id}';
$headers = [
    'Authorization: Bearer ' . $token,
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'DELETE',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests

headers = {"Authorization": f"Bearer {token}"}

response = requests.delete("https://appliance.example.com/api/v1/gslb/realservers/{id}", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/gslb/realservers/{id}', {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

const data = await response.json();
Bruno
meta {
  name: Delete a GSLB real server
  type: http
  seq: 1
}

delete {
  url: https://{{node-0}}:{{port}}/api/v1/gslb/realservers/{id}
  body: none
  auth: bearer
}

auth:bearer {
  token: {{token}}
}
Response
{
  "status": "success",
  "message": "RealServer deleted"
}