REST API

Примечание

Для получения доступа к REST API необходим токен. Получение токена описано во вкладке с дополнительной информацией.


VDI server API

Предоставляет API для управления виртуальными рабочими столами (VDI).

Информация о модуле

Подробная информация о модуле.

GET
/v1/info
Получение подробной информации о модуле.
Запрос
Пример запроса:
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 проектами.

POST
/v1/projects/
Создание 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 машин проекта. Возможные значения:

  • 1 - Standard/Стандартный;
  • 2 - Simultaneous/Совместный.
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

Расположение корневого диска. Возможные значения:

  • true - корневой диск располагается в системе хранения, управляемой службой Cinder;
  • false - корневой диск располагается на вычислительном узле.

По умолчанию: false.

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-сессии. Возможные значения:

  • rdp;
  • spice.
enabled_for_editing (Optional) body bool

Разрешение пользователю управлять настройками протокола. Возможные значения:

  • true;
  • false.
protocol_settings (Optional) body object

Параметр, отвечающий за передачу опций подключения к VDI-сессии. Возможные значения:

  • rdp - Поддерживаемые параметры для протокола RDP. При указании параметра необходимо указывать полный перечень опций:
    • full_screen;
    • multi_monitors;
    • use_audio;
    • use_microphone;
    • use_printers;
    • use_smartcards;
    • use_local_drives;
    • use_clipboard;
    • ldap_domain;
    • use_rdp_gateway;
    • rdp_gateway_host;
    • rdp_gateway_credential.
  • spice - Поддерживаемые параметры для протокола SPICE. При указании параметра необходимо указывать полный перечень опций:
    • full_screen;
    • spice_preferred_compression;
    • use_audio;
    • spice_smartcard;
    • use_local_drives.
protocol_settings.rdp.full_screen (Optional) protocol_settings.rdp bool

Полноэкранный режим. Возможные значения:

  • true;
  • false.

При указании "multi_monitors":true параметр должен иметь значение true. Это обусловлено их жесткой связью между собой.

protocol_settings.spice.full_screen (Optional) protocol_settings.spice bool

Полноэкранный режим. Возможные значения:

  • true;
  • false.
protocol_settings.spice.spice_preferred_compression (Optional) protocol_settings.spice string

Компрессия изображения. Возможные значения:

  • auto-glz;
  • auto-lz;
  • lz4;
  • off.

Опция поддерживается только для протокола SPICE (значение spice параметра protocol_name).

protocol_settings.rdp.multi_monitors (Optional) protocol_settings.rdp bool

Использование нескольких мониторов. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name). При указании значения true параметр full_screen должен иметь значение true. Это обусловлено их жесткой связью между собой.

protocol_settings.rdp.use_audio (Optional) protocol_settings.rdp bool

Воспроизведение звука. Возможные значения:

  • true;
  • false.

При указании значения false параметр use_microphone должен иметь значение false. Это обусловлено их жесткой связью между собой.

protocol_settings.spice.use_audio (Optional) protocol_settings.spice bool

Воспроизведение звука. Возможные значения:

  • true;
  • false.
protocol_settings.rdp.use_microphone (Optional) protocol_settings.rdp bool

Подключение микрофона. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name). При указании "use_audio":false параметр должен иметь значение false. Это обусловлено их жесткой связью между собой.

protocol_settings.rdp.use_printers (Optional) protocol_settings.rdp bool

Поддержка принтеров. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name).

protocol_settings.rdp.use_smartcards (Optional) protocol_settings.rdp bool

Поддержка смарт-карт. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name).

protocol_settings.spice.spice_smartcard (Optional) protocol_settings.spice bool

Поддержка смарт-карт. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола SPICE (значение spice параметра protocol_name).

protocol_settings.rdp.use_local_drives (Optional) protocol_settings.rdp bool

Управление общими каталогами. Возможные значения:

  • true;
  • false.
