REST API¶
Примечание
Для получения доступа к REST API необходим токен. Получение токена описано во вкладке с дополнительной информацией.
RS server API¶
Предоставляет API для управления удаленными рабочими столами.
Информация о модуле¶
Подробная информация о модуле.
Запрос¶
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/info | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
version (Optional) | body | string | Номер версии модуля. |
license (Optional) | body | string | Информация о лицензии. |
Пример получения информации о модуле в JSON формате:
{
"info": {
"license": {
"created_at": 1538141220,
"expire_at": 1545955200,
"module_package": "rs_server",
"name": "Laboratoria",
"product": "RSserver",
"surrogate_name": "RSserver",
"unique_id": "07-002-decf3c6c893561752802",
"verified": true
},
"version": "0.1.0"
}
}
TRS проекты¶
Действия с TRS проектами.
Создание нового TRS проекта с заданными параметрами.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
name | body | string | Имя проекта, уникальное в рамках домена. |
enabled (Optional) | body | bool | Состояние проекта (включен/выключен). |
description (Optional) | body | string | Описание проекта. |
parent_id (Optional) | body | string | Идентификатор родительского проекта/домена. |
is_domain (Optional) | body | string | Флаг, указывающий возможность использовать проект в качестве домена. |
tags (Optional) | body | string | Список тэгов проекта. |
domain_id (Optional) | body | string | Идентификатор домена проекта. |
flavor_id | body | string | Идентификатор типа виртуальных машин проекта. |
image_id | body | string | Идентификатор образа виртуальных машин проекта. |
operation_mode (Optional) | body | string | Режим работы TRS машин проекта. Возможные значения:
|
network_id (Optional) | body | string | Идентификатор сети проекта. |
availability_zone (Optional) | body | string | Зона доступности проекта. |
instance_init_script (Optional) | body | string | Скрипт, закодированный в формате base64. Исполняется при создании всех TRS машин проекта. |
min_reserve_vm (Optional) | body | integer | Минимальное количество резервных виртуальных машин в проекте. По умолчанию: None. |
instance_name_pattern (Optional) | body | string | Шаблон имен виртуальных машин. |
user_volume_enabled (Optional) | body | string | Флаг, включающий автоматическое создание пользовательских дисков при подключении к виртуальной машине. |
volume_size (Optional) | body | int | Размер диска. |
volume_type_id (Optional) | body | string | Идентификатор типа диска. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"project":{"name": "test_proj","enabled": "True","description":"Test Project_2","parent_id":"37e51ab4c5134e5198788d1f6afe5b8b","domain_id":"37e51ab4c5134e5198788d1f6afe5b8b","flavor_id": "25a8679f-582a-4f7c-b9c2-286a60bedb76","image_id": "bdd277be-ebf3-4ff7-8c05-c6f20cbddd61","network_id": "39523179-37b5-4fd7-bf14-a1f7134a6b1f","operation_mode": "2", "availability_zone": "nova"}}' http://controller:9364/v1/projects/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id (Optional) | body | string | Идентификатор проекта. |
Пример результата в JSON формате:
{
"project": {
"id": "d394da7c4d0747bd879e0e865222b3d9",
}
}
Изменение параметров TRS проекта.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
project_id | path | string | Идентификатор проекта. |
name (Optional) | body | string | Имя проекта, уникальное в рамках домена. |
enabled (Optional) | body | bool | Состояние проекта (включен/выключен). |
description (Optional) | body | string | Описание проекта. |
domain_id (Optional) | body | string | Идентификатор домена проекта. |
tags (Optional) | body | string | Список тэгов проекта. |
flavor_id (Optional) | body | string | Идентификатор типа виртуальных машин проекта. |
image_id (Optional) | body | string | Идентификатор образа виртуальных машин проекта. |
network_id (Optional) | body | string | Идентификатор сети проекта. |
availability_zone (Optional) | body | string | Зона доступности проекта. |
instance_init_script (Optional) | body | string | Скрипт, закодированный в формате base64. Исполняется при создании всех TRS машин проекта. |
min_reserve_vm (Optional) | body | integer | Минимальное количество резервных виртуальных машин в проекте. По умолчанию: None. |
instance_name_pattern (Optional) | body | string | Шаблон имен виртуальных машин. |
user_volume_enabled (Optional) | body | string | Флаг, включающий автоматическое создание пользовательских дисков при подключении к виртуальной машине. |
volume_size (Optional) | body | int | Размер диска. |
volume_type_id (Optional) | body | string | Идентификатор типа диска. |
Пример запроса:¶
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"project":{"name": "new name","enabled": "False","description":"Test Project_2","flavor_id": "25a8679f-582a-4f7c-b9c2-286a60bedb76","image_id": "bdd277be-ebf3-4ff7-8c05-c6f20cbddd61","network_id": "39523179-37b5-4fd7-bf14-a1f7134a6b1f", "availability_zone": "nova", "instance_init_script": "IyEvYmluL3NoCmVjaG8gJ0hlbGxvIGZyb20gdGhlIGRldiB0ZWFtISc="}}' http://controller:9364/v1/projects/5f62c4da73f34e869d9a3e8ab79b147a | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id (Optional) | body | string | Идентификатор проекта. |
flavor_id (Optional) | body | string | Идентификатор типа виртуальных машин проекта. |
image_id (Optional) | body | string | Идентификатор образа виртуальных машин проекта. |
network_id (Optional) | body | string | Идентификатор сети проекта. |
availability_zone (Optional) | body | string | Зона доступности проекта. |
operation_mode (Optional) | body | string | Режим работы TRS машин проекта. Возможные значения:
|
instance_init_script (Optional) | body | string | Скрипт, закодированный в формате base64. Исполняется при создании всех TRS машин проекта. |
user_volume_enabled (Optional) | body | string | Флаг, включающий автоматическое создание пользовательских дисков при подключении к виртуальной машине. |
volume_size (Optional) | body | int | Размер диска. |
volume_type_id (Optional) | body | string | Идентификатор типа диска. |
Пример результата в JSON формате:
{
"project": {
"id": "d394da7c4d0747bd879e0e865222b3d9",
"image_id": "bdd277be-ebf3-4ff7-8c05-c6f20cbddd61",
"flavor_id": "25a8679f-582a-4f7c-b9c2-286a60bedb76",
"network_id": "39523179-37b5-4fd7-bf14-a1f7134a6b1f",
"availability_zone": "nova",
"operation_mode": "1",
"instance_init_script": "IyEvYmluL3NoCmVjaG8gJ0hlbGxvIGZyb20gdGhlIGRldiB0ZWFtISc=",
"user_volume_enabled": true,
"volume_size": 1,
"volume_type_id": null
}
}
Получение списка TRS проектов (тенантов).
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
name (Optional) | body | string | Имя проекта, уникальное в рамках домена. |
enabled (Optional) | body | bool | Состояние проекта (включен/выключен). |
domain (Optional) | body | string | Имя домена проекта. |
user (Optional) | body | string | Идентификатор пользователя. |
operation_mode (Optional) | body | string | Режим работы TRS машин проекта. Возможные значения:
|
with_os_object (Optional) | path | bool | Параметр, позволяющий расширять ответ объектом os_project , содержащим атрибуты проекта OpenStack. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/projects/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id (Optional) | body | string | Идентификатор проекта. |
image_id (Optional) | body | string | Идентификатор образа виртуальных машин проекта. |
flavor_id (Optional) | body | string | Идентификатор типа виртуальных машин проекта. |
network_id (Optional) | body | string | Идентификатор сети проекта. |
availability_zone (Optional) | body | string | Зона доступности проекта. |
operation_mode (Optional) | body | string | Режим работы TRS машин проекта. Возможные значения:
|
os_project (Optional) | body | object | Проект OpenStack. |
Пример результата в JSON формате:
{
"projects": [
{
"id": "d394da7c4d0747bd879e0e865222b3d9",
"image_id": "d91232fa-14ad-4e41-980a-d82dc9ea3929",
"flavor_id": "0972fadc-6f8d-415a-b4cb-d4a0992b2370",
"network_id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3",
"availability_zone": "nova",
"operation_mode": "1",
"user_volume_enabled": true,
"volume_size": 1,
"volume_type_id": null
},
{
"id": "37e51ab4c5134e5198788d1f6afe5b8b",
"image_id": "747488c2-5aa6-4d92-a982-e0319bee70e1",
"flavor_id": "fc77978d-02fb-4a53-b839-313abb7343c3",
"network_id": "d57e3c66-69bb-46d3-af75-28c41ed1076f",
"availability_zone": "nova",
"operation_mode": "2",
"user_volume_enabled": true,
"volume_size": 1,
"volume_type_id": null
}
]
}
Получение подробной информации о TRS проекте.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
project_id | path | string | Идентификатор проекта. |
with_os_object (Optional) | path | bool | Параметр, позволяющий расширять ответ объектом os_project , содержащим атрибуты проекта OpenStack. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" "http://controller:9364/v1/projects/$project_id?with_os_object=true" | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id (Optional) | body | string | Идентификатор проекта. |
image_id (Optional) | body | string | Идентификатор образа виртуальных машин проекта. |
flavor_id (Optional) | body | string | Идентификатор типа виртуальных машин проекта. |
network_id (Optional) | body | string | Идентификатор сети проекта. |
availability_zone (Optional) | body | string | Зона доступности проекта. |
operation_mode (Optional) | body | string | Режим работы TRS машин проекта. Возможные значения:
|
instance_init_script (Optional) | body | string | Скрипт, закодированный в формате base64. Исполняется при создании всех TRS машин проекта. |
min_reserve_vm (Optional) | body | integer | Минимальное количество резервных виртуальных машин в проекте. По умолчанию: None. |
instance_name_pattern (Optional) | body | string | Шаблон имен виртуальных машин. |
os_project (Optional) | body | object | Проект OpenStack. |
Пример результата в JSON формате:
{
"project": {
"availability_zone": "",
"flavor_id": "41f2e2b1-d806-4688-8814-d4bedd6aee20",
"id": "c445f25f8c7e48a99ee7985309ed6954",
"image_id": "1e56ddcc-4d8d-42a1-8650-8a496c498e8c",
"instance_init_script": null,
"network_id": "3bff4756-aed7-4603-8fec-cfbe83654f14",
"operation_mode": "1",
"user_volume_enabled": true,
"volume_size": 1,
"volume_type_id": null,
"os_project": {
"availability_zone": "",
"description": "",
"domain_id": "default",
"enabled": true,
"flavor_id": "41f2e2b1-d806-4688-8814-d4bedd6aee20",
"id": "c445f25f8c7e48a99ee7985309ed6954",
"image_id": "1e56ddcc-4d8d-42a1-8650-8a496c498e8c",
"is_domain": false,
"links": {
"self": "http://dev-cnt7q-ovs-02.stand.loc:5000/v3/projects/c445f25f8c7e48a99ee7985309ed6954"
},
"name": "0745ee8b21a949fab34cd2d05265234c",
"network_id": "3bff4756-aed7-4603-8fec-cfbe83654f14",
"operation_mode": "1",
"parent_id": "default",
"project_type": "TRS",
"tags": [
"trs"
]
}
}
}
Получение значений по умолчанию для TRS проектов из конфигурационного файла: шаблон имен TRS машин, зона доступности.
Параметры запроса:¶
Запрос не имеет параметров.
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" "http://controller:9364/v1/projects/actions/get-settings" | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
instance_name_pattern (Optional) | body | string | Шаблон имен виртуальных машин. |
default_availability_zone (Optional) | body | string | Зона доступности по умолчанию. |
Пример результата в JSON формате:
{
"project_settings": {
"instance_name_pattern": "trs-**",
"default_availability_zone": "nova"
}
}
Получение статистики TRS проекта.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
project_id | path | string | Идентификатор проекта. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" "http://controller:9364/v1/projects/$project_id/statistics" | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
created_servers (Optional) | body | string | Количество созданных виртуальных машин. |
active_servers (Optional) | body | string | Количество активных виртуальных машин. |
error_servers (Optional) | body | string | Количество виртуальных машин в статусе error. |
created_trs_servers (Optional) | body | string | Количество созданных виртуальных TRS машин. |
active_trs_servers (Optional) | body | string | Количество активных виртуальных TRS машин. |
error_trs_servers (Optional) | body | string | Количество виртуальных TRS машин в статусе error. |
free_trs_servers (Optional) | body | string | Количество свободных виртуальных TRS машин (нет ассоциированных пользователей). |
occupied_trs_servers (Optional) | body | string | Количество занятых виртуальных TRS машин. |
simultaneous_trs_servers (Optional) | body | string | Количество виртуальных TRS машин, для которых ассоциировано больше одного пользователя. |
Пример результата в JSON формате:
{
"statistics": {
"created_servers": 10,
"active_servers": 8,
"error_servers": 1,
"created_trs_servers": 10,
"active_trs_servers": 8,
"error_trs_servers": 1,
"free_trs_servers": 2,
"occupied_trs_servers": 8,
"simultaneous_trs_servers": 4
}
}
Автоматическое распределение свободных виртуальных машин проекта пользователям.
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
project_id | path | string | Идентификатор проекта. |
with_os_object (Optional) | path | bool | Параметр, позволяющий расширять ответ объектом os_project , содержащим атрибуты проекта OpenStack. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" http://controller:9364/v1/projects/db172307fd47470ca0cf254427d22f14/actions/auto-allocate-users
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
task_id (Optional) | body | string | ID задачи в celery. |
Пример результата в JSON формате:
{
"task_id": "7c8fbc6c-468d-4afb-a292-e70a3d475edc"
}
Виртуальные TRS машины¶
Действия с виртуальными TRS машинами.
Создание новой виртуальной машины с типом TRS
.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
name | body | string | Имя виртуальной машины. Максимальная длина имени TRS машины не должна превышать 245 символов. |
count (Optional) | body | integer | Количество созданных виртуальных машин. |
description (Optional) | body | string | Описание виртуальной машины. |
users (Optional) | body | array | Пользователи виртуальной TRS машины. |
groups (Optional) | body | array | Группы пользователей виртуальной машины. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"server":{"name": "test_vm", "count": 1,"description":"Test TRS vm"}}' http://controller:9364/v1/servers/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id (Optional) | body | string | Идентификатор виртуальной машины. |
reservation_id (Optional) | body | string | Reservation ID созданных виртуальных машин. |
Пример результата в JSON формате:
{
"servers": [
{
"id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3",
},
{
"id": "0972fadc-6f8d-415a-b4cb-d4a0992b2370",
},
],
"reservation_id": "r-vd4o1bvy"
}
Изменение параметров TRS машины.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
server_id | path | string | Идентификатор виртуальной машины. |
users (Optional) | body | array | Пользователи виртуальной TRS машины. |
groups (Optional) | body | array | Группы пользователей виртуальной машины. |
Пример запроса:¶
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"server":{"users": ["d91232fa-14ad-4e41-980a-d82dc9ea3929", "0972fadc-6f8d-415a-b4cb-d4a0992b2370"], "groups": ["d57e3c66-69bb-46d3-af75-28c41ed1076f"]}}' http://controller:9364/v1/servers/254ba49f-584b-419d-9e86-afe9aa8a122e | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id | body | string | Идентификатор виртуальной машины. |
project_id | body | string | Идентификатор проекта. |
assigned | body | string | Флаг, который указывает, назначен ли на виртуальную машину пользователь или группа. |
users (Optional) | body | array | Пользователи виртуальной TRS машины. |
groups (Optional) | body | array | Группы пользователей виртуальной машины. |
Пример результата в JSON формате:
{
"server": {
"id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3",
"project_id": "3005d0d44cf84c7cbcb1ad1be83fba8f",
"assigned": true,
"users": ["d91232fa-14ad-4e41-980a-d82dc9ea3929",
"0972fadc-6f8d-415a-b4cb-d4a0992b2370"],
"groups": ["d57e3c66-69bb-46d3-af75-28c41ed1076f"]
}
}
Получение списка TRS машин.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
project_id (Optional) | path | string | Идентификатор проекта. |
assigned (Optional) | path | string | Флаг, который указывает, назначен ли на виртуальную машину пользователь или группа. |
group (Optional) | path | string | Группа пользователей виртуальной машины. |
user (Optional) | path | string | Пользователь виртуальной TRS машины. |
with_os_object (Optional) | path | bool | Параметр, позволяющий расширять ответ объектом os_server , содержащим атрибуты виртуальной машины OpenStack. |
Параметры, поддерживающие модификаторы: project_id
, assigned
.
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/servers/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id (Optional) | body | string | Идентификатор виртуальной машины. |
project_id | body | string | Идентификатор проекта. |
assigned | body | string | Флаг, который указывает, назначен ли на виртуальную машину пользователь или группа. |
users (Optional) | body | array | Пользователи виртуальной TRS машины. |
groups (Optional) | body | array | Группы пользователей виртуальной машины. |
os_server (Optional) | body | object | Виртуальная машина OpenStack. |
Пример результата в JSON формате:
{
"servers": [
{
"id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3",
"project_id": "3005d0d44cf84c7cbcb1ad1be83fba8f",
"assigned": true,
"users": ["0972fadc-6f8d-415a-b4cb-d4a0992b2370"],
"groups": [],
},
{
"id": "0972fadc-6f8d-415a-b4cb-d4a0992b2370",
"project_id": "3005d0d44cf84c7cbcb1ad1be83fba8f",
"assigned": true,
"users": ["2506940c-22f9-4b81-a865-9aa6e7d7cba3",
"747488c2-5aa6-4d92-a982-e0319bee70e1"],
"groups": ["d91232fa-14ad-4e41-980a-d82dc9ea3929"],
}
]
}
Получение подробной информации о TRS машине.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
server_id | path | string | Идентификатор виртуальной машины. |
with_os_object (Optional) | path | bool | Параметр, позволяющий расширять ответ объектом os_server , содержащим атрибуты виртуальной машины OpenStack. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" "http://controller:9364/v1/servers/$server_id?with_os_object=true" | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id (Optional) | body | string | Идентификатор виртуальной машины. |
project_id | body | string | Идентификатор проекта. |
assigned | body | string | Флаг, который указывает, назначен ли на виртуальную машину пользователь или группа. |
users (Optional) | body | array | Пользователи виртуальной TRS машины. |
groups (Optional) | body | array | Группы пользователей виртуальной машины. |
os_server (Optional) | body | object | Виртуальная машина OpenStack. |
Пример результата в JSON формате:
{
"server": {
"groups": [
"4a2fa50aad544c81ae23dfb22a871755"
],
"id": "7ad6183a-817e-47c7-b848-741fdfbecc40",
"project_id": "184e540c7dc74df9ba31df50e1c3daf5",
"assigned": true,
"os_server": {
"OS-DCF:diskConfig": "MANUAL",
"OS-EXT-AZ:availability_zone": "test",
"OS-EXT-SRV-ATTR:host": null,
"OS-EXT-SRV-ATTR:hostname": "d2a83cd9-8ba7-4807-a29e-f59e11b7e49a-2",
"OS-EXT-SRV-ATTR:hypervisor_hostname": null,
"OS-EXT-SRV-ATTR:instance_name": "instance-00000009",
"OS-EXT-SRV-ATTR:kernel_id": "",
"OS-EXT-SRV-ATTR:launch_index": 1,
"OS-EXT-SRV-ATTR:ramdisk_id": "",
"OS-EXT-SRV-ATTR:reservation_id": "r-sr4oac5f",
"OS-EXT-SRV-ATTR:root_device_name": "/dev/vda",
"OS-EXT-SRV-ATTR:user_data": null,
"OS-EXT-STS:power_state": 0,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
"OS-SRV-USG:launched_at": null,
"OS-SRV-USG:terminated_at": null,
"accessIPv4": "",
"accessIPv6": "",
"addresses": {},
"config_drive": "",
"created": "2018-12-17T12:25:04Z",
"description": null,
"flavor": {
"disk": 0,
"ephemeral": 0,
"extra_specs": {},
"original_name": "c1_r1G_d0",
"ram": 1024,
"swap": 0,
"vcpus": 1
},
"hostId": "",
"host_status": "",
"id": "7ad6183a-817e-47c7-b848-741fdfbecc40",
"image": {
"id": "d0bed70d-560d-48cd-bd20-0b1818545d39",
"links": [
{
"href": "http://dev-cnt7q-ovs-02.stand.loc:8774/ce1eaa969dd74cf0a33fe222f087533c/images/d0bed70d-560d-48cd-bd20-0b1818545d39",
"rel": "bookmark"
}
]
},
"key_name": null,
"links": [
{
"href": "http://dev-cnt7q-ovs-02.stand.loc:8774/v2.1/ce1eaa969dd74cf0a33fe222f087533c/servers/7ad6183a-817e-47c7-b848-741fdfbecc40",
"rel": "self"
},
{
"href": "http://dev-cnt7q-ovs-02.stand.loc:8774/ce1eaa969dd74cf0a33fe222f087533c/servers/7ad6183a-817e-47c7-b848-741fdfbecc40",
"rel": "bookmark"
}
],
"locked": false,
"metadata": {},
"name": "d2a83cd9-8ba7-4807-a29e-f59e11b7e49a-2",
"os-extended-volumes:volumes_attached": [],
"progress": 0,
"status": "ACTIVE",
"tags": [
"trs"
],
"tenant_id": "184e540c7dc74df9ba31df50e1c3daf5",
"updated": "2018-12-17T12:43:06Z",
"user_id": "cf5910a0ff0c43158c82f86a2b974b55"
},
"users": [
"47aa3ba7eb48459bac24c5929f49a3c3"
]
}
}
Пользователи и группы пользователей TRS машин¶
Управление пользователями и группами пользователей TRS машин.
Назначение пользователей TRS машине. Вся информация о назначениях пользователей и их отмене сохраняется в базе данных.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
server_id | path | string | Идентификатор виртуальной машины. |
users | body | array | Пользователи виртуальной TRS машины. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"users": ["d91232fa-14ad-4e41-980a-d82dc9ea3929", "2506940c-22f9-4b81-a865-9aa6e7d7cba3"]}' http://controller:9364/v1/servers/246bc0c0-6f82-4343-8d9e-9c1ef706a3d0/users/
Эта операция не имеет содержания ответа.
Назначение групп пользователей TRS машине. Вся информация о назначениях групп и их отмене сохраняется в базе данных.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
server_id | path | string | Идентификатор виртуальной машины. |
groups | body | array | Группы пользователей виртуальной машины. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"groups": ["d91232fa-14ad-4e41-980a-d82dc9ea3929", "2506940c-22f9-4b81-a865-9aa6e7d7cba3"]}' http://controller:9364/v1/servers/246bc0c0-6f82-4343-8d9e-9c1ef706a3d0/groups/
Эта операция не имеет содержания ответа.
Назначение пользователя TRS машинам. Вся информация о назначениях пользователей и их отмене сохраняется в базе данных.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
user_id | path | string | Идентификатор пользователя. |
servers | body | array | Виртуальные TRS машины пользователя. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"servers": ["d91232fa-14ad-4e41-980a-d82dc9ea3929", "2506940c-22f9-4b81-a865-9aa6e7d7cba3"]}' http://controller:9364/v1/users/246bc0c0-6f82-4343-8d9e-9c1ef706a3d0/servers/
Эта операция не имеет содержания ответа.
Назначение группы пользователей TRS машинам. Вся информация о назначениях групп и их отмене сохраняется в базе данных.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
group_id | path | string | Идентификатор группы пользователей. |
servers | body | array | Виртуальные машины группы пользователей. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"servers": ["d91232fa-14ad-4e41-980a-d82dc9ea3929", "2506940c-22f9-4b81-a865-9aa6e7d7cba3"]}' http://controller:9364/v1/groups/246bc0c0-6f82-4343-8d9e-9c1ef706a3d0/servers/
Эта операция не имеет содержания ответа.
Получение списка TRS машин пользователя.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
user_id | path | string | Идентификатор пользователя. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/users/bd4a97119113445e8d3ce323051b945d/servers/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
instance_id | body | string | Идентификатор виртуальной машины. |
project_id (Optional) | body | string | Идентификатор проекта. |
project_name (Optional) | body | string | Имя проекта, уникальное в рамках домена. |
Пример результата в JSON формате:
{
"servers": [
{
"instance_id": "64946d43-6bec-4a34-898c-25b67426e3e4",
"project_id": "10145e7899324f03bef44502e316bf96",
"project_name": "fdd89303-1e16-4dfa-a48a-3d8de47f550a"
},
{
"instance_id": "937a0e68-98f7-474f-b2ed-f2b6ab121579",
"project_id": "10145e7899324f03bef44502e316bf96",
"project_name": "fdd89303-1e16-4dfa-a48a-3d8de47f550a"
}
]
}
Получение списка пользователей TRS машины.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
server_id | body | string | Идентификатор виртуальной машины. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/servers/2506940c-22f9-4b81-a865-9aa6e7d7cba3/users/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id (Optional) | body | string | Идентификатор пользователя. |
Пример результата в JSON формате:
{
"users": [
{"id": "0972fadc-6f8d-415a-b4cb-d4a0992b2370"},
{"id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3"},
{"id": "747488c2-5aa6-4d92-a982-e0319bee70e1"}
]
}
Получение списка групп пользователей TRS машины.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
server_id | body | string | Идентификатор виртуальной машины. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/servers/2506940c-22f9-4b81-a865-9aa6e7d7cba3/groups/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id (Optional) | body | string | Идентификатор группы пользователей. |
Пример результата в JSON формате:
{
"groups": [
{"id": "0972fadc-6f8d-415a-b4cb-d4a0992b2370"},
{"id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3"},
{"id": "747488c2-5aa6-4d92-a982-e0319bee70e1"}
]
}
Снятие назначения пользователей TRS машинам.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
server_id | path | string | Идентификатор виртуальной машины. |
user_id | path | string | Идентификатор пользователя. |
Пример запроса:¶
curl -X DELETE -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/servers/0972fadc-6f8d-415a-b4cb-d4a0992b2370/users/747488c2-5aa6-4d92-a982-e0319bee70e1
Эта операция не имеет содержания ответа.
Снятие назначения групп пользователей TRS машинам.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
server_id | path | string | Идентификатор виртуальной машины. |
group_id | path | string | Идентификатор группы пользователей. |
Пример запроса:¶
curl -X DELETE -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/servers/0972fadc-6f8d-415a-b4cb-d4a0992b2370/groups/747488c2-5aa6-4d92-a982-e0319bee70e1
Эта операция не имеет содержания ответа.
Плавающие IP-адреса¶
Действия с плавающими IP-адресами.
Получение списка всех пользователей, для которых назначены плавающие IP-адреса.
Запрос¶
Параметры запроса:¶
Запрос не имеет параметров.
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/users/ | python -m json.tool
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id | body | string | Идентификатор пользователя. |
floating_ip_id | body | string | Идентификатор плавающего IP-адреса. |
Пример результата в JSON формате:
{
"users": [
{
"id": "56d88dd0a3ab4c4c8d1d15534352d7de",
"floating_ip_id": "c3bdc5ba-cdff-49d0-b84c-ac9329ab1410"
}
]
}
Получение пользователя, на которого назначен плавающий IP-адрес.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
user_id | path | string | Идентификатор пользователя. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/users/$user_id | python -m json.tool
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id | body | string | Идентификатор пользователя. |
floating_ip_id (Optional) | body | string | Идентификатор плавающего IP-адреса. |
Пример результата в JSON формате:
{
"user": [
{
"id": "56d88dd0a3ab4c4c8d1d15534352d7de",
"floating_ip_id": "c3bdc5ba-cdff-49d0-b84c-ac9329ab1410"
}
]
}
Назначение плавающего IP-адреса пользователю.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
user_id | path | string | Идентификатор пользователя. |
floating_ip_id | body | string | Идентификатор плавающего IP-адреса. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/users/$user_id/floating-ip -d '{"floating_ip_id": "c3bdc5ba-cdff-49d0-b84c-ac9329ab1410"}'
Эта операция не имеет содержания ответа.
Обновление назначения плавающего IP-адреса пользователю.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
user_id | path | string | Идентификатор пользователя. |
floating_ip_id | body | string | Идентификатор плавающего IP-адреса. |
Пример запроса:¶
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/users/$user_id/floating-ip -d '{"floating_ip_id": "c3bdc5ba-cdff-49d0-b84c-ac9329ab1410"}'
Эта операция не имеет содержания ответа.
Снятие назначения плавающего IP-адреса пользователю.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
user_id | path | string | Идентификатор пользователя. |
Пример запроса:¶
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9364/v1/users/$user_id/floating-ip
Эта операция не имеет содержания ответа.
Сессии¶
Действия с сессиями.
Получение списка сессий.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
user_id (Optional) | body | string | Идентификатор пользователя. |
user_name (Optional) | body | string | Имя пользователя. |
instance_id (Optional) | body | string | Идентификатор виртуальной машины. |
instance_name (Optional) | body | string | Имя виртуальной машины. |
project_id (Optional) | body | string | Идентификатор проекта. |
connection_type (Optional) | body | string | Тип подключения. Возможные значения:
|
last (Optional) | body | bool | Дополнительный параметр, указывающий необходимость вывода только последних сессий виртуальных машин. |
Параметры, поддерживающие модификаторы: user_id
, user_name
, instance_id
.
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/sessions/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
instance_id (Optional) | body | string | Идентификатор виртуальной машины. |
session_id (Optional) | body | string | Идентификатор сессии. |
user_id (Optional) | body | string | Идентификатор пользователя. |
user_name (Optional) | body | string | Имя пользователя. |
connection_type (Optional) | body | string | Тип подключения. Возможные значения:
|
closed_at (Optional) | body | string | Дата и время закрытия сессии. |
client_ip (Optional) | body | string | IP-адрес клиента. |
client_os (Optional) | body | string | Операционная система клиента. |
client_info (Optional) | body | string | Информация о клиенте. |
created_at (Optional) | body | string | Время создания сессии. |
Пример результата в JSON формате:
{
"sessions": [
{
"instance_id": "e3afefea-7dfe-4754-8607-fb3f45b0fe07",
"session_id": "11fa220f-9f88-406a-ba79-0acbba83c32b",
"user_id": "56d88dd0a3ab4c4c8d1d15534352d7de",
"user_name": "admin",
"connection": "web",
"closed_at": null,
"client_ip": "192.168.0.2",
"client_os": "Ubuntu 16.04",
"client_info": "RSclient 0.1.0"
"created_at": "2018-10-31T12:59:43"
}
]
}
Получение количества сессий.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
user_id (Optional) | body | string | Идентификатор пользователя. |
user_name (Optional) | body | string | Имя пользователя. |
instance_id (Optional) | body | string | Идентификатор виртуальной машины. |
instance_name (Optional) | body | string | Имя виртуальной машины. |
project_id (Optional) | body | string | Идентификатор проекта. |
connection_type (Optional) | body | string | Тип подключения. Возможные значения:
|
last (Optional) | body | bool | Дополнительный параметр, указывающий необходимость вывода только последних сессий виртуальных машин. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/sessions/count | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
count (Optional) | body | integer | Количество объектов. |
Пример результата в JSON формате:
{
"count": 5
}
Добавление новой сессии.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
conn_type (Optional) | body | string | Тип подключения. Возможные значения:
|
instance_id | body | string | Идентификатор виртуальной машины. |
client_ip (Optional) | body | string | IP-адрес клиента. |
client_os (Optional) | body | string | Операционная система клиента. |
client_info (Optional) | body | string | Информация о клиенте. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"session": {"instance_id": "8735df50-6e08-462e-b091-1552f8588fd4", "conn_type": "web"}}' http://controller:9364/v1/sessions/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
instance_id (Optional) | body | string | Идентификатор виртуальной машины. |
user_id (Optional) | body | string | Идентификатор пользователя. |
user_name (Optional) | body | string | Имя пользователя. |
connection_type (Optional) | body | string | Тип подключения. Возможные значения:
|
closed_at (Optional) | body | string | Дата и время закрытия сессии. |
client_ip (Optional) | body | string | IP-адрес клиента. |
client_os (Optional) | body | string | Операционная система клиента. |
client_info (Optional) | body | string | Информация о клиенте. |
created_at (Optional) | body | string | Время создания сессии. |
Пример результата в JSON формате:
{
"session": {
"instance_id": "e3afefea-7dfe-4754-8607-fb3f45b0fe07",
"user_id": "56d88dd0a3ab4c4c8d1d15534352d7de",
"user_name": "admin",
"connection": "web",
"closed_at": null,
"client_ip": "192.168.0.2",
"client_os": "Ubuntu 16.04",
"client_info": "RSclient 0.1.0",
"created_at": "2018-10-31T12:59:43"
}
}
Назначение дисков пользователю¶
Назначение дисков пользователю.
Получение списка назначений дисков.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
user_id (Optional) | path | string | Идентификатор пользователя. |
project_id (Optional) | path | string | Идентификатор проекта. |
volume_id (Optional) | path | string | Идентификатор диска. |
Параметры, поддерживающие модификаторы: user_id
, project_id
, volume_id
.
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/volume-assignments/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id | body | string | Идентификатор назначения диска. |
user_id | body | string | Идентификатор пользователя. |
project_id | body | string | Идентификатор проекта. |
volume_id | body | string | Идентификатор диска. |
Пример результата в JSON формате:
{
"volume-assignments": [
{
"id": 5,
"project_id": "3005d0d44cf84c7cbcb1ad1be83fba8f",
"user_id": "c72a1b62a8194426a0e4c40a4b4d77a0",
"volume_id": "c8327ff2-eb85-4495-ab68-df4aa36d7ae0"
},
{
"id": 10,
"project_id": "3005d0d44cf84c7cbcb1ad1be83fba8f",
"user_id": "7ac2f8179b174f7bb5a34d9646e856ef",
"volume_id": "2f1a653b-2f5a-499c-a2b9-2a893b855504"
}
]
}
Получение информации о назначении диска.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
assignment_id | path | string | Идентификатор назначения диска. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/volume-assignments/5 | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id | body | string | Идентификатор назначения диска. |
user_id | body | string | Идентификатор пользователя. |
project_id | body | string | Идентификатор проекта. |
volume_id | body | string | Идентификатор диска. |
Пример результата в JSON формате:
{
"volume-assignment": {
"id": 5,
"project_id": "3005d0d44cf84c7cbcb1ad1be83fba8f",
"user_id": "c72a1b62a8194426a0e4c40a4b4d77a0",
"volume_id": "c8327ff2-eb85-4495-ab68-df4aa36d7ae0"
}
}
Создание назначения диска пользователю.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
user_id | body | string | Идентификатор пользователя. |
project_id | body | string | Идентификатор проекта. |
volume_id | body | string | Идентификатор диска. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/volume-assignments/ -d '{"user_id": "c72a1b62a8194426a0e4c40a4b4d77a0", "project_id": "3005d0d44cf84c7cbcb1ad1be83fba8f", "volume_id": "c8327ff2-eb85-4495-ab68-df4aa36d7ae0"}'
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id | body | string | Идентификатор назначения диска. |
user_id | body | string | Идентификатор пользователя. |
project_id | body | string | Идентификатор проекта. |
volume_id | body | string | Идентификатор диска. |
Пример результата в JSON формате:
{
"volume-assignment": {
"id": 5,
"project_id": "3005d0d44cf84c7cbcb1ad1be83fba8f",
"user_id": "c72a1b62a8194426a0e4c40a4b4d77a0",
"volume_id": "c8327ff2-eb85-4495-ab68-df4aa36d7ae0"
}
}
TRS broker API¶
Виртуальные TRS машины¶
Интерфейс предоставляет возможность подключения к виртуальной TRS машине.
Получение ID асинхронной задачи получения адреса виртуальной машины для подключения.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
user | body | string | Имя пользователя. |
password | body | string | Пароль пользователя. |
user_domain_name | body | string | Доменное имя пользователя. |
auth_tenant (Optional) | body | string | Имя проекта, уникальное в рамках домена. |
project_domain_name (Optional) | body | string | Имя домена проекта. |
ip_address (Optional) | body | string | IP-адрес для создания правил группы безопасности виртуальной машины. |
conn_type (Optional) | body | string | Тип подключения. Возможные значения:
|
os (Optional) | body | string | Операционная система клиента. |
client (Optional) | body | string | Информация о клиенте. |
Параметры запроса c токеном авторизации:¶
Name | In | Type | Description |
---|---|---|---|
token | body | string | Токен аутентификации. |
auth_tenant (Optional) | body | string | Имя проекта, уникальное в рамках домена. |
project_domain_name (Optional) | body | string | Имя домена проекта. |
ip_address (Optional) | body | string | IP-адрес для создания правил группы безопасности виртуальной машины. |
conn_type (Optional) | body | string | Тип подключения. Возможные значения:
|
os (Optional) | body | string | Операционная система клиента. |
client (Optional) | body | string | Информация о клиенте. |
Пример запроса:¶
curl -X POST -H "Content-Type: application/json" http://controller:9365/v1/request-vm/ -d '{"user": "trs", "password": "rR0666&4", "user_domain_name": "default"}' | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
X-Auth-Token | header | string | Токен аутентификации. |
request_id | body | string | Идентификатор запроса. |
Пример результата в JSON формате:
{
"request_id": "fe8775d4-1ac0-4224-9fec-93151e0bfc43"
}
Получение IP виртуальной машины по ID асинхронной задачи.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
request | body | string | Идентификатор запроса. |
Пример запроса:¶
curl -X POST -H "Authorization: Bearer $token" -H "Content-Type: application/json" http://controller:9365/v1/get-vm/ -d '{"request": "req-48a56205-f4b5-4c05-8c64-30342a7e1cee"}' | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
status | body | string | Статус запроса. |
message | body | string | Сообщение запроса. |
id | body | string | Идентификатор виртуальной машины. |
vm_state | body | string | Состояние виртуальной машины. |
ip | body | string | IP-адрес виртуальной машины. |
progress | body | integer | Состояние прогресса создания виртуальной машины. Проставляется службой nova. |
task_state | body | string | Состояние задачи. |
Пример результата в JSON формате:
{
"status": "completed",
"message": null,
"server": {
"status": "ACTIVE",
"vm_state": "active",
"ip": "192.168.1.13",
"progress": 0,
"task_state": null,
"id": "c14d27cd-799e-4317-a430-af7c877703cf"
}
}
Получение списка TRS проектов пользователя.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
user | body | string | Имя пользователя. |
password | body | string | Пароль пользователя. |
user_domain_name | body | string | Доменное имя пользователя. |
Пример запроса:¶
curl -X POST -H "Authorization: Bearer $token" -H "Content-Type: application/json" http://controller:9365/v1/get-projects/ -d '{"user": "trs", "password": "rR0666&4", "user_domain_name": "default"}' | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
projects | body | array | Список проектов, доступных пользователю. |
Пример результата в JSON формате:
{
"projects": [
"trs_project1",
"trs_project2",
"trs_project3"
]
}
Отвязка пользователя от TRS машины.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
user | body | string | Имя пользователя. |
password | body | string | Пароль пользователя. |
user_domain_name | body | string | Доменное имя пользователя. |
instance_id | body | string | Идентификатор виртуальной машины. |
Пример запроса:¶
curl -X POST -H "Authorization: Bearer $token" -H "Content-Type: application/json" http://controller:9365/v1/server-remove-user/ -d '{"user": "trs", "password": "rR0666&4", "user_domain_name": "default", "instance_id": "11"}' | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
message | body | string | Сообщение. |
Пример результата в JSON формате:
{
"message": "User with user_id = 1 was deleted from instance with instance_id = 11"
}
Удаление TRS машины.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
user | body | string | Имя пользователя. |
password | body | string | Пароль пользователя. |
user_domain_name | body | string | Доменное имя пользователя. |
instance_id | body | string | Идентификатор виртуальной машины. |
project_name | body | string | Имя проекта, уникальное в рамках домена. |
Пример запроса:¶
curl -X POST -H "Authorization: Bearer $token" -H "Content-Type: application/json" http://controller:9365/v1/delete-vm/ -d '{"user": "trs", "password": "rR0666&4", "user_domain_name": "default", "instance_id": "11", "project_name": "a123"}' | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
message | body | string | Сообщение. |
Пример результата в JSON формате:
{
"message": "Instance with instance_id = 11 was deleted"
}
Описание ошибок обращений к TRS server¶
В случае ошибки сервер вернет ответ со статусом HTTP 400, который будет содержать объект error
со следующими параметрами:
code
- код ошибки;message
- краткое описание ошибки;data
- дополнительная информация об ошибке.
Перечень кодов ошибок с описанием¶
Код ошибки | Описание на английском | Сообщение в RS клиенте на английском | Описание на русском | Сообщение в RS клиенте на русском |
---|---|---|---|---|
1 | Unexpected error occurred.
|
Unexpected error occurred. Please contact system administrator.
|
Произошла непредвиденная ошибка.
|
Произошла непредвиденная ошибка. Обратитесь к системному администратору.
|
2 | License expired.
|
License of RS server {cloud_url} got out. Please contact system administrator.
|
Истек срок действия лицензии.
|
Срок лицензии модуля RS сервер {cloud_url} истек. Обратитесь к системному администратору.
|
3 | Asynchronous task of getting an instance failed.
|
–
|
Ошибка при выполнении асинхронной задачи получения виртуальной машины.
|
–
|
4 | Failed to start asynchronous task of getting an instance.
|
–
|
Не удалось запустить асинхронную задачу получения виртуальной машины.
|
–
|
5 | No available TRS project in the specified domain found.
|
No available TRS project found. Please contact system administrator.
|
Нет доступных TRS проектов для пользователя в указанном домене.
|
Нет ни одного доступного TRS проекта. Обратитесь к системному администратору.
|
6 | Authentication error.
|
Invalid credentials. Please contact system administrator.
|
Ошибка аутентификации.
|
Неправильные учётные данные. Обратитесь к системному администратору.
|
7 | Password expired.
|
The password needs to be changed.
|
Истек срок действия пароля.
|
Необходимо изменить пароль.
|
8 | The specified project is not TRS.
|
Not a TRS project: {project_name}.
|
Указанный проект не является TRS проектом.
|
Проект {project_name} не является TRS проектом.
|
9 | Invalid request body.
|
–
|
Неверное тело запроса.
|
–
|
10 | Unable to find an instance obtain request by given ID.
|
–
|
Не удалось найти запрос на получение виртуальной машины по указанному ID.
|
–
|
11 | Forbidden to obtain an instance request.
|
–
|
Нет доступа к указанному запросу на получение виртуальной машины.
|
–
|
12 | Project quota exceeded.
|
Quota exceeded for TRS project «{project_name}». Please contact system administrator.
|
Превышена квота проекта.
|
Превышена квота для TRS проекта «{project_name}». Обратитесь к системному администратору.
|
13 | Instance creation failed.
|
Unable to create instance in project {project_name}. Please contact system administrator.
|
Не удалось создать новую виртуальную машину.
|
Не удалось создать виртуальную машину в проекте {project_name}. Обратитесь к системному администратору.
|
14 | No instances found in the specified project.
|
No instance found in project {project_name}. Please contact system administrator.
|
Нет доступных виртуальных машин в указанном проекте.
|
Не найдена виртуальная машина в проекте {project_name}. Обратитесь к системному администратору.
|
15 | Specified domain not found.
|
Domain {domain_name} not found.
|
Указанный домен не найден.
|
Домен {domain_name} не найден.
|
16 | Specified user not found.
|
User {user_name} not found in domain {domain_name}.
|
Указанный пользователь не найден.
|
Пользователь {user_name} не найден в домене {domain_name}.
|
17 | Instance is in an invalid state.
|
Instance with id {instance_id} is in invalid state: {instance_status}. Please contact system administrator.
|
Виртуальная машина находится в необрабатываемом статусе.
|
Виртуальная машина с ID {instance_id} находится в некорректном состоянии: {instance_status}. Обратитесь к системному администратору.
|
18 | Unable to obtain an instance IP address.
|
Unable to get IP address of instance with id {instance_id}. Please contact system administrator.
|
Не удалось получить IP-адрес виртуальной машины.
|
Не удалось получить IP-адрес виртуальной машины с ID {instance_id}. Обратитесь к системному администратору.
|
19 | Password expiration warning.
|
Password expires in {seconds} seconds and needs to be changed.
|
Предупреждение о том, что пароль скоро истечёт.
|
Ваш пароль истекает через {seconds} секунд, измените его.
|
20 | Warning that amount of authentications with current password is limited.
|
Password expired, {attempts} grace logins remain.
|
Предупреждение о том, что осталось ограниченное число аутентификаций с использованием текущего пароля.
|
Срок вашего пароля истек, осталось {attempts} попытки для входа.
|
21 | Authentication server is not available.
|
Authentication server is not available. Please contact system administrator.
|
Недоступен сервер аутентификации.
|
Сервер аутентификации недоступен. Обратитесь к системному администратору.
|
22 | Kerberos script file is not available because of it does not exist or it has wrong permissions.
|
Couldn’t change password because of the KERBEROS.script_path file doesn’t exist or it’s unaccessible. Please contact system administrator.
|
Файл скрипта для изменения пароля в Kerberos недоступен по причнине того, что он не найден или неверные права доступа.
|
Не удалось изменить пароль в связи с отсутствием файла KERBEROS.script_path или прав для его запуска. Обратитесь к системному администратору.
|
23 | Error while password change process, so script returned 1
|
Couldn’t change password because of an error while change password process execution. Please contact system administrator.
|
Ошибка во время выполнения скрипта изменения пароля, скрипт вернул код 1.
|
Не удалось изменить пароль в связи с ошибкой во время запуска процесса смены пароля. Обратитесь к системному администратору.
|
24 | Auth token is not valid.
|
Unexpected error occurred. Please contact system administrator.
|
Токен авторизации недействителен.
|
Произошла непредвиденная ошибка. Обратитесь к системному администратору.
|
25 | Failed to process asynchronous task of getting an instance.
|
–
|
Не удалось выполнить асинхронную задачу получения виртуальной машины.
|
–
|
26 | Request doesn’t match current Web Guard settings.
|
Invalid settings of Web Guard. Please contact system administrator.
|
Запрос не соответствует текущим настройкам Web Guard.
|
Неправильные настройки Web Guard.Обратитесь к системному администратору.
|
27 | OTP is required for authentication.
|
–
|
Для аутентификации требуется код OTP.
|
–
|
Пример ошибки в JSON формате:
{
"error": {
"message": "Quota exceeded for TRS project \"c70379f3-e905-431f-b3b4-d0820e225edf\".",
"code": 12,
"data": {
"project_name": "c70379f3-e905-431f-b3b4-d0820e225edf"
}
}
}
Пароли¶
Управление паролями.
Изменение пароля пользователя.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
user | body | string | Имя пользователя. |
user_domain_name | body | string | Доменное имя пользователя. |
password | body | string | Пароль пользователя. |
new_password | body | string | Новый пароль пользователя. |
Пример запроса:¶
curl -X POST -H "Authorization: Bearer $token" -H "Content-Type: application/json" http://controller:9365/v1/change-password/ -d '{"user": "demo", "user_domain_name": "default", "password": "123456", "new_password": "Qdr4H2d5bn01"}' | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
message | body | string | Сообщение. |
Пример результата в JSON формате:
{
"message": "Password successfully changed for user \'admin\'"
}
Задачи в celery¶
Информация о задачах в celery.
Получение списка ID последних задач celery.
Запрос¶
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9364/v1/tasks
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
task_id | body | string | ID задачи в celery. |
Пример результата в JSON формате:
{
"tasks":[
"3519adaf-7669-499e-88eb-8f05f64514e2",
"013b9778-1d39-4b18-a06c-2780b67e1091",
"31c71e8a-26cd-4b8e-a4c5-9181d578616f",
"3e720334-7533-43b7-a079-24ea84b7a8a0",
"8869de12-3f44-4b96-a20e-80a03dd575a3",
"641de831-95b2-43ba-8fd5-7822ee5d6445",
"f0204f11-8e59-410a-8108-a73212c5439a",
"3b8eff74-55b1-4eb8-80e2-adf8472fc968",
"93e30a3c-117b-4e05-990d-4ff46ac5ac84",
"7c8fbc6c-468d-4afb-a292-e70a3d475edc"
]
}
Получение информации о задачи в celery по ID.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
task_id | body | string | ID задачи в celery. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9364/v1/tasks/$task_id
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
status | body | string | Статус задачи. |
name (Optional) | body | string | Имя задачи в celery. |
traceback (Optional) | body | string | Traceback ошибки при выполнении задачи. |
result (Optional) | body | string | Результат задачи. |
Пример результата в JSON формате:
{
"status":"SUCCESS"
}