REST API¶
Примечание
Для получения доступа к REST API необходим токен. Получение токена описано во вкладке с дополнительной информацией.
VDI server API¶
Предоставляет API для управления виртуальными рабочими столами (VDI).
Информация о модуле¶
Подробная информация о модуле.
Запрос¶
Пример запроса:¶
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": "tionix_vdi_server",
"name": "Laboratoria",
"product": "TIONIX.VDIServer",
"surrogate_name": "TIONIX.VDIServer",
"unique_id": "07-002-decf3c6c893561752802",
"verified": true
},
"version": "1.35.1.dev38"
}
}
VDI проекты¶
Действия с VDI проектами.
Создание нового VDI проекта с заданными параметрами.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
name | body | string | Имя проекта, уникальное в рамках домена. |
enabled (Optional) | body | bool | Состояние проекта (включен/выключен). |
description (Optional) | body | string | Описание проекта. |
parent_id (Optional) | body | string | Идентификатор родительского проекта/домена. |
is_domain (Optional) | body | bool | Флаг, указывающий возможность использовать проект в качестве домена. |
tags (Optional) | body | string | Список тэгов проекта. |
domain_id (Optional) | body | string | Идентификатор домена проекта. |
flavor_id | body | string | Идентификатор типа виртуальных машин проекта. |
image_id | body | string | Идентификатор образа виртуальных машин проекта. |
operation_mode (Optional) | body | string | Режим работы VDI машин проекта. Возможные значения:
|
network_id (Optional) | body | string | Идентификатор сети проекта. |
availability_zone (Optional) | body | string | Зона доступности проекта. |
instance_init_script (Optional) | body | string | Скрипт, закодированный в формате base64. Исполняется при создании всех VDI машин проекта. |
min_reserve_vm (Optional) | body | integer | Минимальное количество резервных виртуальных машин в проекте. По умолчанию: None. |
instance_name_pattern (Optional) | body | string | Шаблон имен виртуальных машин. |
use_cinder_root | body | bool | Расположение корневого диска. Возможные значения:
По умолчанию: |
volume_name_pattern (Optional) | body | string | Шаблон имен дисков. |
volume_type_id (Optional) | body | string | Идентификатор типа диска. |
volume_size | body | integer | Размер корневого диска в ГБ. Возможное значение от 0 до 999. Обязателен только при значении true параметра use_cinder_root . |
delete_on_termination | body | bool | Флаг для удаления корневого диска при удалении VDI машины. Обязателен только при значении true параметра use_cinder_root . |
protocol_name | body | string | Тип протокола, по которому осуществляется подключение к VDI-сессии. Возможные значения:
|
enabled_for_editing (Optional) | body | bool | Разрешение пользователю управлять настройками протокола. Возможные значения:
|
protocol_settings (Optional) | body | object | Параметр, отвечающий за передачу опций подключения к VDI-сессии. Возможные значения:
|
protocol_settings.rdp.full_screen (Optional) | protocol_settings.rdp | bool | Полноэкранный режим. Возможные значения:
При указании |
protocol_settings.spice.full_screen (Optional) | protocol_settings.spice | bool | Полноэкранный режим. Возможные значения:
|
protocol_settings.spice.spice_preferred_compression (Optional) | protocol_settings.spice | string | Компрессия изображения. Возможные значения:
Опция поддерживается только для протокола SPICE (значение |
protocol_settings.rdp.multi_monitors (Optional) | protocol_settings.rdp | bool | Использование нескольких мониторов. Возможные значения:
Опция поддерживается только для протокола RDP (значение |
protocol_settings.rdp.use_audio (Optional) | protocol_settings.rdp | bool | Воспроизведение звука. Возможные значения:
При указании значения |
protocol_settings.spice.use_audio (Optional) | protocol_settings.spice | bool | Воспроизведение звука. Возможные значения:
|
protocol_settings.rdp.use_microphone (Optional) | protocol_settings.rdp | bool | Подключение микрофона. Возможные значения:
Опция поддерживается только для протокола RDP (значение |
protocol_settings.rdp.use_printers (Optional) | protocol_settings.rdp | bool | Поддержка принтеров. Возможные значения:
Опция поддерживается только для протокола RDP (значение |
protocol_settings.rdp.use_smartcards (Optional) | protocol_settings.rdp | bool | Поддержка смарт-карт. Возможные значения:
Опция поддерживается только для протокола RDP (значение |
protocol_settings.spice.spice_smartcard (Optional) | protocol_settings.spice | bool | Поддержка смарт-карт. Возможные значения:
Опция поддерживается только для протокола SPICE (значение |
protocol_settings.rdp.use_local_drives (Optional) | protocol_settings.rdp | bool | Управление общими каталогами. Возможные значения:
|
protocol_settings.spice.use_local_drives (Optional) | protocol_settings.spice | bool | Управление общими каталогами. Возможные значения:
|
protocol_settings.spice.redirect_usb_device (Optional) | protocol_settings | bool | Перенаправление USB-устройств. Возможные значения:
Опция поддерживается только для протокола SPICE (значение |
protocol_settings.rdp.use_clipboard (Optional) | protocol_settings.rdp | bool | Проброс буфера обмена. Возможные значения:
Опция поддерживается только для протокола RDP (значение |
protocol_settings.rdp.ldap_domain (Optional) | protocol_settings.rdp | string | Имя LDAP домена. Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name ). |
protocol_settings.rdp.use_rdp_gateway (Optional) | protocol_settings.rdp | bool | Использовать RDP Шлюз для подключения. Возможные значения:
При указании значения
Опция поддерживается только для протокола RDP (значение |
protocol_settings.rdp.rdp_gateway_host (Optional) | protocol_settings.rdp | string | Сервер шлюза удаленных рабочих столов. При указании "use_rdp_gateway"=false параметр должен иметь значение "" . Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name ). |
protocol_settings.rdp.rdp_gateway_credential (Optional) | protocol_settings.rdp | integer | Метод проверки подлинности шлюза. Возможные значения:
При указании |
Пример запроса:¶
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", "use_cinder_root": 'false', "protocol_name": "rdp", "enabled_for_editing": true, "protocol_settings": {"rdp":{"full_screen": 'true', "multi_monitors": 'true', "use_audio": 'true', "use_microphone": 'true', "use_printers": 'true', "use_smartcards": 'true', "use_local_drives": 'true', "use_clipboard": 'true', "ldap_domain":"", "use_rdp_gateway": 'true', "rdp_gateway_host":"", "rdp_gateway_credential": -1}}}}' http://controller:9364/v1/projects/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id (Optional) | body | string | Идентификатор проекта. |
Пример результата в JSON формате:
{
"project": {
"id": "d394da7c4d0747bd879e0e865222b3d9",
}
}
Изменение параметров VDI проекта.
Запрос¶
Параметры запроса:¶
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. Исполняется при создании всех VDI машин проекта. |
min_reserve_vm (Optional) | body | integer | Минимальное количество резервных виртуальных машин в проекте. По умолчанию: None. |
instance_name_pattern (Optional) | body | string | Шаблон имен виртуальных машин. |
use_cinder_root (Optional) | body | bool | Расположение корневого диска. Возможные значения:
По умолчанию: |
volume_name_pattern (Optional) | body | string | Шаблон имен дисков. |
volume_type_id (Optional) | body | string | Идентификатор типа диска. |
volume_size (Optional) | body | integer | Размер корневого диска в ГБ. Возможное значение от 0 до 999. Обязателен только при значении true параметра use_cinder_root . |
delete_on_termination (Optional) | body | bool | Флаг для удаления корневого диска при удалении VDI машины. Обязателен только при значении true параметра use_cinder_root . |
protocol_name | body | string | Тип протокола, по которому осуществляется подключение к VDI-сессии. Возможные значения:
|
enabled_for_editing (Optional) | body | bool | Разрешение пользователю управлять настройками протокола. Возможные значения:
|
protocol_settings (Optional) | body | object | Параметр, отвечающий за передачу опций подключения к VDI-сессии. Возможные значения:
|
protocol_settings.rdp.full_screen (Optional) | protocol_settings.rdp | bool | Полноэкранный режим. Возможные значения:
При указании |
protocol_settings.spice.full_screen (Optional) | protocol_settings.spice | bool | Полноэкранный режим. Возможные значения:
|
protocol_settings.spice.spice_preferred_compression (Optional) | protocol_settings.spice | string | Компрессия изображения. Возможные значения:
Опция поддерживается только для протокола SPICE (значение |
protocol_settings.rdp.multi_monitors (Optional) | protocol_settings.rdp | bool | Использование нескольких мониторов. Возможные значения:
Опция поддерживается только для протокола RDP (значение |
protocol_settings.rdp.use_audio (Optional) | protocol_settings.rdp | bool | Воспроизведение звука. Возможные значения:
При указании значения |
protocol_settings.spice.use_audio (Optional) | protocol_settings.spice | bool | Воспроизведение звука. Возможные значения:
|
protocol_settings.rdp.use_microphone (Optional) | protocol_settings.rdp | bool | Подключение микрофона. Возможные значения:
Опция поддерживается только для протокола RDP (значение |
protocol_settings.rdp.use_printers (Optional) | protocol_settings.rdp | bool | Поддержка принтеров. Возможные значения:
Опция поддерживается только для протокола RDP (значение |
protocol_settings.rdp.use_smartcards (Optional) | protocol_settings.rdp | bool | Поддержка смарт-карт. Возможные значения:
Опция поддерживается только для протокола RDP (значение |
protocol_settings.spice.spice_smartcard (Optional) | protocol_settings.spice | bool | Поддержка смарт-карт. Возможные значения:
Опция поддерживается только для протокола SPICE (значение |
protocol_settings.rdp.use_local_drives (Optional) | protocol_settings.rdp | bool | Управление общими каталогами. Возможные значения:
|
protocol_settings.spice.use_local_drives (Optional) | protocol_settings.spice | bool | Управление общими каталогами. Возможные значения:
|
protocol_settings.spice.redirect_usb_device (Optional) | protocol_settings | bool | Перенаправление USB-устройств. Возможные значения:
Опция поддерживается только для протокола SPICE (значение |
protocol_settings.rdp.use_clipboard (Optional) | protocol_settings.rdp | bool | Проброс буфера обмена. Возможные значения:
Опция поддерживается только для протокола RDP (значение |
protocol_settings.rdp.ldap_domain (Optional) | protocol_settings.rdp | string | Имя LDAP домена. Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name ). |
protocol_settings.rdp.use_rdp_gateway (Optional) | protocol_settings.rdp | bool | Использовать RDP Шлюз для подключения. Возможные значения:
При указании значения
Опция поддерживается только для протокола RDP (значение |
protocol_settings.rdp.rdp_gateway_host (Optional) | protocol_settings.rdp | string | Сервер шлюза удаленных рабочих столов. При указании "use_rdp_gateway"=false параметр должен иметь значение "" . Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name ). |
protocol_settings.rdp.rdp_gateway_credential (Optional) | protocol_settings.rdp | integer | Метод проверки подлинности шлюза. Возможные значения:
При указании |
Пример запроса:¶
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=", "use_cinder_root": 'false', "protocol_name": "rdp", "enabled_for_editing": true, "protocol_settings": {"rdp":{"full_screen": 'true', "multi_monitors": 'true', "use_audio": 'true', "use_microphone": 'true', "use_printers": 'true', "use_smartcards": 'true', "use_local_drives": 'true', "use_clipboard": 'true', "ldap_domain":"", "use_rdp_gateway": 'true', "rdp_gateway_host":"", "rdp_gateway_credential": -1}}}}' 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 | Режим работы VDI машин проекта. Возможные значения:
|
instance_init_script (Optional) | body | string | Скрипт, закодированный в формате base64. Исполняется при создании всех VDI машин проекта. |
instance_name_pattern (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="
}
}
Получение списка VDI проектов (тенантов).
Запрос¶
Параметры запроса:¶
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 | Режим работы VDI машин проекта. Возможные значения:
|
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 | Режим работы VDI машин проекта. Возможные значения:
|
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"
},
{
"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"
}
]
}
Получение подробной информации о VDI проекте.
Запрос¶
Параметры запроса:¶
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 | Режим работы VDI машин проекта. Возможные значения:
|
instance_init_script (Optional) | body | string | Скрипт, закодированный в формате base64. Исполняется при создании всех VDI машин проекта. |
min_reserve_vm (Optional) | body | integer | Минимальное количество резервных виртуальных машин в проекте. По умолчанию: None. |
instance_name_pattern (Optional) | body | string | Шаблон имен виртуальных машин. |
os_project (Optional) | body | object | Проект OpenStack. |
use_cinder_root (Optional) | body | bool | Расположение корневого диска. Возможные значения:
По умолчанию: |
volume_name_pattern (Optional) | body | string | Шаблон имен дисков. |
volume_type_id (Optional) | body | string | Идентификатор типа диска. |
volume_size (Optional) | body | integer | Размер корневого диска в ГБ. Возможное значение от 0 до 999. Обязателен только при значении true параметра use_cinder_root . |
delete_on_termination (Optional) | body | bool | Флаг для удаления корневого диска при удалении VDI машины. Обязателен только при значении true параметра use_cinder_root . |
protocol_name | body | string | Тип протокола, по которому осуществляется подключение к VDI-сессии. Возможные значения:
|
enabled_for_editing (Optional) | body | bool | Разрешение пользователю управлять настройками протокола. Возможные значения:
|
protocol_settings (Optional) | body | object | Параметры подключения к VDI-сессии. |
protocol_settings.rdp.full_screen (Optional) | protocol_settings.rdp | bool | Полноэкранный режим. Возможные значения:
|
protocol_settings.spice.full_screen (Optional) | protocol_settings.spice | bool | Полноэкранный режим. Возможные значения:
|
protocol_settings.spice.spice_preferred_compression (Optional) | protocol_settings.spice | string | Компрессия изображения. Возможные значения:
Опция поддерживается только для протокола SPICE (значение |
protocol_settings.rdp.multi_monitors (Optional) | protocol_settings.rdp | bool | Использование нескольких мониторов. Возможные значения:
Опция поддерживается только для протокола RDP (значение |
protocol_settings.rdp.use_audio (Optional) | protocol_settings.rdp | bool | Воспроизведение звука. Возможные значения:
|
protocol_settings.spice.use_audio (Optional) | protocol_settings.spice | bool | Воспроизведение звука. Возможные значения:
|
protocol_settings.rdp.use_microphone (Optional) | protocol_settings.rdp | bool | Подключение микрофона. Возможные значения:
Опция поддерживается только для протокола RDP (значение |
protocol_settings.rdp.use_printers (Optional) | protocol_settings.rdp | bool | Поддержка принтеров. Возможные значения:
Опция поддерживается только для протокола RDP (значение |
protocol_settings.rdp.use_smartcards (Optional) | protocol_settings.rdp | bool | Поддержка смарт-карт. Возможные значения:
Опция поддерживается только для протокола RDP (значение |
protocol_settings.spice.spice_smartcard (Optional) | protocol_settings.spice | bool | Поддержка смарт-карт. Возможные значения:
Опция поддерживается только для протокола SPICE (значение |
protocol_settings.rdp.use_local_drives (Optional) | protocol_settings.rdp | bool | Управление общими каталогами. Возможные значения:
|
protocol_settings.spice.use_local_drives (Optional) | protocol_settings.spice | bool | Управление общими каталогами. Возможные значения:
|
protocol_settings.spice.redirect_usb_device (Optional) | protocol_settings | bool | Перенаправление USB-устройств. Возможные значения:
Опция поддерживается только для протокола SPICE (значение |
protocol_settings.rdp.use_clipboard (Optional) | protocol_settings.rdp | bool | Проброс буфера обмена. Возможные значения:
Опция поддерживается только для протокола RDP (значение |
protocol_settings.rdp.ldap_domain (Optional) | protocol_settings.rdp | string | Имя LDAP домена. Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name ). |
protocol_settings.rdp.use_rdp_gateway (Optional) | protocol_settings.rdp | bool | Использовать RDP Шлюз для подключения. Возможные значения:
Опция поддерживается только для протокола RDP (значение |
protocol_settings.rdp.rdp_gateway_host (Optional) | protocol_settings.rdp | string | Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name ). |
protocol_settings.rdp.rdp_gateway_credential (Optional) | protocol_settings.rdp | integer | Метод проверки подлинности шлюза. Возможные значения:
Опция поддерживается только для протокола RDP (значение |
Пример результата в JSON формате:
{
"project": {
"availability_zone": "nova",
"delete_on_termination": null,
"enabled_for_editing": true,
"flavor_id": "666b32ec-9056-4b3d-a274-e3c5025bdb9c",
"id": "5aef920f70eb4592b9572ec7cbb7260a",
"image_id": "d61a767c-f94b-4db2-bb84-3e61ed12d108",
"instance_init_script": null,
"instance_name_pattern": null,
"key_name": null,
"min_reserve_vm": null,
"network_id": "2d636cc8-f99c-4022-8eea-f2bc4000189a",
"operation_mode": "2",
"os_project": {
"availability_zone": "nova",
"description": "Test Project",
"domain_id": "default",
"enabled": true,
"flavor_id": "666b32ec-9056-4b3d-a274-e3c5025bdb9c",
"id": "5aef920f70eb4592b9572ec7cbb7260a",
"image_id": "d61a767c-f94b-4db2-bb84-3e61ed12d108",
"is_domain": false,
"links": {
"self": "http://dev-cnt7q-ovs-02.stand.loc:5000/v3/projects/5aef920f70eb4592b9572ec7cbb7260a"
},
"name": "Last_project",
"network_id": "2d636cc8-f99c-4022-8eea-f2bc4000189a",
"operation_mode": "2",
"parent_id": "default",
"tags": [
"vdi"
]
},
"protocol_name": "rdp",
"protocol_settings": {
"rdp": {
"full_screen": true,
"ldap_domain": "",
"multi_monitors": true,
"rdp_gateway_credential": -1,
"rdp_gateway_host": "",
"use_audio": true,
"use_clipboard": true,
"use_local_drives": true,
"use_microphone": true,
"use_printers": true,
"use_rdp_gateway": false,
"use_smartcards": true
}
},
"use_cinder_root": false,
"volume_name_index": 0,
"volume_name_pattern": null,
"volume_size": null,
"volume_type_id": null
}
Получение шаблона имен VDI машин по умолчанию из конфигурационного файла. Используется при создании VDI проекта.
Параметры запроса:¶
Запрос не имеет параметров.
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" "http://controller:9364/v1/projects/actions/get-instance-name-pattern" | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
instance_name_pattern (Optional) | body | string | Шаблон имен виртуальных машин. |
Пример результата в JSON формате:
{
"instance_name_pattern": "vdi-**"
}
Виртуальные VDI машины¶
Действия с виртуальными VDI машинами.
Создание новой виртуальной машины с типом VDI
.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
name (Optional) | body | string | Имя виртуальной машины. Максимальная длина имени VDI машины не должна превышать 245 символов. |
count (Optional) | body | integer | Количество созданных виртуальных машин. |
description (Optional) | body | string | Описание виртуальной машины. |
users (Optional) | body | array | Пользователи виртуальной VDI машины. |
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 VDI vm"}}' http://controller:9364/v1/servers/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id (Optional) | body | string | Идентификатор асинхронной задачи на создание VDI машины. |
Пример результата в JSON формате:
{
"tasks": [
{
"id": 1,
},
{
"id": 2,
},
],
}
Изменение параметров VDI машины.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
server_id | path | string | Идентификатор виртуальной машины. |
users (Optional) | body | array | Пользователи виртуальной VDI машины. |
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 |
---|---|---|---|
users (Optional) | body | array | Пользователи виртуальной VDI машины. |
groups (Optional) | body | array | Группы пользователей виртуальной машины. |
Пример результата в JSON формате:
{
"server": {
"users": ["d91232fa-14ad-4e41-980a-d82dc9ea3929",
"0972fadc-6f8d-415a-b4cb-d4a0992b2370"],
"groups": ["d57e3c66-69bb-46d3-af75-28c41ed1076f"]
}
}
Получение списка VDI машин.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
project_id (Optional) | body | string | Идентификатор проекта. |
group (Optional) | body | string | Группа пользователей виртуальной машины. |
user (Optional) | body | string | Пользователь виртуальной VDI машины. |
with_os_object (Optional) | path | bool | Параметр, позволяющий расширять ответ объектом os_server , содержащим атрибуты виртуальной машины OpenStack. |
Параметры, поддерживающие модификаторы: project_id
.
Пример запроса:¶
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 | Идентификатор виртуальной машины. |
users (Optional) | body | array | Пользователи виртуальной VDI машины. |
groups (Optional) | body | array | Группы пользователей виртуальной машины. |
os_server (Optional) | body | object | Виртуальная машина OpenStack. |
Пример результата в JSON формате:
{
"servers": [
{
"id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3",
"users": ["0972fadc-6f8d-415a-b4cb-d4a0992b2370"],
"groups": [],
},
{
"id": "0972fadc-6f8d-415a-b4cb-d4a0992b2370",
"users": ["2506940c-22f9-4b81-a865-9aa6e7d7cba3",
"747488c2-5aa6-4d92-a982-e0319bee70e1"],
"groups": ["d91232fa-14ad-4e41-980a-d82dc9ea3929"],
}
]
}
Получение подробной информации о VDI машине.
Запрос¶
Параметры запроса:¶
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 | Идентификатор виртуальной машины. |
users (Optional) | body | array | Пользователи виртуальной VDI машины. |
groups (Optional) | body | array | Группы пользователей виртуальной машины. |
os_server (Optional) | body | object | Виртуальная машина OpenStack. |
Пример результата в JSON формате:
{
"server": {
"groups": [
"4a2fa50aad544c81ae23dfb22a871755"
],
"id": "7ad6183a-817e-47c7-b848-741fdfbecc40",
"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": [
"vdi"
],
"tenant_id": "184e540c7dc74df9ba31df50e1c3daf5",
"updated": "2018-12-17T12:43:06Z",
"user_id": "cf5910a0ff0c43158c82f86a2b974b55"
},
"users": [
"47aa3ba7eb48459bac24c5929f49a3c3"
]
}
}
Пользователи и группы пользователей VDI машин¶
Управление пользователями и группами пользователей VDI машин.
Назначение пользователей VDI машине. Вся информация о назначениях пользователей и их отмене сохраняется в базе данных.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
server_id | path | string | Идентификатор виртуальной машины. |
users | body | array | Пользователи виртуальной VDI машины. |
Пример запроса:¶
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/
Эта операция не имеет содержания ответа.
Назначение групп пользователей VDI машине. Вся информация о назначениях групп и их отмене сохраняется в базе данных.
Запрос¶
Параметры запроса:¶
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/
Эта операция не имеет содержания ответа.
Назначение пользователя VDI машинам. Вся информация о назначениях пользователей и их отмене сохраняется в базе данных.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
user_id | path | string | Идентификатор пользователя. |
servers | body | array | Виртуальные VDI машины пользователя. |
Пример запроса:¶
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/
Эта операция не имеет содержания ответа.
Назначение группы пользователей VDI машинам. Вся информация о назначениях групп и их отмене сохраняется в базе данных.
Запрос¶
Параметры запроса:¶
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/
Эта операция не имеет содержания ответа.
Получение списка пользователей VDI машины.
Запрос¶
Параметры запроса:¶
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"}
]
}
Получение списка групп пользователей VDI машины.
Запрос¶
Параметры запроса:¶
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"}
]
}
Снятие назначения пользователей VDI машинам.
Запрос¶
Параметры запроса:¶
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
Эта операция не имеет содержания ответа.
Снятие назначения групп пользователей VDI машинам.
Запрос¶
Параметры запроса:¶
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-адреса. |
use_default | body | bool | Возможность подключения к VDI машине по выделенному 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", "use_default": false}'
Эта операция не имеет содержания ответа.
Обновление назначения плавающего IP-адреса пользователю.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
user_id | path | string | Идентификатор пользователя. |
floating_ip_id | body | string | Идентификатор плавающего IP-адреса. |
use_default | body | bool | Возможность подключения к VDI машине по выделенному 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": "919dd77e-3657-4daa-afec-6058568c86a9", "use_default": false}'
Эта операция не имеет содержания ответа.
Снятие назначения плавающего 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": "TIONIX.VDIclient 1.4.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": "TIONIX.VDIclient 1.4.0",
"created_at": "2018-10-31T12:59:43"
}
}
VDI broker API¶
Виртуальные VDI машины¶
Интерфейс предоставляет возможность подключения к виртуальной VDI машине.
Примечание
Для аутентификации используется протокол OAuth
. Для получения токена аутентификации необходимо использовать следующую команду:
curl --header "Content-Type: application/json" --request POST --data '{"username":"admin","password":"******", "user_domain_name": "default"}' http://controller:9365/v2/auth/
Получение ID асинхронной задачи получения адреса виртуальной машины для подключения.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
instance_id | body | string | Идентификатор виртуальной машины. |
auth_tenant (Optional) | body | string | Имя проекта, уникальное в рамках домена. |
project_domain_name | body | string | Доменное имя проекта. Обязателен только при указании параметра auth_tenant . |
ip_address (Optional) | body | string | IP-адрес для создания правил группы безопасности виртуальной машины. |
conn_type (Optional) | body | string | Тип подключения. Возможные значения:
|
os (Optional) | body | string | Операционная система клиента. |
client (Optional) | body | string | Информация о клиенте. |
Пример запроса:¶
curl -i -X POST -H "Authorization: Bearer $token" -H "Content-Type: application/json" http://controller:9365/v2/request-vm/ -d '{"instance_id": "0d081d06-edd2-49c9-900a-d87f73935081"}'
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
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/v2/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 | Состояние задачи. |
spice_host (Optional) | body | string | Узел, на котором расположена VDI-сессия. |
spice_port (Optional) | body | integer | Порт, по которому подключена VDI-сессия. |
Пример результата в 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"
}
}
Получение списка доступных виртуальных VDI машин по всем проектам, в которых состоит пользователь.
Запрос¶
Пример запроса:¶
curl -X GET -H "Authorization: Bearer $token" -H "Content-Type: application/json" http://controller:9365/v2/projects-sessions/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id (Optional) | body | string | Идентификатор проекта. |
name (Optional) | body | string | Имя проекта, уникальное в рамках домена. |
servers (Optional) | body | object | Информация о виртуальной VDI машине. |
settings (Optional) | body | object | Параметры, по которым осуществляется подключение к VDI-сессии. |
Пример результата в JSON формате:
{
"projects": [
{
"id": "0475697db93f4354af04df8417061ea2",
"name": "Ubuntu20",
"servers": [],
"settings": {
"enabled_for_editing": true,
"full_screen": true,
"ldap_domain": "",
"multi_monitors": true,
"protocol": "rdp",
"rdp_gateway_credential": -1,
"rdp_gateway_host": "",
"use_audio": true,
"use_clipboard": true,
"use_local_drives": true,
"use_microphone": true,
"use_printers": true,
"use_rdp_gateway": false,
"use_smartcards": false
}
},
{
"id": "42c5c04e56a543fdb07772fa8aa976ee",
"name": "Ubuntu16",
"servers": [],
"settings": {
"enabled_for_editing": true,
"full_screen": true,
"ldap_domain": "",
"multi_monitors": true,
"protocol": "rdp",
"rdp_gateway_credential": -1,
"rdp_gateway_host": "",
"use_audio": true,
"use_clipboard": true,
"use_local_drives": true,
"use_microphone": true,
"use_printers": true,
"use_rdp_gateway": false,
"use_smartcards": false
}
},
{
"id": "5c752bd398964579823c7a0a02c0726b",
"name": "windows7",
"servers": [],
"settings": {
"enabled_for_editing": true,
"full_screen": true,
"ldap_domain": "",
"multi_monitors": true,
"protocol": "rdp",
"rdp_gateway_credential": -1,
"rdp_gateway_host": "",
"use_audio": true,
"use_clipboard": true,
"use_local_drives": true,
"use_microphone": true,
"use_printers": true,
"use_rdp_gateway": false,
"use_smartcards": false
}
}
]
}
В рамках данного запроса осуществляется проверка доступа пользователя к виртуальной VDI машине по протоколу SPICE.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
instance_id | body | string | Идентификатор виртуальной машины. |
Пример запроса:¶
curl -i -X POST -H "Authorization: Bearer $token" -H "Content-Type: application/json" http://controller:9365/v2/validate-spice-connection/ -d '{"instance_id": "4ba10f27-7a16-4166-8728-60beb66b7e7f"}' | python -m json.tool
В случае корректного соединения возвращается код состояния 200 (успешно).
Описание ошибок обращений к VDI server¶
В случае ошибки сервер вернет ответ со статусом HTTP 400, который будет содержать объект error
со следующими параметрами:
code
- код ошибки;message
- краткое описание ошибки;data
- дополнительная информация об ошибке.
Перечень кодов ошибок с описанием¶
Пример ошибки в JSON формате:
{
"error": {
"message": "Quota exceeded for VDI project \"c70379f3-e905-431f-b3b4-d0820e225edf\".",
"code": 12,
"data": {
"project_name": "c70379f3-e905-431f-b3b4-d0820e225edf"
}
}
}
Пароли¶
Управление паролями.
Изменение пароля пользователя.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
username | 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/v2/change-password/ -d '{"username": "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\'"
}