Network Pools APIs
APIs for managing Network Pools
Table of Contents
1. Create a Network Pool
Used to create a Network pool in the system. The added network pool would be used during domain deployments, host commission/expansion flows.
If a network pool which is already added before is added, you will get an error with HTTP status 400.
If a malformed network pool is added (payload for network parameters, name which is already exist), you will get an error.
1.1. Prerequisites
The following data is required
Name
List of networks associated with network pool in which each network has
Network type - It can be VSAN, VMOTION or NFS Type.
VLAN ID - Valid Vlan id range is 0 to 4096.
MTU - Valid MTU range is 1500 to 9216.
Subnet - Networks of diferent types (e.g. VSAN/VMOTION/NFS) must not have overlapping subnets
Subnet mask
gateway - The gateway defined for the specified subnet
List of IP address ranges - the start and end IP address of each IP Pool should be part of the subnet
1.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"name" : "engineering-networkpool",
"networks" : [ {
"type" : "VSAN",
"vlanId" : 3002,
"mtu" : 9001,
"subnet" : "192.168.8.0",
"mask" : "255.255.252.0",
"gateway" : "192.168.8.1",
"ipPools" : [ {
"start" : "192.168.8.5",
"end" : "192.168.8.8"
} ]
} ]
}'
HTTP Request
POST /v1/network-pools HTTP/1.1
Content-Type: application/json
Content-Length: 304
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"name" : "engineering-networkpool",
"networks" : [ {
"type" : "VSAN",
"vlanId" : 3002,
"mtu" : 9001,
"subnet" : "192.168.8.0",
"mask" : "255.255.252.0",
"gateway" : "192.168.8.1",
"ipPools" : [ {
"start" : "192.168.8.5",
"end" : "192.168.8.8"
} ]
} ]
}
HTTP Response
HTTP/1.1 201 Created
Location: /v1/network-pools/e007ebe1-c5d0-4707-8764-f4c9fb9f744c
Content-Type: application/json
Content-Length: 165
{
"id" : "e007ebe1-c5d0-4707-8764-f4c9fb9f744c",
"name" : "engineering-networkpool",
"networks" : [ {
"id" : "04d83abb-0e0e-4e3f-a36c-ca11092f6763"
} ]
}
2. Get the Network Pools
2.1. Prerequisites
None
2.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools' -i -X GET \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....'
HTTP Request
GET /v1/network-pools HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 375
{
"elements" : [ {
"id" : "218018df-14e0-44c7-8b29-639d2aec9a6e",
"name" : "engineering-networkpool",
"networks" : [ {
"id" : "49ecbbdb-39d1-476d-a577-6e29afe4aeb7"
} ]
}, {
"id" : "a01ebf5d-fd21-4a7f-9d5b-b9ba0930d1bb",
"name" : "finance-networkpool",
"networks" : [ {
"id" : "6bc9ee2e-311f-4e5c-a375-093644803160"
} ]
} ]
}
3. Get a Network Pool
3.1. Prerequisites
The following data is required
- ID of the network pool
3.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools/c2b3a7db-275c-4095-b41f-05a015b58756' -i -X GET \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....'
HTTP Request
GET /v1/network-pools/c2b3a7db-275c-4095-b41f-05a015b58756 HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 165
{
"id" : "c2b3a7db-275c-4095-b41f-05a015b58756",
"name" : "engineering-networkpool",
"networks" : [ {
"id" : "39737d5c-1963-444f-8ada-320f9329064a"
} ]
}
4. Get a Network of a Network Pool
4.1. Prerequisites
The following data is required
- ID of the network
4.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools/a67f8c6e-1a31-4ca9-8ae4-02dc0561b21e/networks/769ad24a-abd9-4f56-886a-59156adff2d3' -i -X GET \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....'
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 270
{
"id" : "769ad24a-abd9-4f56-886a-59156adff2d3",
"type" : "VSAN",
"vlanId" : 3002,
"mtu" : 9216,
"subnet" : "192.168.8.0",
"mask" : "255.255.252.0",
"gateway" : "192.168.8.1",
"ipPools" : [ {
"start" : "192.168.8.5",
"end" : "192.168.8.8"
} ]
}
5. Rename a Network Pool
5.1. Prerequisites
- Network pool must exist.
5.2. Steps
- Get the ID of the network pool. Filter the response by the network pool's current name to get the corresponding ID.
Tip : Get the Network Pools
- Create a network pool update spec. Create a JSON with the "name" field containing the desired new network pool name.
Tip : NetworkPoolUpdateSpec
- Invoke the network pool rename (update) task using the input spec and network pool ID.
Note : Running the updateNetworkPool API will ensure that the requested new name is valid. The API call will fail if the requested new name is invalid.
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools/cbc13620-ae0c-47b3-bf77-c37ce066fe24' -i -X PATCH \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"name" : "new_name"
}'
HTTP Request
PATCH /v1/network-pools/cbc13620-ae0c-47b3-bf77-c37ce066fe24 HTTP/1.1
Content-Type: application/json
Content-Length: 25
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"name" : "new_name"
}
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 165
{
"id" : "cbc13620-ae0c-47b3-bf77-c37ce066fe24",
"name" : "engineering-networkpool",
"networks" : [ {
"id" : "5b971bb2-48da-40a4-8b24-82fa0cc6fc81"
} ]
}
6. Delete a Network Pool
Used to delete a Network pool.
Deleting a networkpool which is being used, will give an error.
Deleting a networkpool which does not exist, will give a HTTP response code 404.
6.1. Prerequisites
The following data is required
- ID of the network pool
6.2. Steps
- Invoke the API
Tip : Refer to: Get the Network Pools to retrieve all network pools in the system and use the ID of network pool to be deleted.
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools/27bd2545-20ff-476f-ae98-92497aee0f53' -i -X DELETE \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....'
HTTP Request
DELETE /v1/network-pools/27bd2545-20ff-476f-ae98-92497aee0f53 HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
HTTP Response
HTTP/1.1 204 No Content
7. Add an IP Pool to a Network of a Network Pool
7.1. Prerequisites
The following data is required
- ID of the network pool
Tip : Refer to: Get the Network Pools
- ID of the network.
Tip : Refer to: Get a Network of a Network Pool
- The start and end IP addresses for the IP pool
7.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools/6a9a3b5f-c0b5-4edb-a8e1-c032a93c23b6/networks/967cfaf7-fb70-47e5-83b9-f281b3708d09/ip-pools' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"start" : "192.168.8.5",
"end" : "192.168.8.8"
}'
HTTP Request
POST /v1/network-pools/6a9a3b5f-c0b5-4edb-a8e1-c032a93c23b6/networks/967cfaf7-fb70-47e5-83b9-f281b3708d09/ip-pools HTTP/1.1
Content-Type: application/json
Content-Length: 54
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"start" : "192.168.8.5",
"end" : "192.168.8.8"
}
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 270
{
"id" : "1993486b-99fa-438b-9d92-f5ff72733e02",
"type" : "VSAN",
"vlanId" : 3002,
"mtu" : 9216,
"subnet" : "192.168.8.0",
"mask" : "255.255.252.0",
"gateway" : "192.168.8.1",
"ipPools" : [ {
"start" : "192.168.8.5",
"end" : "192.168.8.8"
} ]
}
8. Delete an IP Pool from a Network of a Network Pool
8.1. Prerequisites
The following data is required
- ID of the IP pool
8.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools/7c2b2329-a247-43b4-b5b6-416a51a7f061/networks/000c6e8a-45b7-4850-aa3c-4a73371f1d5d/ip-pools' -i -X DELETE \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"start" : "192.168.8.5",
"end" : "192.168.8.8"
}'
HTTP Request
DELETE /v1/network-pools/7c2b2329-a247-43b4-b5b6-416a51a7f061/networks/000c6e8a-45b7-4850-aa3c-4a73371f1d5d/ip-pools HTTP/1.1
Content-Type: application/json
Content-Length: 54
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"start" : "192.168.8.5",
"end" : "192.168.8.8"
}
HTTP Response
HTTP/1.1 204 No Content
Last updated 2023-05-21 23:30:49 PDT