protocol_settings.spice.use_local_drives (Optional) protocol_settings.spice bool

Управление общими каталогами. Возможные значения:

  • true;
  • false.
protocol_settings.spice.redirect_usb_device (Optional) protocol_settings bool

Перенаправление USB-устройств. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола SPICE (значение spice параметра protocol_name).

protocol_settings.rdp.use_clipboard (Optional) protocol_settings.rdp bool

Проброс буфера обмена. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name).

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 Шлюз для подключения. Возможные значения:

  • true;
  • false.

При указании значения false параметры rdp_gateway_host и rdp_gateway_credential должны иметь следующие значения:

  • "rdp_gateway_host":"";
  • "rdp_gateway_credential":"-1".

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name).

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

Метод проверки подлинности шлюза. Возможные значения:

  • -1 - не выбран;
  • -0 - запрос пароля (NTLM);
  • 1 - использование смарт-карты.

При указании "use_rdp_gateway"=false параметр должен иметь значение -1. Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name).

Пример запроса:
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",
   }
}
PUT
/v1/projects/{project_id}
Редактирование VDI проекта.

Изменение параметров 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

Расположение корневого диска. Возможные значения:

  • true - корневой диск располагается в системе хранения, управляемой службой Cinder;
  • false - корневой диск располагается на вычислительном узле.

По умолчанию: false.

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-сессии. Возможные значения:

  • rdp;
  • spice.
enabled_for_editing (Optional) body bool

Разрешение пользователю управлять настройками протокола. Возможные значения:

  • true;
  • false.
protocol_settings (Optional) body object

Параметр, отвечающий за передачу опций подключения к VDI-сессии. Возможные значения:

  • rdp - Поддерживаемые параметры для протокола RDP. При указании параметра необходимо указывать полный перечень опций:
    • full_screen;
    • multi_monitors;
    • use_audio;
    • use_microphone;
    • use_printers;
    • use_smartcards;
    • use_local_drives;
    • use_clipboard;
    • ldap_domain;
    • use_rdp_gateway;
    • rdp_gateway_host;
    • rdp_gateway_credential.
  • spice - Поддерживаемые параметры для протокола SPICE. При указании параметра необходимо указывать полный перечень опций:
    • full_screen;
    • spice_preferred_compression;
    • use_audio;
    • spice_smartcard;
    • use_local_drives.
protocol_settings.rdp.full_screen (Optional) protocol_settings.rdp bool

Полноэкранный режим. Возможные значения:

  • true;
  • false.

При указании "multi_monitors":true параметр должен иметь значение true. Это обусловлено их жесткой связью между собой.

protocol_settings.spice.full_screen (Optional) protocol_settings.spice bool

Полноэкранный режим. Возможные значения:

  • true;
  • false.
protocol_settings.spice.spice_preferred_compression (Optional) protocol_settings.spice string

Компрессия изображения. Возможные значения:

  • auto-glz;
  • auto-lz;
  • lz4;
  • off.

Опция поддерживается только для протокола SPICE (значение spice параметра protocol_name).

protocol_settings.rdp.multi_monitors (Optional) protocol_settings.rdp bool

Использование нескольких мониторов. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name). При указании значения true параметр full_screen должен иметь значение true. Это обусловлено их жесткой связью между собой.

protocol_settings.rdp.use_audio (Optional) protocol_settings.rdp bool

Воспроизведение звука. Возможные значения:

  • true;
  • false.

При указании значения false параметр use_microphone должен иметь значение false. Это обусловлено их жесткой связью между собой.

protocol_settings.spice.use_audio (Optional) protocol_settings.spice bool

Воспроизведение звука. Возможные значения:

  • true;
  • false.
protocol_settings.rdp.use_microphone (Optional) protocol_settings.rdp bool

Подключение микрофона. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name). При указании "use_audio":false параметр должен иметь значение false. Это обусловлено их жесткой связью между собой.

