14ad281057
Change-Id: I366052e23d72dd94229513d6a0992338d0d44638
4028 lines
126 KiB
Plaintext
4028 lines
126 KiB
Plaintext
#%RAML 0.8
|
||
title: Compass
|
||
version: v1
|
||
baseUri: http://10.145.89.151/api
|
||
mediaType: application/json
|
||
|
||
|
||
/permissions:
|
||
get:
|
||
body:
|
||
application/json:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
[
|
||
{
|
||
"alias": "list permissions",
|
||
"description": "list all permissions",
|
||
"id": 1,
|
||
"name": "list_permissions"
|
||
},
|
||
]
|
||
description: List all permissions
|
||
headers:
|
||
X-Auth-Header:
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/{permission_id}:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
[
|
||
{
|
||
"alias": "list permissions",
|
||
"description": "list all permissions",
|
||
"id": 1,
|
||
"name": "list_permissions"
|
||
}
|
||
]
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
message: "Cannot find the record in table Permission: {'id': '<permission_id>'}"
|
||
}
|
||
description: List a specific permission info
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/users:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
[
|
||
{
|
||
"id": 1,
|
||
"email": "someuser@email.com",
|
||
"first_name": "",
|
||
"last_name": "",
|
||
"is_admin": false,
|
||
"active": true,
|
||
"created_at": "--timestamp---",
|
||
"last_login_at": "--timestamp---"
|
||
},
|
||
]
|
||
|
||
description: Lists information for all users
|
||
headers:
|
||
X-Auth-Header:
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
queryParameters:
|
||
email:
|
||
is_admin:
|
||
active:
|
||
post:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"email": "admin@someemail.com",
|
||
"password": "admin",
|
||
"firstname": "First",
|
||
"lastname": "Last"
|
||
}
|
||
responses:
|
||
201:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"id": 3,
|
||
"email": "user3@someemail.com",
|
||
"first_name": "",
|
||
"last_name": "",
|
||
"is_admin": false,
|
||
"active": true,
|
||
"created_at": "--timestamp---",
|
||
"last_login_at": "--timestamp---"
|
||
}
|
||
400:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"bad request"
|
||
}
|
||
403:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"forbidden"
|
||
}
|
||
409:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "The user already exists!"
|
||
}
|
||
description: Creates a user(admin only)
|
||
headers:
|
||
X-Auth-Header:
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/{user_id}:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"id": 1,
|
||
"email": "someuser@email.com",
|
||
"first_name": "",
|
||
"last_name": "",
|
||
"is_admin": false,
|
||
"active": true,
|
||
"created_at": "2014-03-25 12:00:00",
|
||
"last_login_at": "2014-03-25 12:05:00"
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "The user with id 'some--id--' cannot be found!"
|
||
}
|
||
description: Lists information for a specific user
|
||
headers:
|
||
X-Auth-Header:
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
put:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{"password": 123}
|
||
responses:
|
||
201:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"id": 3,
|
||
"email": "user3@someemail.com",
|
||
"first_name": "",
|
||
"last_name": "",
|
||
"is_admin": false,
|
||
"active": true
|
||
}
|
||
409:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "The user with id 'some--id--' cannot be found!"
|
||
}
|
||
description: Updates user’s information
|
||
headers:
|
||
X-Auth-Header:
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
delete:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"id": 3,
|
||
"email": "user3@someemail.com",
|
||
"first_name": "",
|
||
"last_name": "",
|
||
"is_admin": false,
|
||
"active": true
|
||
}
|
||
409:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "The user cannot be found!"
|
||
}
|
||
description: Deletes a user(admin only)
|
||
headers:
|
||
X-Auth-Header:
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/permissions:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
[
|
||
{
|
||
"created_at": "2014-10-17 16:28:21",
|
||
"user_id": 1,
|
||
"description": "list all permissions",
|
||
"permission_id": 1,
|
||
"updated_at": "2014-10-17 16:28:21",
|
||
"alias": "list permissions",
|
||
"id": 1,
|
||
"name": "list_permissions"
|
||
}
|
||
]
|
||
409:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"type": "itemNotFound",
|
||
"message": "The user with id 'some--id--' cannot be found!"
|
||
}
|
||
description: Lists permissions for a specified user
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/action:
|
||
post:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"add_permissions": [1,2,3],
|
||
"remove_permissions": [1],
|
||
"set_permissions": [1],
|
||
"disable_user": [1],
|
||
"enable_user": [1]
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
Add permission:
|
||
|
||
[
|
||
{
|
||
"created_at": "2014-10-17 16:28:21",
|
||
"user_id": 1,
|
||
"description": "list all permissions",
|
||
"permission_id": 1,
|
||
"updated_at": "2014-10-17 16:28:21",
|
||
"alias": "list permissions",
|
||
"id": 1,
|
||
"name": "list_permissions"
|
||
}
|
||
]
|
||
|
||
Remove permission:
|
||
|
||
[
|
||
{
|
||
"created_at": "2014-10-17 16:28:21",
|
||
"user_id": 1,
|
||
"description": "list all permissions",
|
||
"permission_id": 1,
|
||
"updated_at": "2014-10-17 16:28:21",
|
||
"alias": "list permissions",
|
||
"id": 1,
|
||
"name": "list_permissions"
|
||
}
|
||
]
|
||
|
||
Set Permission:
|
||
|
||
[
|
||
{
|
||
"created_at": "2014-10-17 16:28:21",
|
||
"user_id": 1,
|
||
"description": "list all permissions",
|
||
"permission_id": 1,
|
||
"updated_at": "2014-10-17 16:28:21",
|
||
"alias": "list permissions",
|
||
"id": 1,
|
||
"name": "list_permissions"
|
||
}
|
||
]
|
||
|
||
Enable user:
|
||
|
||
{
|
||
"created_at": "2014-10-17 16:28:21",
|
||
"updated_at": "2014-10-17 16:28:21",
|
||
"email": "admin@huawei.com",
|
||
"is_admin": true,
|
||
"active": true,
|
||
"id": 1
|
||
}
|
||
|
||
Disable user:
|
||
|
||
{
|
||
"created_at": "2014-10-17 16:28:21",
|
||
"updated_at": "2014-10-17 16:28:21",
|
||
"email": "admin@huawei.com",
|
||
"is_admin": true,
|
||
"active": true,
|
||
"id": 1
|
||
}
|
||
409:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"type": "itemNotFound",
|
||
"message": "The user cannot be found!"
|
||
}
|
||
description: Adds/Removes permissions, Enable/Disable a user (admin only)
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/token:
|
||
post:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"email": "admin@huawei.com",
|
||
"password": "admin"
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"expire_timestamp": "2014-10-06 13:25:23",
|
||
"token": "$1$c1ZWGYEn$WTg57cnP4pEwd9JMJ7beS/",
|
||
"user_id": 1,
|
||
"id": 3
|
||
}
|
||
409:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"type": "unauthorized",
|
||
"message": "Either email or password is wrong!"
|
||
}
|
||
description: Authenticates and generates a token
|
||
/login:
|
||
post:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"email": "admin@huawei.com",
|
||
"password": "admin"
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"expire_timestamp": "2014-10-06 13:25:23",
|
||
"token": "$1$c1ZWGYEn$WTg57cnP4pEwd9JMJ7beS/",
|
||
"user_id": 1,
|
||
"id": 3
|
||
}
|
||
401:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"type": "unauthorized",
|
||
"message": "Either email or password is wrong!"
|
||
}
|
||
403:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"type": "userDisabled",
|
||
"message”: "User is disabled !"
|
||
}
|
||
description: Login
|
||
/logout:
|
||
post:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
[
|
||
{
|
||
"expire_timestamp": "2014-10-17 18:30:29",
|
||
"token": "$1$AFqIS5Kn$1ASgOkPv.G1a7pkRRHKY.0",
|
||
"user_id": 1,
|
||
"id": 1
|
||
}
|
||
]
|
||
401:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "invalid user token: $1$AFqIS5Kn$1ASgOkPv.G1a7pkRRHKY.0",
|
||
}
|
||
description: Logout
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/switches:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
[
|
||
{
|
||
"ip": "172.29.8.40",
|
||
"created_at": "2014-10-17 17:28:06",
|
||
"updated_at": "2014-10-17 17:28:06",
|
||
"state": "initialized",
|
||
"filters": "",
|
||
"credentials": {
|
||
"version": "2c",
|
||
"community": "public"
|
||
},
|
||
"id": 2
|
||
}
|
||
]
|
||
description: Lists switches
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
post:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"ip": "172.29.8.40",
|
||
"credentials":
|
||
{
|
||
"version": "2c",
|
||
"community": "public"
|
||
}
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"ip": "172.29.8.40",
|
||
"created_at": "2014-10-17 17:28:06",
|
||
"updated_at": "2014-10-17 17:28:06",
|
||
"state": "initialized",
|
||
"filters": "",
|
||
"credentials": {
|
||
"version": "2c",
|
||
"community": "public"
|
||
},
|
||
"id": 2
|
||
}
|
||
409:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "IP address '192.168.1.1' already exists"
|
||
}
|
||
description: Creates a switch
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/{switch_id}:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"ip": "172.29.8.40",
|
||
"created_at": "2014-10-17 17:28:06",
|
||
"updated_at": "2014-10-17 17:28:06",
|
||
"state": "initialized",
|
||
"filters": "",
|
||
"credentials": {
|
||
"version": "2c",
|
||
"community": "public"
|
||
},
|
||
"id": 2
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cannot find the switch which id is '1'."
|
||
}
|
||
description: Lists a switch
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
put:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"ip": "172.29.8.40",
|
||
"credentials":
|
||
{
|
||
"version": "2c",
|
||
"community": "private"
|
||
}
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"ip": "172.29.8.40",
|
||
"created_at": "2014-10-17 17:28:06",
|
||
"updated_at": "2014-10-17 17:28:06",
|
||
"state": "initialized",
|
||
"filters": "",
|
||
"credentials": {
|
||
"version": "2c",
|
||
"community": "private"
|
||
},
|
||
"id": 2
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cannot update the switch which id is '1'! The switch does not exists."
|
||
}
|
||
description: Set the switch properties
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
patch:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"ip": "172.29.8.40",
|
||
"credentials":
|
||
{
|
||
"version": "3",
|
||
"community": "public"
|
||
}
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"ip": "172.29.8.40",
|
||
"created_at": "2014-10-17 17:28:06",
|
||
"updated_at": "2014-10-17 17:28:06",
|
||
"state": "initialized",
|
||
"filters": "",
|
||
"credentials": {
|
||
"version": "3",
|
||
"community": "public"
|
||
},
|
||
"id": 2
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cannot update the switch which id is '1'! The switch does not exists."
|
||
}
|
||
description: Updates the switch properties
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
delete:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"ip": "172.29.8.41",
|
||
"created_at": "2014-10-17 17:45:17",
|
||
"updated_at": "2014-10-17 17:45:17",
|
||
"state": "initialized",
|
||
"filters": "",
|
||
"credentials": {
|
||
"version": "2c",
|
||
"community": "public"
|
||
},
|
||
"id": 3
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cannot find the record in table Switch: {'id': 4}"
|
||
}
|
||
description: Delete switch
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/machines:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
Get:
|
||
[
|
||
{
|
||
"vlans": [],
|
||
"updated_at": "2014-10-17 18:02:21",
|
||
"created_at": "2014-10-17 18:02:21",
|
||
"switch_id": 3,
|
||
"id": 1,
|
||
"mac": "28:6e:d4:46:c4:25",
|
||
"tag": {},
|
||
"location": {},
|
||
"switch_ip": "172.29.8.41",
|
||
"ipmi_credentials": {},
|
||
"machine_id": 1,
|
||
"port": "10",
|
||
"switch_machine_id": 204
|
||
}
|
||
]
|
||
queryParameters:
|
||
port:
|
||
portStart:
|
||
portEnd:
|
||
portRange:
|
||
PortPrefix:
|
||
PortSuffix:
|
||
vlans:
|
||
mac:
|
||
tag:
|
||
location:
|
||
description: Lists machines for a specified switch
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
post:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"mac": "28:6e:d4:46:c4:25",
|
||
"port": "1",
|
||
"vlans": "88",
|
||
"ipmi_credentials": {
|
||
"ip": "1.2.3.4",
|
||
"username": "test",
|
||
"password": "test"
|
||
},
|
||
"tag": "tag",
|
||
"location": {
|
||
"column": "1",
|
||
"row": "1",
|
||
"unit": "1"
|
||
}
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"id": 1,
|
||
"mac": "28:6e:d4:47:c8:6c",
|
||
"vlan": 1,
|
||
"port": "10"
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "The switch does not exists."
|
||
}
|
||
description: Manually add a machine
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/machines:
|
||
post:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"mac": "28:6e:d4:46:c4:25",
|
||
"port": "1",
|
||
"vlans": "88"
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"duplicate_switches_machines": [
|
||
{
|
||
"mac": "a1:b2:c3:d4:e1:f6",
|
||
"port": "101"
|
||
}
|
||
],
|
||
"switches_machines": [
|
||
{
|
||
"vlans": [],
|
||
"updated_at": "2015-05-07 10:55:12",
|
||
"created_at": "2015-05-07 10:55:12",
|
||
"switch_id": 2,
|
||
"id": 1,
|
||
"mac": "70:7b:e8:e2:72:21",
|
||
"tag": {},
|
||
"location": {},
|
||
"switch_ip": "10.145.8.10",
|
||
"ipmi_credentials": {},
|
||
"machine_id": 1,
|
||
"port": "204",
|
||
"switch_machine_id": 1
|
||
},
|
||
{
|
||
"vlans": [],
|
||
"updated_at": "2015-05-07 10:55:12",
|
||
"created_at": "2015-05-07 10:55:12",
|
||
"switch_id": 2,
|
||
"id": 2,
|
||
"mac": "a1:b2:c3:d4:e1:f6",
|
||
"tag": {},
|
||
"location": {},
|
||
"switch_ip": "10.145.8.10",
|
||
"ipmi_credentials": {},
|
||
"machine_id": 2,
|
||
"port": "101",
|
||
"switch_machine_id": 2
|
||
},
|
||
{
|
||
"vlans": [],
|
||
"updated_at": "2015-05-07 10:55:12",
|
||
"created_at": "2015-05-07 10:55:12",
|
||
"switch_id": 3,
|
||
"id": 3,
|
||
"mac": "a1:b2:c3:d4:e5:f9",
|
||
"tag": {},
|
||
"location": {},
|
||
"switch_ip": "172.29.8.40",
|
||
"ipmi_credentials": {},
|
||
"machine_id": 3,
|
||
"port": "121",
|
||
"switch_machine_id": 3
|
||
}
|
||
],
|
||
"fail_switches_machines": [
|
||
{
|
||
"mac": "a1:b5:c3:d4:e5:f9",
|
||
"port": "131"
|
||
},
|
||
{
|
||
"mac": "a1:b2:c3:d4:e1:f6",
|
||
"port": "13"
|
||
}
|
||
]
|
||
}
|
||
description: Batch switch machines. If the machine is connected to other switch or switch does not exist, it will be added to fail_switches_machines and return. If machine is already existed, it will be added to duplicate_switches_machines.
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
|
||
/{id}/machines/{machine_id}:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"vlans": [
|
||
88
|
||
],
|
||
"updated_at": "2014-10-17 17:40:13",
|
||
"created_at": "2014-10-17 17:40:13",
|
||
"switch_id": 2,
|
||
"id": 1,
|
||
"mac": "28:6e:d4:46:c4:25",
|
||
"tag": {},
|
||
"location": {},
|
||
"switch_ip": "172.29.8.40",
|
||
"ipmi_credentials": {},
|
||
"machine_id": 1,
|
||
"port": "7",
|
||
"switch_machine_id": 1
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cannot find the record in table SwitchMachine: {'machine_id': 1000, 'switch_id': 2}"
|
||
}
|
||
description: Get machine of a specified switch
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
put:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"port": "80",
|
||
"vlans": "88",
|
||
"pmi_credentials": "pmi_credentials here",
|
||
"tag": "tag here",
|
||
"location":
|
||
{"building": "E5"}
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"vlans": [
|
||
88
|
||
],
|
||
"updated_at": "2014-10-17 17:40:13",
|
||
"created_at": "2014-10-17 17:40:13",
|
||
"switch_id": 2,
|
||
"id": 1,
|
||
"mac": "28:6e:d4:46:c4:25",
|
||
"tag": {},
|
||
"location": {
|
||
"building": "E5"
|
||
},
|
||
"switch_ip": "172.29.8.40",
|
||
"ipmi_credentials": {},
|
||
"machine_id": 1,
|
||
"port": "7",
|
||
"switch_machine_id": 1
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cannot find the record in table SwitchMachine: {'machine_id': 1000, 'switch_id': 2}"
|
||
}
|
||
description: set machine property of a specified switch
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
patch:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"port": "80",
|
||
"vlans": "88",
|
||
"pmi_credentials": "pmi_credentials here",
|
||
"tag": "tag here",
|
||
"location":
|
||
{"city": "Beijing"}
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"vlans": [
|
||
88
|
||
],
|
||
"updated_at": "2014-10-17 17:40:13",
|
||
"created_at": "2014-10-17 17:40:13",
|
||
"switch_id": 2,
|
||
"id": 1,
|
||
"mac": "28:6e:d4:46:c4:25",
|
||
"tag": {},
|
||
"location": {
|
||
"building": "E5",
|
||
"city": "beijing"
|
||
},
|
||
"switch_ip": "172.29.8.40",
|
||
"ipmi_credentials": {},
|
||
"machine_id": 1,
|
||
"port": "7",
|
||
"switch_machine_id": 1
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cannot find the record in table SwitchMachine: {'machine_id': 1000, 'switch_id': 2}"
|
||
}
|
||
description: update machine property of a specified switch
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
delete:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"vlans": [
|
||
88
|
||
],
|
||
"updated_at": "2014-10-17 17:40:13",
|
||
"created_at": "2014-10-17 17:40:13",
|
||
"switch_id": 2,
|
||
"id": 1,
|
||
"mac": "28:6e:d4:46:c4:25",
|
||
"tag": {},
|
||
"location": {
|
||
"building": "E5",
|
||
"city": "beijing"
|
||
},
|
||
"switch_ip": "172.29.8.40",
|
||
"ipmi_credentials": {},
|
||
"machine_id": 1,
|
||
"port": "7",
|
||
"switch_machine_id": 1
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cannot find the record in table SwitchMachine: {'machine_id': 1000, 'switch_id': 2}"
|
||
}
|
||
description: Delete a machine from a switch
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/{switch_id}/action:
|
||
post:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"find_machines": 1,
|
||
"add_macheins": [{"machine_id":1,"port":"10"}],
|
||
"rermove_machines": 1,
|
||
"set_machines": [{"machine_id": 1, "port": "10"}]
|
||
}
|
||
responses:
|
||
202:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
find_machines:
|
||
{
|
||
"status": "action {'find_machines': None} sent",
|
||
"details": {}
|
||
}
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
add_machines:
|
||
[
|
||
{
|
||
"vlans": [],
|
||
"updated_at": "2014-10-17 17:56:44",
|
||
"created_at": "2014-10-17 17:56:44",
|
||
"switch_id": 3,
|
||
"id": 1,
|
||
"mac": "28:6e:d4:46:c4:25",
|
||
"tag": {},
|
||
"location": {},
|
||
"switch_ip": "172.29.8.41",
|
||
"ipmi_credentials": {},
|
||
"machine_id": 1,
|
||
"port": "10",
|
||
"switch_machine_id": 203
|
||
}
|
||
]
|
||
|
||
remove_machines:
|
||
[]
|
||
set_machines:
|
||
[
|
||
{
|
||
"vlans": [],
|
||
"updated_at": "2014-10-17 17:56:44",
|
||
"created_at": "2014-10-17 17:56:44",
|
||
"switch_id": 3,
|
||
"id": 1,
|
||
"mac": "28:6e:d4:46:c4:25",
|
||
"tag": {},
|
||
"location": {},
|
||
"switch_ip": "172.29.8.41",
|
||
"ipmi_credentials": {},
|
||
"machine_id": 1,
|
||
"port": "10",
|
||
"switch_machine_id": 203
|
||
}
|
||
]
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cannot update the switch which id is '1'! The switch does not exists."
|
||
}
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/switchbatch:
|
||
post:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
[{
|
||
"switch_ip": "127.0.0.1":
|
||
"credentials":{
|
||
"version": "2c",
|
||
"community": "public"
|
||
},{
|
||
"switch_ip": "127.0.0.2"
|
||
}]
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"switches": [
|
||
{
|
||
"vendor": "Huawei",
|
||
"ip": "10.145.8.10",
|
||
"created_at": "2015-05-04 16:13:34",
|
||
"updated_at": "2015-05-04 16:13:34",
|
||
"state": "initialized",
|
||
"filters": "",
|
||
"credentials": {
|
||
"version": "2c",
|
||
"community": "public"
|
||
},
|
||
"id": 2
|
||
},
|
||
{
|
||
"ip": "172.29.8.40",
|
||
"created_at": "2015-05-04 16:13:34",
|
||
"updated_at": "2015-05-04 16:13:34",
|
||
"state": "initialized",
|
||
"filters": "",
|
||
"credentials": {},
|
||
"id": 3
|
||
}
|
||
],
|
||
"fail_switches": [
|
||
{
|
||
"ip": "172.29.8.40"
|
||
}
|
||
]
|
||
}
|
||
description: Batch switches. If switch ip already existed, switch data will be added in fail_switches list and return.
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/machines:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
[
|
||
{
|
||
"created_at": "2014-10-17 17:40:13",
|
||
"updated_at": "2014-10-17 23:22:53",
|
||
"switches": [],
|
||
"mac": "28:6e:d4:46:c4:25",
|
||
"tag": {},
|
||
"location": {
|
||
"building": "E5",
|
||
"city": "beijing"
|
||
},
|
||
"ipmi_credentials": {},
|
||
"id": 1
|
||
},
|
||
]
|
||
queryParameters:
|
||
mac:
|
||
tag:
|
||
location:
|
||
description: Lists machines
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/{machine_id}:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"created_at": "2014-10-17 17:40:13",
|
||
"updated_at": "2014-10-17 23:22:53",
|
||
"switches": [],
|
||
"mac": "28:6e:d4:46:c4:25",
|
||
"tag": {},
|
||
"location": {
|
||
"building": "E5",
|
||
"city": "beijing"
|
||
},
|
||
"ipmi_credentials": {},
|
||
"id": 1
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "The machine witch ID '$machine_id' cannot be found!"
|
||
}
|
||
description: Lists machines of a specific machine
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
put:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"ipmi_credentials": {
|
||
"builder": "huawei"
|
||
}
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"created_at": "2014-10-17 17:40:13",
|
||
"updated_at": "2014-10-17 23:58:46",
|
||
"switches": [],
|
||
"mac": "28:6e:d4:46:c4:25",
|
||
"tag": {
|
||
"builder": "huawei"
|
||
},
|
||
"location": {
|
||
"building": "E5",
|
||
"city": "beijing"
|
||
},
|
||
"ipmi_credentials": {},
|
||
"id": 1
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "The machine witch ID “$machine_id” cannot be found!"
|
||
}
|
||
description: set machine properties
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
patch:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"ipmi_credentials": {
|
||
"builder": "huawei"
|
||
},
|
||
"tag": {
|
||
"type": "ES200"
|
||
}
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"created_at": "2014-10-17 17:40:13",
|
||
"updated_at": "2014-10-18 00:03:12",
|
||
"switches": [],
|
||
"mac": "28:6e:d4:46:c4:25",
|
||
"tag": {
|
||
"type": "ES200"
|
||
},
|
||
"location": {
|
||
"building": "E5",
|
||
"city": "beijing"
|
||
},
|
||
"ipmi_credentials": {},
|
||
"id": 1
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "The machine witch ID '$machine_id' cannot be found!"
|
||
}
|
||
description: updatge machine properties
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
delete:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"created_at": "2014-10-17 17:40:13",
|
||
"updated_at": "2014-10-18 00:03:12",
|
||
"switches": [],
|
||
"mac": "28:6e:d4:46:c4:25",
|
||
"tag": {
|
||
"type": "ES200"
|
||
},
|
||
"location": {
|
||
"building": "E5",
|
||
"city": "beijing"
|
||
},
|
||
"ipmi_credentials": {},
|
||
"id": 1
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "The machine witch ID '$machine_id' cannot be found!"
|
||
}
|
||
description: Delete a machine (admin only)
|
||
/action:
|
||
post:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"tag": {"builder": "huawei"},
|
||
"poweron": "true",
|
||
"poweroff": "true",
|
||
"reset": "true"
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
tag example:
|
||
|
||
{
|
||
"created_at": "2014-10-17 17:40:13",
|
||
"updated_at": "2014-10-18 00:10:58",
|
||
"id": 2,
|
||
"switches": [
|
||
{
|
||
"switch_ip": "172.29.8.40",
|
||
"vlans": [
|
||
88
|
||
],
|
||
"port": "4"
|
||
}
|
||
],
|
||
"mac": "00:0c:29:2b:c9:d4",
|
||
"tag": {
|
||
"builder": "huawei"
|
||
},
|
||
"location": {},
|
||
"switch_ip": "172.29.8.40",
|
||
"ipmi_credentials": {},
|
||
"vlans": [
|
||
88
|
||
],
|
||
"port": "4"
|
||
}
|
||
|
||
poweron/ poweroff / reset is null example:
|
||
|
||
{
|
||
"status": "poweron 00:0c:29:2b:c9:d4 action sent",
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "The machine witch ID '$machine_id' cannot be found!"
|
||
}
|
||
400:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "The machine haven't set IPMI info!"
|
||
}
|
||
description: machine actions
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/flavors:
|
||
/{flavor_id}/metadata:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"flavor_config": {
|
||
"neutron_config": {...},
|
||
"security": {...},
|
||
"ha_proxy": {...},
|
||
"network_mapping": {...}
|
||
|
||
}
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{message: "flavor <flavor_id> does not exist"}
|
||
description: List specific flavor metadata.
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/{flavor_id}/ui_metadata:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"flavor_config":
|
||
{
|
||
"category": "service_credentials",
|
||
"modifiable_data": [
|
||
"username",
|
||
"password",
|
||
]
|
||
"table_display_header": [
|
||
"Service",
|
||
"UserName",
|
||
"Password",
|
||
"Action",
|
||
]
|
||
"accordion_heading": "OpenStack Database and Queue Credentials",
|
||
"action”: true,
|
||
"data_structure": "table"
|
||
},
|
||
{...},
|
||
{...}
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{message: "flavor <flavor_id> does not exist"}
|
||
description: List specific flavor ui metadata.
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/adapters:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
[{
|
||
"flavors": [
|
||
{
|
||
"roles": [
|
||
{
|
||
"display_name": "all in one compute",
|
||
"description": "all in one compute",
|
||
"adapter_id": 3,
|
||
"role_id": 35,
|
||
"flavor_id": 4,
|
||
"optional": true,
|
||
"id": 35,
|
||
"name": "allinone-compute"
|
||
}
|
||
],
|
||
"display_name": "All-In-One",
|
||
"id": 4,
|
||
"template": "allinone.tmpl",
|
||
"name": "allinone"
|
||
},
|
||
],
|
||
"package_installer": {
|
||
"id": 1,
|
||
"alias": "chef_installer",
|
||
"name": "chef_installer",
|
||
"settings": {
|
||
"chef_server_ip": "10.145.88.211",
|
||
"client_name": "",
|
||
"chef_server_dns": "compass",
|
||
"databags": [],
|
||
"chef_url": "https://10.145.88.211",
|
||
"key_dir": ""
|
||
}
|
||
},
|
||
"name": "openstack_icehouse",
|
||
"os_installer": {
|
||
"id": 1,
|
||
"alias": "cobbler",
|
||
"name": "cobbler",
|
||
"settings": {
|
||
"credentials": {
|
||
"username": "cobbler",
|
||
"password": "cobbler"
|
||
},
|
||
"cobbler_url": "http://10.145.88.211/cobbler_api"
|
||
}
|
||
},
|
||
"supported_oses": [
|
||
{
|
||
"os_id": 1,
|
||
"id": 1,
|
||
"name": "Ubuntu-12.04-x86_64"
|
||
},
|
||
{
|
||
"os_id": 2,
|
||
"id": 2,
|
||
"name": "CentOS-6.5-x86_64"
|
||
}
|
||
],
|
||
"display_name": "OpenStack Icehouse",
|
||
"id": 3
|
||
}]
|
||
queryParameters:
|
||
name:
|
||
description: Lists information for all adapters
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/{id}:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"id" : 1,
|
||
"name": "openstack",
|
||
"display": "OpenStack",
|
||
"os_installer": "cobbler",
|
||
"package_installer": "chef",
|
||
"roles": [ { "display_name": "compute",
|
||
"name": "os-compute-worker"
|
||
},
|
||
{ "display_name": "controller",
|
||
"name": "os-controller"
|
||
},
|
||
{ "display_name": "network",
|
||
"name": "os-network"
|
||
},
|
||
{ "display_name": "storage",
|
||
"name": "os-block-storage-worker"
|
||
],
|
||
"compatible_os": [
|
||
{
|
||
"name": "CentOs",
|
||
"os_id": 1
|
||
},
|
||
{
|
||
"name": "Ubuntu",
|
||
"os_id": 2
|
||
}
|
||
]
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "The adapter with id 'some_id' cannot be found!"
|
||
}
|
||
description: Lists information for a specified adapter
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/oses/{os_id}/metadata:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"package_config": {
|
||
"security": {
|
||
"_self": {
|
||
"mapping_to": "",
|
||
"description": null,
|
||
"required_in_whole_config": true,
|
||
"display_type": null,
|
||
"js_validator": null,
|
||
"default_value": null,
|
||
"field_type": "dict",
|
||
"name": "security",
|
||
"required_in_options": false,
|
||
"is_required": false,
|
||
"options": null
|
||
},
|
||
},
|
||
"os_config": {
|
||
"server_credentials": {
|
||
"_self": {
|
||
"mapping_to": "server_credentials",
|
||
"description": null,
|
||
"required_in_whole_config": true,
|
||
"display_type": null,
|
||
"js_validator": null,
|
||
"default_value": null,
|
||
"field_type": "dict",
|
||
"name": "server_credentials",
|
||
"required_in_options": false,
|
||
"is_required": false,
|
||
"options": null
|
||
},
|
||
"username": {
|
||
"_self": {
|
||
"mapping_to": "username",
|
||
"description": "username",
|
||
"required_in_whole_config": false,
|
||
"display_type": "text",
|
||
"js_validator": null,
|
||
"default_value": "root",
|
||
"field_type": "basestring",
|
||
"name": "username",
|
||
"required_in_options": false,
|
||
"is_required": true,
|
||
"options": null
|
||
}
|
||
},
|
||
},
|
||
},
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "The adapter with id 'some_id' cannot be found!"
|
||
}
|
||
description: Lists config formats for a specified adapter and os
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/oses/{os_id}/ui_metadata:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"os_global_config": [
|
||
{
|
||
"title": "Server Credentials",
|
||
"data": [
|
||
{
|
||
"default_value": "root",
|
||
"display_name": "User name",
|
||
"name": "username",
|
||
"display_type": "text",
|
||
"is_required": "true",
|
||
"placeholder": "Username",
|
||
"order": 1
|
||
},
|
||
{
|
||
"display_name": "Confirm Password",
|
||
"name": "confirmPassword",
|
||
"datamatch": "password",
|
||
"display_type": "password",
|
||
"is_required": "true",
|
||
"placeholder": "Confirm Password",
|
||
"order": 3
|
||
},
|
||
{
|
||
"display_name": "Password",
|
||
"name": "password",
|
||
"display_type": "password",
|
||
"is_required": "true",
|
||
"placeholder": "Password",
|
||
"order": 2
|
||
}],
|
||
"order": 2,
|
||
"name": "server_credentials"
|
||
},
|
||
}
|
||
}]
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "os <os_id> does not exist"
|
||
}
|
||
description: List specified os ui metadata.
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
|
||
/subnets:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
[{
|
||
"updated_at": "2014-10-18 21:24:46",
|
||
"subnet": "10.145.88.0/23",
|
||
"created_at": "2014-10-18 21:24:46",
|
||
"id": 1,
|
||
"name": "10.145.88.0/23"
|
||
}]
|
||
description: Gets all subnetworks information
|
||
post:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"subnet": "10.172.20.0/24",
|
||
"name": "test_subnet"
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"updated_at": "2014-10-18 21:24:46",
|
||
"subnet": "10.145.88.0/23",
|
||
"created_at": "2014-10-18 21:24:46",
|
||
"id": 1,
|
||
"name": "10.145.88.0/23"
|
||
}
|
||
400:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Keyword '$somekey' cannot be recognized!"
|
||
}
|
||
409:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Subnet already exists!"
|
||
}
|
||
description: Creates one subnetwork
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/{subnet_id}:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"updated_at": "2014-10-18 21:24:46",
|
||
"subnet": "10.145.88.0/23",
|
||
"created_at": "2014-10-18 21:24:46",
|
||
"id": 1,
|
||
"name": "10.145.88.0/23"
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Subnetwork with id 'some_id' cannot be found!"
|
||
}
|
||
description: Gets one subnetwork info
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
put:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"subnet": "10.172.20.0/24",
|
||
"name": "update_subnet"
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"updated_at": "2014-10-18 21:44:17",
|
||
"subnet": "10.145.86.0/23",
|
||
"created_at": "2014-10-18 21:43:50",
|
||
"id": 1,
|
||
"name": "10.145.86.0/23"
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Subnetwork with id 'some_id' cannot be found!"
|
||
}
|
||
409:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Subnet name already exists!"
|
||
}
|
||
description: set subnet properties
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
delete:
|
||
responses:
|
||
403:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Subnetwork is in use by some interface. Cannot delete it."
|
||
}
|
||
|
||
|
||
{
|
||
"message": "Subnetwork can only be deleted by creator or admin!"
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Subnetwork with id 'some_id' cannot be found!"
|
||
}
|
||
description: Deletes a subnetwork (owner, admin only)
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/clusters:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
[
|
||
{
|
||
"created_at": "2014-10-18 23:01:23",
|
||
"os_name": "CentOS-6.5-x86_64",
|
||
"name": "cluster1",
|
||
"reinstall_distributed_system": true,
|
||
"adapter_id": 3,
|
||
"updated_at": "2014-10-18 23:01:23",
|
||
"owner": "admin@huawei.com",
|
||
"os_id": 2,
|
||
"distributed_system_installed": false,
|
||
"flavor": {
|
||
"display_name": "All-In-One",
|
||
"name": "allinone",
|
||
"roles": [
|
||
{
|
||
"display_name": "all in one compute",
|
||
"description": "all in one compute",
|
||
"adapter_id": 3,
|
||
"role_id": 35,
|
||
"flavor_id": 4,
|
||
"optional": true,
|
||
"id": 35,
|
||
"name": "allinone-compute"
|
||
}
|
||
],
|
||
"adapter_id": 3,
|
||
"template": "allinone.tmpl",
|
||
"id": 4
|
||
},
|
||
"id": 1
|
||
}
|
||
]
|
||
queryParameters:
|
||
name:
|
||
os_name:
|
||
owner:
|
||
adapter_name:
|
||
flavor_name:
|
||
description: Lists all information for all clusters
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
post:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"adapter_id": 3,
|
||
"name": "add_cluster",
|
||
"os_id": 1,
|
||
"flavor_id": 1
|
||
}
|
||
responses:
|
||
201:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"created_at": "2014-10-18 23:01:23",
|
||
"os_name": "CentOS-6.5-x86_64",
|
||
"name": "cluster1",
|
||
"reinstall_distributed_system": true,
|
||
"adapter_id": 3,
|
||
"updated_at": "2014-10-18 23:01:23",
|
||
"owner": "admin@huawei.com",
|
||
"os_id": 2,
|
||
"distributed_system_installed": false,
|
||
"flavor": {
|
||
"display_name": "All-In-One",
|
||
"name": "allinone",
|
||
"roles": [
|
||
{
|
||
"display_name": "all in one compute",
|
||
"description": "all in one compute",
|
||
"adapter_id": 3,
|
||
"role_id": 35,
|
||
"flavor_id": 4,
|
||
"optional": true,
|
||
"id": 35,
|
||
"name": "allinone-compute"
|
||
}
|
||
],
|
||
"adapter_id": 3,
|
||
"template": "allinone.tmpl",
|
||
"id": 4
|
||
},
|
||
"id": 1
|
||
}
|
||
409:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cluster with name 'cluster_01' already exists!"
|
||
}
|
||
description: Creates a new cluster
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/{cluster_id}:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"created_at": "2014-10-18 23:01:23",
|
||
"os_name": "CentOS-6.5-x86_64",
|
||
"name": "cluster1",
|
||
"reinstall_distributed_system": true,
|
||
"adapter_id": 3,
|
||
"updated_at": "2014-10-18 23:01:23",
|
||
"owner": "admin@huawei.com",
|
||
"os_id": 2,
|
||
"distributed_system_installed": false,
|
||
"flavor": {
|
||
"display_name": "All-In-One",
|
||
"name": "allinone",
|
||
"roles": [
|
||
{
|
||
"display_name": "all in one compute",
|
||
"description": "all in one compute",
|
||
"adapter_id": 3,
|
||
"role_id": 35,
|
||
"flavor_id": 4,
|
||
"optional": true,
|
||
"id": 35,
|
||
"name": "allinone-compute"
|
||
}
|
||
],
|
||
"adapter_id": 3,
|
||
"template": "allinone.tmpl",
|
||
"id": 4
|
||
},
|
||
"id": 1
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cluster with id 'some_id' cannot be found!"
|
||
}
|
||
description: Lists information for a specified cluster
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
put:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"name": "update_cluster"
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"created_at": "2014-10-18 23:16:02",
|
||
"os_name": "CentOS-6.5-x86_64",
|
||
"name": "cluster_new",
|
||
"reinstall_distributed_system": true,
|
||
"adapter_id": 3,
|
||
"updated_at": "2014-10-18 23:16:39",
|
||
"owner": "admin@huawei.com",
|
||
"os_id": 2,
|
||
"distributed_system_installed": false,
|
||
"flavor": {
|
||
"display_name": "All-In-One",
|
||
"name": "allinone",
|
||
"roles": [
|
||
{
|
||
"display_name": "all in one compute",
|
||
"description": "all in one compute",
|
||
"adapter_id": 3,
|
||
"role_id": 35,
|
||
"flavor_id": 4,
|
||
"optional": true,
|
||
"id": 35,
|
||
"name": "allinone-compute"
|
||
}
|
||
],
|
||
"adapter_id": 3,
|
||
"template": "allinone.tmpl",
|
||
"id": 4
|
||
},
|
||
"id": 2
|
||
}
|
||
400:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cluster <cluster_id> not found"
|
||
}
|
||
description: set properties of cluster
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
delete:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"created_at": "2014-10-18 23:01:23",
|
||
"os_name": "CentOS-6.5-x86_64",
|
||
"name": "cluster1",
|
||
"reinstall_distributed_system": true,
|
||
"adapter_id": 3,
|
||
"updated_at": "2014-10-18 23:01:23",
|
||
"owner": "admin@huawei.com",
|
||
"os_id": 2,
|
||
"distributed_system_installed": false,
|
||
"flavor": {
|
||
"display_name": "All-In-One",
|
||
"name": "allinone",
|
||
"roles": [
|
||
{
|
||
"display_name": "all in one compute",
|
||
"description": "all in one compute",
|
||
"adapter_id": 3,
|
||
"role_id": 35,
|
||
"flavor_id": 4,
|
||
"optional": true,
|
||
"id": 35,
|
||
"name": "allinone-compute"
|
||
}
|
||
],
|
||
"adapter_id": 3,
|
||
"template": "allinone.tmpl",
|
||
"id": 4
|
||
},
|
||
"id": 1
|
||
}
|
||
403:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cluster has been deployed or is being installed. Not allowed to delete it now!"
|
||
}
|
||
description: Deletes a specific cluster before deploy (admin, owner only). Hosts will be still kept even cluster(s) is deleted.
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/config:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"package_config": {
|
||
},
|
||
"os_config": {
|
||
}
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cluster with id 'some_id' cannot be found!"
|
||
}
|
||
description: Gets config information for a specified cluster
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
put:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"os_config":{
|
||
"general": {
|
||
"language": "EN",
|
||
"timezone": "PDT",
|
||
"domain": "xxx",
|
||
"default_gateway": "10.0.0.1"
|
||
},
|
||
"server_credentials": {
|
||
"username": "admin",
|
||
"password": "admin"
|
||
},
|
||
"partition": {
|
||
"/var" : {
|
||
"_type": "$path",
|
||
"max_size": "20",
|
||
"size_percentage": "20"
|
||
}
|
||
}
|
||
},
|
||
"package_config":{
|
||
"network_mapping": {
|
||
"management": {
|
||
"interface": "eth0"
|
||
},
|
||
"tenant": {
|
||
"interface": "eth1"
|
||
},
|
||
"storage": {
|
||
"interface":" eth2"
|
||
},
|
||
"public": {
|
||
"interface": "eth3"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"os_config”: {
|
||
"general”: {
|
||
"language": "EN",
|
||
"timezone": "PDT",
|
||
"domain": "xxx",
|
||
"default_gateway": "10.0.0.1"
|
||
},
|
||
"server_crendentials": {
|
||
"username": "admin",
|
||
"password": "admin"
|
||
},
|
||
"partition": {
|
||
"/var" : {
|
||
"max_size": "20",
|
||
"size_percentage": "20",
|
||
},
|
||
}
|
||
}
|
||
|
||
{
|
||
"package_config": {
|
||
"network_mapping": {
|
||
"management": {
|
||
"interface": "eth0"
|
||
},
|
||
"tenant": {
|
||
"interface": "eth1"
|
||
},
|
||
"storage": {
|
||
"interface":"eth2"
|
||
},
|
||
"public": {
|
||
"interface": "eth3"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cluster with id 'some_id' cannot be found!"
|
||
}
|
||
description: set properties in cluster config
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
patch:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"package_config": {
|
||
"security": {
|
||
"dashboard_credentials": {
|
||
"username": "root"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"package_config":{
|
||
"security": {
|
||
"service_crendentials": {
|
||
"image": {
|
||
"username": "admin",
|
||
"password": "admin"
|
||
},
|
||
...
|
||
},
|
||
"dashboard_credentials":{
|
||
"username": "root",
|
||
"password": "admin"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cluster with id 'some_id' cannot be found!"
|
||
}
|
||
description: update properties in cluster config
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
delete:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"package_config":{
|
||
"security": {
|
||
"service_crendentials": {
|
||
"image": {
|
||
"username": "admin",
|
||
"password": "admin"
|
||
},
|
||
...
|
||
}
|
||
}
|
||
}
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cluster with id 'some_id' cannot be found!"
|
||
}
|
||
description: delete cluster config
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/state:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"package_config": {
|
||
},
|
||
"os_config": {
|
||
}
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cluster with id 'some_id' cannot be found!"
|
||
}
|
||
description: get cluster state
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/hosts:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
[
|
||
{
|
||
"id" : 1,
|
||
"name": "host_01",
|
||
"dns": "xxx",
|
||
"os": "Centos",
|
||
"mac": "---MAC-address---",
|
||
"machine_id": 1,
|
||
"os_installed": true,
|
||
},
|
||
…...
|
||
]
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cluster with id 'some_id' cannot be found!"
|
||
}
|
||
description: Gets the information of the hosts belonging to this cluster
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
post:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"machine_id": 1,
|
||
"name": "cluster_host",
|
||
"reinstall_os": "True",
|
||
"roles": ["allinone-compute"]
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"os_installer": {
|
||
"id": 1,
|
||
"alias": "cobbler",
|
||
"name": "cobbler",
|
||
"settings": {
|
||
"credentials": {
|
||
"username": "cobbler",
|
||
"password": "cobbler"
|
||
},
|
||
"cobbler_url": "http://10.145.88.211/cobbler_api"
|
||
}
|
||
},
|
||
"ip": null,
|
||
"clusterhost_id": 2,
|
||
"updated_at": "2014-10-18 23:47:47",
|
||
"switches": [
|
||
{
|
||
"switch_ip": "172.29.8.40",
|
||
"vlans": [
|
||
88
|
||
],
|
||
"port": "4"
|
||
}
|
||
],
|
||
"os_installed": false,
|
||
"tag": {},
|
||
"cluster_id": 2,
|
||
"id": 2,
|
||
"switch_ip": "172.29.8.40",
|
||
"networks": {
|
||
},
|
||
"hostname": null,
|
||
"reinstall_os": true,
|
||
"owner": "admin@huawei.com",
|
||
"port": "4",
|
||
"location": {},
|
||
"os_name": "CentOS-6.5-x86_64",
|
||
"reinstall_distributed_system": true,
|
||
"mac": "00:0c:29:2b:c9:d4",
|
||
"host_id": 2,
|
||
"distributed_system_installed": false,
|
||
"name": "None.cluster_new",
|
||
"roles": [],
|
||
"clustername": "cluster_new",
|
||
"created_at": "2014-10-18 23:47:47",
|
||
"machine_id": 2
|
||
}
|
||
409:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "host <host_id> already exists"
|
||
}
|
||
description: add host to a cluster
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/{host_id}:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"id" : 1,
|
||
"name": "host_01",
|
||
"dns": "xxx",
|
||
"os": "Centos",
|
||
"mac": "---MAC-address---",
|
||
"machine_id": 1,
|
||
"os_installed": true,
|
||
"links": [
|
||
{
|
||
"href" : "/hosts/1",
|
||
"rel": "self"
|
||
},
|
||
{
|
||
"href": "/clusters/1/hosts/1/config",
|
||
"rel": "host package config"
|
||
}
|
||
]
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: get host of a cluster
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
put:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"name": "update_cluster_host",
|
||
"reinstall_os": "False",
|
||
"roles": ["ha-proxy"]
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"os_installer": {
|
||
"id": 1,
|
||
"alias": "cobbler",
|
||
"name": "cobbler",
|
||
"settings": {
|
||
"credentials": {
|
||
"username": "cobbler",
|
||
"password": "cobbler"
|
||
},
|
||
"cobbler_url": "http://10.145.88.211/cobbler_api"
|
||
}
|
||
},
|
||
"ip": null,
|
||
"clusterhost_id": 2,
|
||
"updated_at": "2014-10-19 00:10:43",
|
||
"switches": [
|
||
{
|
||
"switch_ip": "172.29.8.40",
|
||
"vlans": [
|
||
88
|
||
],
|
||
"port": "4"
|
||
}
|
||
],
|
||
"os_installed": false,
|
||
"tag": {},
|
||
"cluster_id": 2,
|
||
"id": 2,
|
||
"switch_ip": "172.29.8.40",
|
||
"networks": {},
|
||
"hostname": null,
|
||
"reinstall_os": true,
|
||
"owner": "admin@huawei.com",
|
||
"port": "4",
|
||
"location": {},
|
||
"os_name": "CentOS-6.5-x86_64",
|
||
"reinstall_distributed_system": true,
|
||
"mac": "00:0c:29:2b:c9:d4",
|
||
"host_id": 2,
|
||
"distributed_system_installed": false,
|
||
"name": "None.cluster_new",
|
||
"roles": [
|
||
{
|
||
"display_name": "all in one compute",
|
||
"description": "all in one compute",
|
||
"adapter_id": 3,
|
||
"optional": true,
|
||
"id": 35,
|
||
"name": "allinone-compute"
|
||
}
|
||
],
|
||
"clustername": "cluster_new",
|
||
"created_at": "2014-10-18 23:47:47",
|
||
"machine_id": 2
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: set host properties of a cluster
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
patch:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"roles": "os-controller"
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"os_installer": {
|
||
"id": 1,
|
||
"alias": "cobbler",
|
||
"name": "cobbler",
|
||
"settings": {
|
||
"credentials": {
|
||
"username": "cobbler",
|
||
"password": "cobbler"
|
||
},
|
||
"cobbler_url": "http://10.145.88.211/cobbler_api"
|
||
}
|
||
},
|
||
"ip": null,
|
||
"clusterhost_id": 2,
|
||
"updated_at": "2014-10-19 00:10:43",
|
||
"switches": [
|
||
{
|
||
"switch_ip": "172.29.8.40",
|
||
"vlans": [
|
||
88
|
||
],
|
||
"port": "4"
|
||
}
|
||
],
|
||
"os_installed": false,
|
||
"tag": {},
|
||
"cluster_id": 2,
|
||
"id": 2,
|
||
"switch_ip": "172.29.8.40",
|
||
"networks": {},
|
||
"hostname": null,
|
||
"reinstall_os": true,
|
||
"owner": "admin@huawei.com",
|
||
"port": "4",
|
||
"location": {},
|
||
"os_name": "CentOS-6.5-x86_64",
|
||
"reinstall_distributed_system": true,
|
||
"mac": "00:0c:29:2b:c9:d4",
|
||
"host_id": 2,
|
||
"distributed_system_installed": false,
|
||
"name": "None.cluster_new",
|
||
"roles": [
|
||
{
|
||
"display_name": "all in one compute",
|
||
"description": "all in one compute",
|
||
"adapter_id": 3,
|
||
"optional": true,
|
||
"id": 35,
|
||
"name": "allinone-compute"
|
||
},
|
||
{
|
||
"name": "new-role",
|
||
...
|
||
}
|
||
],
|
||
"clustername": "cluster_new",
|
||
"created_at": "2014-10-18 23:47:47",
|
||
"machine_id": 2
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: update host properties of a cluster
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
delete:
|
||
description: delete host from a cluster
|
||
/config:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"os_config": {
|
||
...
|
||
},
|
||
"package_config": {
|
||
...
|
||
}
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: get config of a host
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
put:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"os_config": {
|
||
"general": {
|
||
"language": "EN",
|
||
"timezone": "UTC",
|
||
"http_proxy": "http://127.0.0.1:3128",
|
||
"https_proxy": "http://127.0.0.1:3128",
|
||
"no_proxy": [
|
||
"127.0.0.1",
|
||
"compass"
|
||
],
|
||
"ntp_server": "127.0.0.1",
|
||
"dns_servers": [
|
||
"127.0.0.1"
|
||
],
|
||
"domain": "ods.com",
|
||
"search_path": [
|
||
"ods.com"
|
||
],
|
||
"default_gateway": "127.0.0.1"
|
||
},
|
||
"server_credentials": {
|
||
"username": "root",
|
||
"password": "root"
|
||
},
|
||
"partition": {
|
||
"/var": {
|
||
"max_size": "100G",
|
||
"percentage": 10,
|
||
"size": "1G"
|
||
}
|
||
}
|
||
},
|
||
"package_config": {
|
||
"network_mapping": {
|
||
"management": {
|
||
"interface": "eth0"
|
||
},
|
||
"tenant": {
|
||
"interface": "eth1"
|
||
},
|
||
"storage": {
|
||
"interface":"eth2"
|
||
},
|
||
"public": {
|
||
"interface": "eth3"
|
||
}
|
||
},
|
||
"services_credentials": {
|
||
"image": {
|
||
"username": "xxx",
|
||
"password": "xxx"
|
||
},
|
||
"metering": {
|
||
"username": "xxx",
|
||
"password": "xxx"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
…..
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: set host config
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
patch:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"os_config": {
|
||
"general": {
|
||
"language": "EN",
|
||
"timezone": "UTC",
|
||
"http_proxy": "http://127.0.0.1:3128",
|
||
"https_proxy": "http://127.0.0.1:3128",
|
||
"no_proxy": [
|
||
"127.0.0.1",
|
||
"compass"
|
||
],
|
||
"ntp_server": "127.0.0.1",
|
||
"dns_servers": [
|
||
"127.0.0.1"
|
||
],
|
||
"domain": "ods.com",
|
||
"search_path": [
|
||
"ods.com"
|
||
],
|
||
"default_gateway": "127.0.0.1"
|
||
},
|
||
"server_credentials": {
|
||
"username": "root",
|
||
"password": "root"
|
||
},
|
||
"partition": {
|
||
"/var": {
|
||
"max_size": "100G",
|
||
"percentage": 10,
|
||
"size": "1G"
|
||
}
|
||
}
|
||
},
|
||
"package_config": {
|
||
"network_mapping": {
|
||
"management": {
|
||
"interface": "eth0"
|
||
},
|
||
"tenant": {
|
||
"interface": "eth1"
|
||
},
|
||
"storage": {
|
||
"interface":"eth2"
|
||
},
|
||
"public": {
|
||
"interface": "eth3"
|
||
}
|
||
},
|
||
"services_credentials": {
|
||
"image": {
|
||
"username": "xxx",
|
||
"password": "xxx"
|
||
},
|
||
"metering": {
|
||
"username": "xxx",
|
||
"password": "xxx"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"os_config": {
|
||
...//the same as PATCH cluster config
|
||
}
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: update host config
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
delete:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"os_config": {
|
||
...//the same as PATCH cluster config
|
||
}
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: delete host config
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/state:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"cluster_id" : 1,
|
||
"host_id": 10
|
||
"state": "INSTALLING",
|
||
"percentage": 0.5,
|
||
"severity": "INFO",
|
||
"message": "-----some--message-----",
|
||
"updated_at": "---timestamp---"
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: get host state of a cluster
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
put:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"state": "INSTALLING"
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"cluster_id" : 1,
|
||
"host_id": 10
|
||
"state": "SUCCESSFUL",
|
||
"percentage": 1,
|
||
"severity": "INFO",
|
||
"message": "-----some--message-----",
|
||
"updated_at": "---timestamp---"
|
||
}
|
||
OR
|
||
{
|
||
"cluster_id" : 1,
|
||
"host_id": 10
|
||
"state": "ERROR",
|
||
"percentage": 0.7,
|
||
"severity": "ERROR",
|
||
"message": "---some-error-message---",
|
||
"updated_at": "---timestamp---"
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: set host state properties of a cluster
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/action:
|
||
post:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"add_hosts": {
|
||
"machines": [{
|
||
"machine_id": 1,
|
||
"host_id": 1,
|
||
"reinstall_os": "True"
|
||
},{
|
||
"machine_id": 2,
|
||
"host_id": 2
|
||
}]
|
||
},
|
||
"set_hosts": {
|
||
"machines": [{
|
||
"machine_id": 3
|
||
},{
|
||
"machine_id": 4
|
||
}]
|
||
},
|
||
"remove_hosts": {
|
||
"hosts": [1]
|
||
},
|
||
"review": {
|
||
"hosts": [1,2,3]
|
||
},
|
||
"deploy": {
|
||
"hosts": [1,2,3]
|
||
}
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"hosts": [
|
||
{
|
||
"id" : 5,
|
||
"machine_id": 10
|
||
},
|
||
{
|
||
"id" : 6,
|
||
"machine_id": 11
|
||
},
|
||
{
|
||
"id" : 7,
|
||
"machine_id": 12
|
||
}
|
||
]
|
||
}
|
||
|
||
OR
|
||
|
||
{
|
||
"hosts": [
|
||
{
|
||
"id" : 1,
|
||
"machine_id": 13
|
||
},
|
||
{
|
||
"id" : 2,
|
||
"machine_id": 14
|
||
},
|
||
{
|
||
"id" : 3,
|
||
"machine_id": 15
|
||
}
|
||
]
|
||
}
|
||
|
||
OR
|
||
|
||
{
|
||
"hosts": [
|
||
{
|
||
"id" : 1,
|
||
"machine_id": 13
|
||
}
|
||
]
|
||
}
|
||
|
||
OR
|
||
{
|
||
"hosts": [
|
||
{
|
||
"id" : 1,
|
||
"machine_id": 10
|
||
},
|
||
{
|
||
"id" : 2,
|
||
"machine_id": 11
|
||
},
|
||
{
|
||
"id" : 3,
|
||
"machine_id": 12
|
||
}
|
||
]
|
||
}
|
||
|
||
OR
|
||
|
||
{
|
||
"cluster": {"id": 1},
|
||
"hosts": [{"id": 1}, {"id": 2}, {"id": 3}]
|
||
}
|
||
|
||
OR
|
||
|
||
{
|
||
"status": "deploy action sent",
|
||
"cluster": {
|
||
"id": 1,
|
||
},
|
||
"hosts": [
|
||
{
|
||
"id": 3
|
||
}
|
||
]
|
||
}
|
||
|
||
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cluster with id 'some_id' cannot be found!"
|
||
}
|
||
description: Takes an action for a specific cluster
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/metadata:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"package_config": {
|
||
},
|
||
"os_config": {
|
||
}
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cluster with id 'some_id' cannot be found!"
|
||
}
|
||
description: Get metadata of a specific cluster
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
|
||
/hosts:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
[
|
||
{
|
||
"id” : 1,
|
||
"name": "host_01",
|
||
"machine_id": 1,
|
||
"mac": "---MAC-address--",
|
||
"ip": "192.168.1.2",
|
||
"os": "CentOS",
|
||
"os_installed": false,
|
||
"clusters": ["cluster_01"],
|
||
"created_by": "user1@email.com",
|
||
"created_at": "---timestamp---",
|
||
"updated_at": "---timestamp---",
|
||
"links”: [
|
||
{
|
||
"href" : "/hosts/1",
|
||
"rel": "self
|
||
}
|
||
]
|
||
},
|
||
...
|
||
]
|
||
queryParameters:
|
||
name:
|
||
os_name:
|
||
owner:
|
||
mac:
|
||
description: Lists information for all hosts
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/{host_id}:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"id" : 1,
|
||
"name": "host_01",
|
||
"machine_id": 1,
|
||
"mac": "---MAC-address--”,
|
||
"ip": "192.168.1.2"
|
||
"os": "CentOs",
|
||
"os_installed": false,
|
||
"domain": "xxx",
|
||
"dns": "xxx",
|
||
"created_by": "user1@email.com",
|
||
"created_at": "---timestamp---",
|
||
"updated_at": "---timestamp---"
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: Lists information for a specified host
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
put:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"name": "update_host_name"
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"id" : 1,
|
||
"name": "host1"
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: set host properties.
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
delete:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"id" : 1,
|
||
"name": "host_01_new",
|
||
"mac": "---MAC-address--",
|
||
"os_name": "CentOs",
|
||
"os_installed": false
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"type": "itemNotFound",
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: Deletes a host (admin only). The host must be not in any cluster.
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/action:
|
||
post:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"poweron": [1],
|
||
"poweroff": [1],
|
||
"reset": [1]
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"status": "host <host_id> power<on|off|reset> action sent",
|
||
"host": {...}
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "The host witch ID '$host_id' cannot be found!"
|
||
}
|
||
400:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "The host didnot set IPMI info!"
|
||
}
|
||
description: Poweron, poweroff, reset this host by IPMI
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/clusters:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
[
|
||
{
|
||
"os_name": "CentOS-6.5-x86_64",
|
||
"name": "cluster_new",
|
||
"reinstall_distributed_system": true,
|
||
"created_at": "2014-10-18 23:16:02",
|
||
"adapter_id": 3,
|
||
"updated_at": "2014-10-18 23:16:39",
|
||
"owner": "admin@huawei.com",
|
||
"distributed_system_installed": false,
|
||
"id": 2
|
||
}
|
||
]
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: Lists clusters which the host belongs to
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/config:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"os_config": {
|
||
"global": {
|
||
"language": "EN",
|
||
"timezone": "PDT",
|
||
}
|
||
"partition": {
|
||
"/var": {
|
||
"max_size": "20",
|
||
"size_percentage": "30"
|
||
},
|
||
"/home": {
|
||
"max_size": "20",
|
||
"size_percentage": "40"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: Lists config information for a specified host
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
put:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"os_config": {
|
||
"general": {
|
||
"language": "EN",
|
||
"timezone": "UTC",
|
||
"http_proxy": "http://127.0.0.1:3128",
|
||
"https_proxy": "http://127.0.0.1:3128",
|
||
"no_proxy": [
|
||
"127.0.0.1",
|
||
"compass"
|
||
],
|
||
"ntp_server": "127.0.0.1",
|
||
"dns_servers": [
|
||
"127.0.0.1"
|
||
],
|
||
"domain": "ods.com",
|
||
"search_path": [
|
||
"ods.com"
|
||
],
|
||
"default_gateway": "127.0.0.1"
|
||
},
|
||
"server_credentials": {
|
||
"username": "root",
|
||
"password": "root"
|
||
},
|
||
"partition": {
|
||
"/var": {
|
||
"max_size": "100G",
|
||
"percentage": 10,
|
||
"size": "1G"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"os_config": {
|
||
…
|
||
}
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: set config properties for a specified host
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
patch:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"os_config": {
|
||
"general": {
|
||
"language": "EN",
|
||
"timezone": "UTC",
|
||
"http_proxy": "http://127.0.0.1:3128",
|
||
"https_proxy": "http://127.0.0.1:3128",
|
||
"no_proxy": [
|
||
"127.0.0.1",
|
||
"compass"
|
||
],
|
||
"ntp_server": "127.0.0.1",
|
||
"dns_servers": [
|
||
"127.0.0.1"
|
||
],
|
||
"domain": "ods.com",
|
||
"search_path": [
|
||
"ods.com"
|
||
],
|
||
"default_gateway": "127.0.0.1"
|
||
},
|
||
"server_credentials": {
|
||
"username": "root",
|
||
"password": "root"
|
||
},
|
||
"partition": {
|
||
"/var": {
|
||
"max_size": "100G",
|
||
"percentage": 10,
|
||
"size": "1G"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
....
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: update host config properties
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
delete:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"os_config": {
|
||
...
|
||
}
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: delete host config
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/state:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"state": "INSTALLING",
|
||
"percentage": 0.5,
|
||
"severity": "INFO",
|
||
"message": "-----some--message-----",
|
||
"updated_at": "---timestamp---"
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: get host state
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
put:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"state": "INSTALLING"
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"cluster_id" : 1,
|
||
"host_id": 10
|
||
"state": "SUCCESSFUL",
|
||
"percentage": 1,
|
||
"severity": "INFO",
|
||
"message": "-----some--message-----",
|
||
"updated_at": "---timestamp---"
|
||
}
|
||
|
||
OR
|
||
|
||
{
|
||
"cluster_id" : 1,
|
||
"host_id": 10
|
||
"state": "ERROR",
|
||
"percentage": 0.7,
|
||
"severity": "ERROR",
|
||
"message": "---some-error-message---",
|
||
"updated_at": "---timestamp---"
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: set host state properties
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/network:
|
||
get:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
[
|
||
{
|
||
"interface": "eth0",
|
||
"ip": "10.172.20.91",
|
||
"subnet_id": 1,
|
||
"is_mgmt": "False",
|
||
"is_promiscuous": "False"
|
||
},
|
||
{
|
||
"interface": "eth1",
|
||
"ip": "10.172.20.110",
|
||
"subnet_id": 1,
|
||
"is_mgmt": "False",
|
||
"is_promiscuous": "False"
|
||
}
|
||
]
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"eth0": {
|
||
"id": 1,
|
||
"interface": "eth0",
|
||
"ip": "192.168.10.1",
|
||
"is_mgmt": true,
|
||
"is_promiscuous": false,
|
||
"subnet_id": 1,
|
||
},
|
||
"eth1": {
|
||
"id": 2,
|
||
"interface": "eth1",
|
||
"ip": "10.12.123.1",
|
||
"is_promiscuous": true,
|
||
"subnet_id": 2,
|
||
},
|
||
…..
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: Lists network info for a specified host
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
post:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"interface": "eth0",
|
||
"ip": "10.145.89.152",
|
||
"subnet_id": 1,
|
||
"is_mgmt": "True",
|
||
"is_promiscuous": "False"
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"id": 3,
|
||
"interface": "eth3",
|
||
"ip": "12.140.10.1",
|
||
"is_promiscuous": true,
|
||
"is_mgmt": false,
|
||
"subnet_id": 3,
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id ‘some_id’ cannot be found!"
|
||
}
|
||
description: Creates an interface config entry
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/{interface}:
|
||
get:
|
||
description: list host network information
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
put:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"interface": "eth1",
|
||
"ip": "10.145.89.155",
|
||
"subnet_id": 1,
|
||
"is_mgmt": "True",
|
||
"is_promiscuous": "False"
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"id": 3,
|
||
"interface": "eth3",
|
||
"ip": "12.140.10.2",
|
||
"is_promiscuous": true,
|
||
"is_mgmt": false,
|
||
"subnet_id": 4,
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: set host network properties
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
delete:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"id": 3,
|
||
"interface": "eth3",
|
||
"ip": "12.140.10.1",
|
||
"is_promiscuous”: true,
|
||
"is_mgmt": false,
|
||
"subnet_id": 3
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": " Host with id 'some_id' cannot be found!"
|
||
}
|
||
description: delete a host network
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/proxy/{path}:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
[
|
||
{
|
||
"created_at": "2014-10-19 10:50:04",
|
||
"updated_at": "2014-10-19 10:50:04",
|
||
"email": "admin@huawei.com",
|
||
"is_admin": true,
|
||
"active": true,
|
||
"id": 1
|
||
}
|
||
]
|
||
queryParameters:
|
||
URL:
|
||
example: http://10.145.88.211/api/proxy/users
|
||
description: proxy get request
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
post:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"url": "http://10.145.88.211/api/proxy/subnets"
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"subnet": "10.145.86.0/23",
|
||
"created_at": "2014-10-19 11:25:33",
|
||
"updated_at": "2014-10-19 11:25:33",
|
||
"name": "10.145.86.0/23",
|
||
"id": 3
|
||
}
|
||
description: proxy post request
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
put:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"url": "http://10.145.88.211/api/proxy/subnets/3"
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"subnet": "10.145.84.0/23",
|
||
"created_at": "2014-10-19 11:25:33",
|
||
"updated_at": "2014-10-19 11:29:08",
|
||
"name": "10.145.84.0/23",
|
||
"id": 3
|
||
}
|
||
description: proxy put request
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
patch:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"url": "http://10.145.88.211/api/proxy/subnets/3"
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"ip": "172.29.8.42",
|
||
"created_at": "2014-10-19 11:31:40",
|
||
"updated_at": "2014-10-19 11:33:46",
|
||
"state": "initialized",
|
||
"filters": "",
|
||
"credentials": {
|
||
"version": "2c",
|
||
"community": "private"
|
||
},
|
||
"id": 3
|
||
}
|
||
description: proxy patch request
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
delete:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"ip": "172.29.8.42",
|
||
"created_at": "2014-10-19 11:31:40",
|
||
"updated_at": "2014-10-19 11:33:46",
|
||
"state": "initialized",
|
||
"filters": "",
|
||
"credentials": {
|
||
"version": "2c",
|
||
"community": "private"
|
||
},
|
||
"id": 3
|
||
}
|
||
queryParameters:
|
||
URL:
|
||
example: http://10.145.88.211/api/proxy/switches/3
|
||
description: proxy delete request
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/host/networks:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"eth1": {
|
||
"ip": "192.168.100.155",
|
||
"created_at": "2015-04-17 14:55:55",
|
||
"is_promiscuous": true,
|
||
"updated_at": "2015-04-17 14:55:55",
|
||
"netmask": "255.255.254.0",
|
||
"is_mgmt": false,
|
||
"interface": "eth1",
|
||
"id": 1
|
||
},
|
||
"eth0": {
|
||
"ip": "10.145.89.155",
|
||
"created_at": "2015-04-17 14:55:55",
|
||
"is_promiscuous": false,
|
||
"updated_at": "2015-04-17 14:55:55",
|
||
"netmask": "255.255.254.0",
|
||
"is_mgmt": true,
|
||
"interface": "eth0",
|
||
"id": 2
|
||
}
|
||
}
|
||
description: List all host networks
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/{host_network_id}:
|
||
get:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"ip": "192.168.100.155",
|
||
"created_at": "2015-04-17 14:55:55",
|
||
"is_promiscuous": true,
|
||
"updated_at: "2015-04-17 14:55:55",
|
||
"netmask": "255.255.254.0",
|
||
"is_mgmt": false,
|
||
"interface": "eth1",
|
||
"id": 1
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"message": "Cannot find the record in table HostNetwork: {'id': <host_network_id>}",
|
||
}
|
||
description: List specifig host network info
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
/host-networks/{host_network_id}:
|
||
put:
|
||
body:
|
||
application/json:
|
||
schema: |
|
||
{
|
||
"interface": "eth0",
|
||
"ip": "10.145.88.10"
|
||
}
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"ip": "192.168.100.159",
|
||
"created_at": "2015-04-17 14:55:55",
|
||
"is_promiscuous": true,
|
||
"updated_at: "2015-04-17 14:55:55",
|
||
"netmask": "255.255.254.0",
|
||
"is_mgmt": false,
|
||
"interface": "eth1",
|
||
"id": 1
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
message: "Cannot find the record in table HostNetwork: {'id': <host_network_id>}"
|
||
}
|
||
description: Update a specific host network info.
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
delete:
|
||
responses:
|
||
200:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
"ip: "10.145.89.155",
|
||
"created_at": "2015-04-17 15:44:54"
|
||
"is_promiscuous": false,
|
||
"updated_at": "2015-04-17 15:44:54",
|
||
"netmask": "255.255.254.0",
|
||
"is_mgmt": false
|
||
"interface": "eth0",
|
||
"id": 1
|
||
}
|
||
404:
|
||
body:
|
||
application/json:
|
||
example: |
|
||
{
|
||
message: "Cannot find the record in table HostNetwork: {'id': <host_network_id>}"
|
||
}
|
||
description: Delete a host network.
|
||
headers:
|
||
Access-token:
|
||
displayName: X-Auth-Header
|
||
required: true
|
||
example: $1$fCD2zLIa$hikkNkqDe0qAXgKHDzw0E0
|
||
|
||
|
||
|