Nodes Controller Resource

The API allows you to list, view, edit and register nodes.

GET /nodes

Returns list of nodes filtered by specified query parameters.

Request Parameters
name type description
backup-to-be-restored query
direction query
filter query
nameLike query
nodeConfigGuid query
orderBy query
page query
size query
Response Body
media type data type description
application/json array of NodeListRecord (JSON) list of nodes filtered by specified query parameters

Example

Request
GET /nodes
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
[ {
  "name" : "...",
  "version" : "...",
  "lastSeen" : 12345,
  "nodeConfig" : {
    "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
    "name" : "Entity name"
  },
  "stagingSpace" : {
    "totalSpace" : 12345,
    "usedSpace" : 12345
  },
  "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
  "nodeIp" : "https://some.host:8181/api",
  "state" : {
    "name" : "ENUM_NAME",
    "description" : "Enum description"
  }
} ]
                
              

POST /nodes

Create a node.

Request Parameters
name type description constraints
existing query specify whether node exists boolean
Request Body
media type data type description
application/json NodeRegistrationRequest (JSON) specify details for new node
Response Body
media type data type description
application/json NodeRegistrationResponse (JSON) details of newly created node

Example

Request
POST /nodes
Content-Type: application/json
Accept: application/json

                
{
  "name" : "..."
}
                
              
Response
HTTP/1.1 201 Created
Content-Type: application/json

                
{
  "password" : "...",
  "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67"
}
                
              

PUT /nodes/config

Change node configurations.

Request Body
media type data type description
application/json ConfigRequest (JSON) specify node configurations details
Response Body
media type data type description
application/json array of NodeListRecord (JSON) list of nodes where configurations has been changed

Example

Request
PUT /nodes/config
Content-Type: application/json
Accept: application/json

                
{
  "nodes" : [ {
    "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
    "name" : "Entity name"
  }, {
    "guid" : "...",
    "name" : "..."
  } ],
  "nodeConfig" : {
    "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
    "name" : "Entity name"
  }
}
                
              
Response
HTTP/1.1 204 No Content
Content-Type: application/json

                
[ {
  "name" : "...",
  "version" : "...",
  "lastSeen" : 12345,
  "nodeConfig" : {
    "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
    "name" : "Entity name"
  },
  "stagingSpace" : {
    "totalSpace" : 12345,
    "usedSpace" : 12345
  },
  "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
  "nodeIp" : "https://some.host:8181/api",
  "state" : {
    "name" : "ENUM_NAME",
    "description" : "Enum description"
  }
} ]
                
              

GET /nodes/for-restore

Returns list of nodes filtered by specified query parameters for restore

Request Parameters
name type description
backup-to-be-restored query
direction query
filter query
nameLike query
nodeConfigGuid query
orderBy query
page query
size query
Response Body
media type data type description
application/json array of NodeListRecord (JSON) list of nodes filtered by specified query parameters

Example

Request
GET /nodes/for-restore
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
[ {
  "name" : "...",
  "version" : "...",
  "lastSeen" : 12345,
  "nodeConfig" : {
    "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
    "name" : "Entity name"
  },
  "stagingSpace" : {
    "totalSpace" : 12345,
    "usedSpace" : 12345
  },
  "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
  "nodeIp" : "https://some.host:8181/api",
  "state" : {
    "name" : "ENUM_NAME",
    "description" : "Enum description"
  }
} ]
                
              

GET /nodes/reduced

Request Parameters
name type description
backup-to-be-restored query
direction query
filter query
nameLike query
nodeConfigGuid query
orderBy query
page query
size query
Response Body
media type data type description
application/json array of NodeReducedListRecord (JSON)

Example

Request
GET /nodes/reduced
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
[ {
  "name" : "...",
  "nodeConfig" : {
    "guid" : "...",
    "name" : "...",
    "isDefault" : true,
    "generalExportPath" : "...",
    "threadsSettings" : {
      "taskMaxExportThreads" : 12345,
      "taskMaxExportThreadsPerSource" : 12345,
      "taskMaxImportThreads" : 12345
    }
  },
  "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67"
} ]
                
              

DELETE /nodes/{guid}

Remove node.

Request Parameters
name type description
guid path specify local unique identifier for node (use by vProtect)

Example