protocol_settings.rdp.use_printers (Optional) protocol_settings.rdp bool

Поддержка принтеров. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name).

protocol_settings.rdp.use_smartcards (Optional) protocol_settings.rdp bool

Поддержка смарт-карт. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name).

protocol_settings.spice.spice_smartcard (Optional) protocol_settings.spice bool

Поддержка смарт-карт. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола SPICE (значение spice параметра protocol_name).

protocol_settings.rdp.use_local_drives (Optional) protocol_settings.rdp bool

Управление общими каталогами. Возможные значения:

  • true;
  • false.
protocol_settings.spice.use_local_drives (Optional) protocol_settings.spice bool

Управление общими каталогами. Возможные значения:

  • true;
  • false.
protocol_settings.spice.redirect_usb_device (Optional) protocol_settings bool

Перенаправление USB-устройств. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола SPICE (значение spice параметра protocol_name).

protocol_settings.rdp.use_clipboard (Optional) protocol_settings.rdp bool

Проброс буфера обмена. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name).

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 Шлюз для подключения. Возможные значения:

  • true;
  • false.

При указании значения false параметры rdp_gateway_host и rdp_gateway_credential должны иметь следующие значения:

  • "rdp_gateway_host":"";
  • "rdp_gateway_credential":"-1".

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name).

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

Метод проверки подлинности шлюза. Возможные значения:

  • -1 - не выбран;
  • -0 - запрос пароля (NTLM);
  • 1 - использование смарт-карты.

При указании "use_rdp_gateway"=false параметр должен иметь значение -1. Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name).

Пример запроса:
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 машин проекта. Возможные значения:

  • 1 - Standard/Стандартный;
  • 2 - Simultaneous/Совместный.
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="
   }
}
GET
/v1/projects/
Получение списка VDI проектов.

Получение списка 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 машин проекта. Возможные значения:

  • 1 - Standard/Стандартный;
  • 2 - Simultaneous/Совместный.
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 машин проекта. Возможные значения:

  • 1 - Standard/Стандартный;
  • 2 - Simultaneous/Совместный.
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"
        }
    ]
}
GET
/v1/projects/{project_id}
Получение подробной информации о VDI проекте.

Получение подробной информации о 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 машин проекта. Возможные значения:

  • 1 - Standard/Стандартный;
  • 2 - Simultaneous/Совместный.
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

Расположение корневого диска. Возможные значения:

  • true - корневой диск располагается в системе хранения, управляемой службой Cinder;
  • false - корневой диск располагается на вычислительном узле.

По умолчанию: false.

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-сессии. Возможные значения:

  • rdp;
  • spice.
enabled_for_editing (Optional) body bool

Разрешение пользователю управлять настройками протокола. Возможные значения:

  • true;
  • false.
protocol_settings (Optional) body object Параметры подключения к VDI-сессии.
protocol_settings.rdp.full_screen (Optional) protocol_settings.rdp bool

Полноэкранный режим. Возможные значения:

  • true;
  • false.
protocol_settings.spice.full_screen (Optional) protocol_settings.spice bool

Полноэкранный режим. Возможные значения:

  • true;
  • false.
protocol_settings.spice.spice_preferred_compression (Optional) protocol_settings.spice string

Компрессия изображения. Возможные значения:

  • auto-glz;
  • auto-lz;
  • lz4;
  • off.

Опция поддерживается только для протокола SPICE (значение spice параметра protocol_name).

protocol_settings.rdp.multi_monitors (Optional) protocol_settings.rdp bool

Использование нескольких мониторов. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name).

protocol_settings.rdp.use_audio (Optional) protocol_settings.rdp bool

Воспроизведение звука. Возможные значения:

  • true;
  • false.
protocol_settings.spice.use_audio (Optional) protocol_settings.spice bool

Воспроизведение звука. Возможные значения:

  • true;
  • false.
