589 lines
9.5 KiB
Markdown
589 lines
9.5 KiB
Markdown
# Servers API
|
|
|
|
## Get servers list [GET /v3/servers]
|
|
> Get servers list
|
|
|
|
### Request
|
|
* Policy: read_servers
|
|
* Method: GET
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Params:
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
[
|
|
{
|
|
"id" : "server id",
|
|
"name" : "server name",
|
|
"cm_name" : "server configuration manager name",
|
|
"remote_user" : "ssh remote user",
|
|
"project": "project id",
|
|
"environment": "environment id",
|
|
"category": "category id",
|
|
"private_ip": "private IP address",
|
|
"public_ip": "public IP address",
|
|
"created_by": "server owner",
|
|
"reserved_by": "server reserved by",
|
|
"stack": "server stack name",
|
|
"ssh_key": "ssh key id",
|
|
"run_list": "server run list"
|
|
}
|
|
]
|
|
```
|
|
|
|
## Get cm servers list [GET /v3/servers/cm_tool/:cm_tool]
|
|
> Get servers list for configuration tool :cm_tool
|
|
|
|
### Request
|
|
* Policy: read_servers
|
|
* Method: GET
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Params:
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
[
|
|
{
|
|
}
|
|
]
|
|
```
|
|
|
|
## Get provider servers list [GET /v3/servers/provider/:provider/:account]
|
|
> Get servers list for provider :provider and account :account
|
|
|
|
### Request
|
|
* Policy: read_servers
|
|
* Method: GET
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Params:
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
[
|
|
{
|
|
}
|
|
]
|
|
```
|
|
|
|
## Get server id by name [GET /v3/server/id/:name]
|
|
> Get server id by name :name
|
|
|
|
### Request
|
|
* Policy: read_servers
|
|
* Method: GET
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Params:
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "server id"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": ""
|
|
}
|
|
```
|
|
|
|
## Get server [GET /v3/server/:id]
|
|
> Get server by id
|
|
|
|
### Request
|
|
* Policy: read_servers
|
|
* Method: GET
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Params:
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{}
|
|
```
|
|
|
|
## Create server [POST /v3/server]
|
|
> Create new server
|
|
|
|
### Request
|
|
* Policy: create_server
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Content-Type: application/json
|
|
* X-Stream: true -> return output in text stream
|
|
* Body:
|
|
```json
|
|
{
|
|
"project": "project name", -> mandatory parameter
|
|
"environment": "env", -> mandatory parameter
|
|
"category": "env", -> mandatory parameter
|
|
"name": "server_name", -> if null, name will be generated
|
|
"without_bootstrap": null, -> do not install chef on instance if true
|
|
"force": null -> do not delete server on error
|
|
}
|
|
|
|
```
|
|
|
|
### Response
|
|
**Status: 201**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "server_id"
|
|
"message" : "Created"
|
|
}
|
|
```
|
|
|
|
## Delete server [DELETE /v3/server/:id]
|
|
> Delete server with id ':id'
|
|
|
|
### Request
|
|
* Policy: delete_servers
|
|
* Method: DELETE
|
|
* Headers:
|
|
* Accept: application/json
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{}
|
|
```
|
|
|
|
## Pause server [POST /v3/server/:id/pause]
|
|
> pause cloud server with identifier ':id'
|
|
|
|
### Request
|
|
* Policy: pause_server
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Content-Type: application/json
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "server_id"
|
|
"message" : "Paused"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": ""
|
|
}
|
|
```
|
|
|
|
## Unpause server [POST /v3/server/:id/unpause]
|
|
> unpause cloud server with identifier ':id'
|
|
|
|
### Request
|
|
* Policy: pause_server
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Content-Type: application/json
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "server_id"
|
|
"message" : "Unpaused"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": ""
|
|
}
|
|
```
|
|
|
|
## Reserve server [POST /v3/server/:id/reserve]
|
|
> Reserve server with identifier ':id'
|
|
|
|
### Request
|
|
* Policy: reserve_server
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Content-Type: application/json
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "server_id"
|
|
"message" : "Reserved"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": ""
|
|
}
|
|
```
|
|
|
|
## Unreserve server [POST /v3/server/:id/unreserve]
|
|
> Unreserve server with identifier ':id'
|
|
|
|
### Request
|
|
* Policy: reserve_server
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Content-Type: application/json
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "server_id"
|
|
"message" : "Unreserved"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": ""
|
|
}
|
|
```
|
|
|
|
## Bootstrap server [POST /v3/server/:id/bootstrap]
|
|
> Bootstrap server with identifier ':id'
|
|
|
|
### Request
|
|
* Policy: deploy_server
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Content-Type: application/json
|
|
* X-Stream: true -> return output in text stream
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "server_id",
|
|
"cm_name": "server cm name",
|
|
"message" : "Bootstraped"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": ""
|
|
}
|
|
```
|
|
|
|
## Unbootstrap server [POST /v3/server/:id/unbootstrap]
|
|
> Unbootstrap server with identifier ':id'
|
|
|
|
### Request
|
|
* Policy: deploy_server
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Content-Type: application/json
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "server_id",
|
|
"message" : "Unbootstraped"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": ""
|
|
}
|
|
```
|
|
|
|
## Deploy server [POST /v3/server/:id/deploy]
|
|
> Deploy server with identifier ':id'
|
|
|
|
### Request
|
|
* Policy: deploy_server
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Content-Type: application/json
|
|
* X-Stream: true -> return output in text stream
|
|
* Body:
|
|
```json
|
|
{
|
|
"tags": [], -> array of tags to apply on each server before running chef-client
|
|
"build_number": "", -> string, build number to deploy
|
|
"run_list": [], -> array of strings to set run_list for chef-client
|
|
}
|
|
```
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "server id",
|
|
"message": ""
|
|
}
|
|
```
|
|
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": ""
|
|
}
|
|
```
|
|
|
|
## Add server [POST /v3/server/add]
|
|
> Add external server
|
|
|
|
### Request
|
|
* Policy: create_server
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"project": "project id", -> mandatory parameter
|
|
"environment": "env id", -> mandatory parameter
|
|
"category": "category id", -> mandatory parameter
|
|
"key": "ssh key", -> mandatory parameter
|
|
"remote_user": "ssh user", -> mandatory parameter
|
|
"private_ip": "ip", -> mandatory parameter
|
|
"public_ip": "ip"
|
|
}
|
|
```
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "server_id",
|
|
"message" : "Added"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": ""
|
|
}
|
|
```
|
|
|
|
## Add server tags [POST /v3/server/:id/tags/add]
|
|
> Add cloud server tags
|
|
|
|
### Request
|
|
* Policy: create_server
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"tags": [
|
|
{"tag name": "tag value"}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "server_id",
|
|
"message" : "Added"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": ""
|
|
}
|
|
```
|
|
|
|
## Delete server tags [POST /v3/server/:id/tags/delete]
|
|
> Delete cloud server tags
|
|
|
|
### Request
|
|
* Policy: create_server
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"tags": [
|
|
{"tag name": "tag value"}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "server_id",
|
|
"message" : "Deleted"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": ""
|
|
}
|
|
```
|
|
|
|
## Set server run list [POST /v3/server/:id/run_list]
|
|
> Set server run list
|
|
|
|
### Request
|
|
* Policy: create_server
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"run_list": [
|
|
]
|
|
}
|
|
```
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "server_id",
|
|
"message" : "Deleted"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": ""
|
|
}
|
|
```
|
|
|