Request
DELETE /nodes/{guid}
Content-Type: */*

                
...
                
              
Response
HTTP/1.1 204 No Content

              

GET /nodes/{guid}

Get a single node.

Request Parameters
name type description
guid path specify local unique identifier for node (use by vProtect)
Response Body
media type data type description
application/json NodeDetails (JSON) a singe node details

Example

Request
GET /nodes/{guid}
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
{
  "nodeIp" : "...",
  "name" : "...",
  "proxyVmUuid" : "...",
  "state" : "UNKNOWN",
  "nodeConfig" : {
    "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
    "name" : "Entity name"
  },
  "stagingSpace" : {
    "totalSpace" : 12345,
    "usedSpace" : 12345
  },
  "nfsStorageId" : "...",
  "backupDestinations" : [ {
    "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
    "name" : "Entity name"
  }, {
    "guid" : "...",
    "name" : "..."
  } ],
  "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
  "lastSeen" : 1451649601000
}
                
              

PUT /nodes/{guid}

Change node details.

Request Parameters
name type description
guid path specify local unique identifier for node (use by vProtect)
Request Body
media type data type description
application/json NodeUpdateRequest (JSON) specify node details to update
Response Body
media type data type description
application/json NodeDetails (JSON) updated details of node

Example

Request
PUT /nodes/{guid}
Content-Type: application/json
Accept: application/json

                
{
  "nodeConfig" : {
    "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
    "name" : "Entity name"
  },
  "nfsStorageId" : "..."
}
                
              
Response
HTTP/1.1 204 No Content
Content-Type: application/json

                
{
  "nodeIp" : "...",
  "name" : "...",
  "proxyVmUuid" : "...",
  "state" : "QUEUED_STOP",
  "nodeConfig" : {
    "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
    "name" : "Entity name"
  },
  "stagingSpace" : {
    "totalSpace" : 12345,
    "usedSpace" : 12345
  },
  "nfsStorageId" : "...",
  "backupDestinations" : [ {
    "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
    "name" : "Entity name"
  }, {
    "guid" : "...",
    "name" : "..."
  } ],
  "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
  "lastSeen" : 1451649601000
}
                
              

PUT /nodes/{guid}/hypervisor-managers

Assign hypervisor managers to specified node.

Request Parameters
name type description
guid path specify local unique identifier for node (use by vProtect)
Request Body
media type data type description
application/json array of NameAndGuid (JSON) specify list of hypervisor managers that will be assigned to node
Response Body
media type data type description
application/json array of HypervisorManagerListRecord (JSON) list of assigned hypervisor managers to node

Example

Request
PUT /nodes/{guid}/hypervisor-managers
Content-Type: application/json
Accept: application/json

                
[ {
  "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
  "name" : "Entity name"
} ]
                
              
Response
HTTP/1.1 204 No Content
Content-Type: application/json

                
[ {
  "url" : "...",
  "sshPort" : 12345,
  "user" : "...",
  "nodeConfig" : {
    "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
    "name" : "Entity name"
  },
  "hvCount" : 12345,
  "vmCount" : 12345,
  "storageType" : "CEPH",
  "region" : "...",
  "endpointInterfaceType" : "INTERNAL",
  "useToken" : true,
  "lastInventorySyncDate" : 12345,
  "lastSuccessfulInventorySyncDate" : 12345,
  "possibleActions" : [ "HVM_READ", "HV_READ" ],
  "version" : "...",
  "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
  "type" : {
    "name" : "ENUM_NAME",
    "description" : "Enum description"
  }
} ]
                
              

PUT /nodes/{guid}/hypervisors

Assign hypervisors to specified node.

Request Parameters
name type description
guid path specify local unique identifier for node (use by vProtect)
Request Body
media type data type description
application/json array of NameAndGuid (JSON) specify list of hypervisors that will be assigned to node
Response Body
media type data type description
application/json array of HypervisorListRecord (JSON) list of assigned hypervisors to node

Example

Request
PUT /nodes/{guid}/hypervisors
Content-Type: application/json
Accept: application/json

                
[ {
  "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
  "name" : "Entity name"
} ]
                
              
Response
HTTP/1.1 204 No Content
Content-Type: application/json

                
[ {
  "host" : "...",
  "sshPort" : 12345,
  "user" : "...",
  "nodeConfig" : {
    "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
    "name" : "Entity name"
  },
  "cluster" : {
    "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
    "name" : "Entity name"
  },
  "dataCenter" : {
    "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
    "name" : "Entity name"
  },
  "vmCount" : 12345,
  "storageType" : "DEFAULT",
  "licenseCovered" : true,
  "hvManager" : {
    "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
    "name" : "Entity name"
  },
  "storageProvider" : {
    "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
    "name" : "Entity name"
  },
  "lastInventorySyncDate" : 12345,
  "lastSuccessfulInventorySyncDate" : 12345,
  "possibleActions" : [ "HV_READ", "WRITE" ],
  "version" : "...",
  "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
  "type" : {
    "name" : "ENUM_NAME",
    "description" : "Enum description"
  }
} ]
                
              

PUT /nodes/{guid}/state

Change node state.

Request Parameters
name type description
guid path specify local unique identifier for node (use by vProtect)
Request Body
media type data type description
application/json NodeState (JSON) specify node state to change

Example

Request
PUT /nodes/{guid}/state
Content-Type: application/json

                
"RUNNING"
                
              
Response
HTTP/1.1 204 No Content