protocol_settings.rdp.use_microphone (Optional) protocol_settings.rdp bool

Подключение микрофона. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name).

protocol_settings.rdp.use_printers (Optional) protocol_settings.rdp bool

Поддержка принтеров. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name).

protocol_settings.rdp.use_smartcards (Optional) protocol_settings.rdp bool

Поддержка смарт-карт. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name).

protocol_settings.spice.spice_smartcard (Optional) protocol_settings.spice bool

Поддержка смарт-карт. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола SPICE (значение spice параметра protocol_name).

protocol_settings.rdp.use_local_drives (Optional) protocol_settings.rdp bool

Управление общими каталогами. Возможные значения:

  • true;
  • false.
protocol_settings.spice.use_local_drives (Optional) protocol_settings.spice bool

Управление общими каталогами. Возможные значения:

  • true;
  • false.
protocol_settings.spice.redirect_usb_device (Optional) protocol_settings bool

Перенаправление USB-устройств. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола SPICE (значение spice параметра protocol_name).

protocol_settings.rdp.use_clipboard (Optional) protocol_settings.rdp bool

Проброс буфера обмена. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name).

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 Шлюз для подключения. Возможные значения:

  • true;
  • false.

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name).

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

Метод проверки подлинности шлюза. Возможные значения:

  • -1 - не выбран;
  • -0 - запрос пароля (NTLM);
  • 1 - использование смарт-карты.

Опция поддерживается только для протокола RDP (значение rdp параметра protocol_name).

Пример результата в 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
}
GET
/v1/projects/actions/get-instance-name-pattern
Получение шаблона имен VDI машин.

Получение шаблона имен 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 машинами.

POST
/v1/servers/
Создание 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,
        },
    ],
}
PUT
/v1/servers/{server_id}
Редактирование VDI машины.

Изменение параметров 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"]
    }
}
GET
/v1/servers/
Получение списка VDI машин.

Получение списка 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"],
        }
    ]
}
GET
/v1/servers/{server_id}
Получение подробной информации о VDI машине.

Получение подробной информации о 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 машин.

POST
/v1/servers/{server_id}/users/
Назначение пользователей 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/

Эта операция не имеет содержания ответа.

POST
/v1/servers/{server_id}/groups/
Назначение групп пользователей VDI машине.

Назначение групп пользователей 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/

Эта операция не имеет содержания ответа.

POST
/v1/users/{user_id}/servers/
Назначение пользователя VDI машинам.

Назначение пользователя 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/

Эта операция не имеет содержания ответа.

POST
/v1/groups/{group_id}/servers/
Назначение группы пользователей VDI машинам.

Назначение группы пользователей 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/

Эта операция не имеет содержания ответа.

GET
/v1/servers/{server_id}/users/
Получение списка пользователей VDI машины.

Получение списка пользователей 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"}
             ]
}
GET
/v1/servers/{server_id}/groups/
Получение списка групп пользователей VDI машины.

Получение списка групп пользователей 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"}
             ]
}
DELETE
/v1/servers/{server_id}/users/
Снятие назначения пользователей VDI машинам.

Снятие назначения пользователей 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

Эта операция не имеет содержания ответа.

DELETE
/v1/servers/{server_id}/groups/
Снятие назначения групп пользователей VDI машины.

Снятие назначения групп пользователей 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-адресами.

GET
/v1/users/
Получение списка пользователей с назначенным плавающим 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"
        }
    ]
}
GET
/v1/users/{user_id}
Получение пользователя с назначенным плавающим IP-адресом.

Получение пользователя, на которого назначен плавающий 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"
        }
    ]
}
POST
/v1/users/{user_id}/floating-ip
Назначение плавающего IP-адреса пользователю.

Назначение плавающего IP-адреса пользователю.

Запрос
Параметры запроса:
Name In Type Description
user_id path string Идентификатор пользователя.
floating_ip_id body string Идентификатор плавающего IP-адреса.
use_default body bool

Возможность подключения к VDI машине по выделенному IP-адресу. Возможные значения:

  • true - для подключения к машине используется выделенный IP-адрес;
  • false - подключение осуществляется без использования выделенного IP-адреса.

По умолчанию: false.

Пример запроса:
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}'

Эта операция не имеет содержания ответа.

PUT
/v1/users/{user_id}/floating-ip
Обновление назначения плавающего IP-адреса пользователю.

Обновление назначения плавающего IP-адреса пользователю.

Запрос
Параметры запроса:
Name In Type Description
user_id path string Идентификатор пользователя.
floating_ip_id body string Идентификатор плавающего IP-адреса.
use_default body bool

Возможность подключения к VDI машине по выделенному IP-адресу. Возможные значения:

  • true - для подключения к машине используется выделенный IP-адрес;
  • false - подключение осуществляется без использования выделенного IP-адреса.

По умолчанию: false.

Пример запроса:
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}'

Эта операция не имеет содержания ответа.

DELETE
/v1/users/{user_id}/floating-ip
Снятие назначения плавающего IP-адреса пользователю.

Снятие назначения плавающего 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

Эта операция не имеет содержания ответа.

Сессии

Действия с сессиями.

GET
/v1/sessions/
Получение списка сессий.

Получение списка сессий.

Запрос
Параметры запроса:
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

Тип подключения. Возможные значения:

  • web - подключение через веб клиент;
  • dashboard - подключение через панель управления TIONIX.Dashboard;
  • client - подключение через приложение TIONIX.VDIclient.
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

Тип подключения. Возможные значения:

  • web - подключение через веб клиент;
  • dashboard - подключение через панель управления TIONIX.Dashboard;
  • client - подключение через приложение TIONIX.VDIclient.
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"
        }
    ]
}
GET
/v1/sessions/count
Получение количества сессий.

Получение количества сессий.

Запрос
Параметры запроса:
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

Тип подключения. Возможные значения:

  • web - подключение через веб клиент;
  • dashboard - подключение через панель управления TIONIX.Dashboard;
  • client - подключение через приложение TIONIX.VDIclient.
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
}
POST
/v1/sessions/
Добавление сессии.

Добавление новой сессии.

Запрос
Параметры запроса:
Name In Type Description
conn_type (Optional) body string

Тип подключения. Возможные значения:

  • web - подключение через веб клиент;
  • dashboard - подключение через панель управления TIONIX.Dashboard;
  • client - подключение через приложение TIONIX.VDIclient.
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

Тип подключения. Возможные значения:

  • web - подключение через веб клиент;
  • dashboard - подключение через панель управления TIONIX.Dashboard;
  • client - подключение через приложение TIONIX.VDIclient.
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/
POST
/v2/request-vm/
Получение ID задачи получения виртуальной VDI машины.

Получение 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

Тип подключения. Возможные значения:

  • web - подключение через веб клиент;
  • dashboard - подключение через панель управления TIONIX.Dashboard;
  • client - подключение через приложение TIONIX.VDIclient.
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"
}
POST
/v2/get-vm/
Получение IP-адреса виртуальной VDI машины по ID задачи.

Получение 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"
    }
}
GET
/v2/projects-sessions/
Получение списка виртуальных VDI машин в разрезе проектов.

Получение списка доступных виртуальных 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
            }
        }
    ]
}
POST
/v2/validate-spice-connection/
Проверка соединения к виртуальной VDI машине по протоколу SPICE.

В рамках данного запроса осуществляется проверка доступа пользователя к виртуальной 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"
        }
    }
}

Пароли

Управление паролями.

POST
/v2/change-password/
Изменение пароля пользователя.

Изменение пароля пользователя.

Запрос
Параметры запроса:
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\'"
}

Подробное описание кодов ответа на запросы доступно во вкладке с дополнительной информацией.