13.5.12 Рабочее пространство
Методы
vspace-create
Метод создания рабочего пространства (виртуальный рабочий стол может существовать только в рамках одного рабочего пространства). Для vSpace с provision_type: floating lifecycle_policy указывать не требуется, этот параметр устанавливается автоматически.
Запрос:
{
"jsonrpc": "2.0",
"method": "vspace-create",
"params": {
"name": "Test Creation",
"description": "test",
// 'qpoints_usage_pool' — опциональный параметр
// Квота на запуск десктопов
// Null — отсутсвие квоты
"qpoints_usage_pool": 25,
// 'qpoints_pool' — опциональный параметр
// Квота на создание десктопов
// Null — отсутсвие квоты
"qpoints_pool": 30,
// `default_protocol_id` — опциональный параметр
// Протокол по умолчанию
"default_protocol_id": 1,
// `deploy_type` — опциональный параметр (по дефолту 'automated') возможные значения "automated" | "manual"
"deploy_type": "automated",
// `provision_type` — опциональный параметр (по дефолту 'persistent') возможные значения "persistent" | "floating"
"provision_type": "persistent",
// `inactive_timeout_secs` — опциональный параметр
"inactive_timeout_secs": 30,
// `lifecycle_policy` — опциональный параметр
"lifecycle_policy": {
"session_event": "logoff",
"action": "shutdown", // none | shutdown
"action_arg": null //
}
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": {
"created_ts": 1737963660,
"creator_provider": "local",
"creator_username": "test_user",
"default_protocol_id": 1,
"description": "test",
"id": 8,
"modified_ts": 1737963660,
"name": "Test Creation",
"qpoints_current": 0,
"qpoints_usage_current": 0,
"qpoints_usage_pool": 25,
"inactive_timeout": {
"nanos": 0,
"secs": 300
},
"lifecycle_policies": [
{
"action": "shutdown",
"action_arg": null,
"session_event": "logoff"
}
],
"provision_type": "persistent",
"standby_count": 0
}
}
}
vspace-delete
Метод удаления рабочего пространства. Не должно быть созданных виртуальных рабочих столов на момент удаления, иначе будет ошибка.
Запрос:
{
"jsonrpc": "2.0",
"method": "vspace-delete",
"params": {
"id": 1
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"message": "vSpace ID 1 deleted"
}
}
vspace-connect
Метод получения информации для подключения к удалённому рабочему столу для Automated-Floating vSpace.
Протокол выбирается автоматически при отсутсвии параметра protocol_id. Параметры, влияющие на выбор протокола:
-
ПРИОРИТЕТ-1Шаблон может иметь параметрdefault_protocol_id— значение id протокола по умолчанию для виртуальных столов, созданных из этого шаблона. -
ПРИОРИТЕТ-2Рабочее пространство может иметь параметрdefault_protocol_id— значение id протокола по умолчанию для виртуальных столов, созданных внутри пространства. -
ПРИОРИТЕТ-3Виртуальный стол может иметь параметрdefault_protocol_id— значение id протокола по умолчанию для этого виртуального стола.
Будет выбран протокол, значение которого содержится в параметре объекта с самым высоким приоритетом. Например, если для шаблона задан протокол по умолчанию с id=1, а в рамках рабочего пространства выбран протокол с id=2, то будет выбран протокол с id=2. Для изменения этих параметров используйте методы vspace-set и desktop-set. Наследуемый протокол по умолчанию из шаблон не может быть изменён для уже созданного виртуального стола.
Параметр client_os может быть указан для формирования корректного URL учитывая особенности подключения пользователя на разных ОС.
Например, при использовании протокола RDP на MacOS поле url в ответе метода будет преобразовано в читаемый формат для успешного запуска Windows App на системе пользователя.
Возможные значения client_os:
windows;linux;macos;android;ios.
Запрос:
{
"jsonrpc": "2.0",
"method": "vspace-connect",
"params": {
"id": 25,
// Опционально
"protocol_id": 1,
// Опционально
"client_os": "macos",
// Использовать SSO аутентификацию (требуется агент на десктопе)
"use_sso": true
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ с использованием SSO:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": {
"ip": "10.78.24.25:3389",
"url": "rdp://10.78.24.25:3389/?data=UkhSMQEYNi%2FIDmxE1x0ECrz2ljbYjZVDJ77OQrAPFAAAAAAAAAA6AAAAAAAAAEATtl52hanbgnmsrBI87RuSWsSUi0L17SXkruUiiDGbwa%2FLOUavOnaKryPQPpymUKMMjVaab%2FTyxYQHp%2FCfN8Uke4YW0xa%2FSDsgHZvjMIqTIg%3D%3D",
"sso": {
"username": "test",
"password": "secret"
},
"protocol_id": 1,
"desktop_id": 25
}
}
}
vspace-set
Метод установки новых значений полей name,description и default_protocol_id для рабочего пространства.
Запрос:
{
"jsonrpc": "2.0",
"method": "vspace-set",
"params": {
"id": 3,
"name": "test set", // Optional
"description": "test set", // Optional
"default_protocol_id": 1, // Optional
"inactive_timeout_secs": 30, // Optional
"lifecycle_policy": { // Optional
"session_event": "logoff",
"action": "none", // none | shutdown
"action_arg": null
},
"standby_count": 10
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"message": "vSpace ID 3 updated"
}
}
vspace-set-quota
Метод изменения квот для рабочего пространства. Полe qpoints_usage_pool следует явно указать null в параметрах запроса для отключения квоты.
Запрос:
{
"jsonrpc": "2.0",
"method": "vspace-set-quota",
"params": {
"id": 3,
"qpoints_usage_pool": 4
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"message": "vSpace ID 3 quotas updated"
}
}
vspace-list
Список рабочих пространств.
Запрос:
{
"jsonrpc": "2.0",
"method": "vspace-list",
"params": {
"objective": 1
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": {
"1": {
"created_ts": 1737032404,
"creator_provider": "local",
"creator_username": "test_user",
"description": "Initial vspace for development",
"deploy_type": "automated",
"id": 1,
"default_protocol_id": 1
"modified_ts": 1737032404,
"name": "z.dev",
// Текущая общая сумма квоты созданных десктопов
"qpoints_current": 0,
// Текущая общая сумма квоты десктопов на использование
"qpoints_usage_current": 0,
// Квота на использование
"qpoints_usage_pool": null,
"inactive_timeout": {
"nanos": 0,
"secs": 300
},
"lifecycle_policies": [
{
"action": "shutdown",
"action_arg": null,
"session_event": "logoff"
}
],
"provision_type": "persistent",
"standby_count": 0
},
...
}
}
}
vspace-get
Информация по одному рабочему пространству.
Запрос:
{
"jsonrpc": "2.0",
"method": "vspace-get",
"params": {
"id": 1
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": {
"created_ts": 1737032404,
"creator_provider": "local",
"creator_username": "test_user",
"description": "Initial vspace for development",
"default_protocol_id": 1,
"deploy_type": "automated",
"id": 1,
"modified_ts": 1737032404,
"name": "z.dev",
// Текущая общая сумма квоты созданных десктопов
"qpoints_current": 0,
// Текущая общая сумма квоты десктопов наиспользование
"qpoints_usage_current": 0,
// Квота на использование
"qpoints_usage_pool": null,
"inactive_timeout": {
"nanos": 0,
"secs": 300
},
"lifecycle_policies": [
{
"action": "shutdown",
"action_arg": null,
"session_event": "logoff"
}
],
"provision_type": "persistent",
"standby_count": 0
}
}
}
vspace-templates
Список шаблонов, назначенных для этого рабочего пространства, используются для создания виртуальных рабочих столов.
Запрос:
{
"jsonrpc": "2.0",
"method": "vspace-templates",
"params": {
"id": 1
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": {
"2": {
"id": 2,
"name": "test.templates.gi.q7",
"os_profile": 3062,
"os_type": 7,
"default_protocol_id": null,
"templates": {
"cluster_id": "44a839bc-6b25-4b77-a277-1b749b617c79",
"cpus": 4,
"disks": [
{
"label": "test.templates.gi.q7",
"sector_size": {
"logical": 512,
"physical": 4096
},
"size": 19327352832,
"slot": 1
}
],
"guest": {
"boot_cmds": [],
"resolver": {
"name_server": [
"8.8.8.8",
"8.8.4.4",
"1.1.1.1"
],
"search": "nsa.gov"
},
"run_cmds": []
},
"network_ports": [
{
"ratelimit_mbits": 0
}
],
"pool_selector": "0",
"ram": 4294967296,
"protocols": [
{
"additional_info": {},
"created_ts": 1740321088,
"default_port": 3389,
"id": 1,
"name": "rdp"
}
]
}
},
"20": {
"id": 20,
"name": "ubuntu.22.04.4.v0.loudplay.gi.q7",
"os_profile": 4002,
"os_type": 6,
"default_protocol_id": 1,
"template": {
"cluster_id": "44a839bc-6b25-4b77-a277-1b749b617c79",
"cpus": 4,
"disks": [
{
"label": "ubuntu.22.04.4.v0.gi.q7",
"sector_size": {
"logical": 512,
"physical": 4096
},
"size": 19327352832,
"slot": 1
}
],
"guest": {
"boot_cmds": [],
"resolver": {
"name_server": [
"8.8.8.8",
"8.8.4.4",
"1.1.1.1"
],
"search": "nsa.gov"
},
"run_cmds": [
"apt -y update && apt -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' -y upgrade",
"curl http://10.78.25.87:8000/LoudPlay-client-1.18.0-ubuntu-22.04.deb -o LoudPlay-client-1.18.0-ubuntu-22.04.deb"
]
},
"network_ports": [
{
"ratelimit_mbits": 0
}
],
"pool_selector": "0",
"ram": 4294967296,
"protocols": [
{
"additional_info": {},
"created_ts": 1740321088,
"default_port": 3389,
"id": 1,
"name": "rdp"
}
]
}
}
}
}
}
vspace-template-assign
Назначение существующих шаблонов в рабочее пространство для последующего создания виртуальных рабочих столов.
Запрос:
{
"jsonrpc": "2.0",
"method": "vspace-template-assign",
"params": {
"id": 2,
"templates": [10, 11]
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"message": "Assigned to vSpace ID 2"
}
}
vspace-template-deassign
Удаление назначения шаблонов из рабочего пространства.
Запрос:
{
"jsonrpc": "2.0",
"method": "vspace-template-deassign",
"params": {
"id": 2,
"templates": [10, 11]
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"message": "Dessigned from vSpace ID 2"
}
}
vspace-roles
Метод отображения списка пользователей и групп Active Directory, которые имеют доступ к данному рабочему пространству исходя из их области видимости ролей.
При указании objective возможен альтернативный вид списка.
Запрос:
{
"jsonrpc": "2.0",
"method": "vspace-roles",
"params": {
"id": 1
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": {
"groups": [
{
"group_id": "612c02c3-5f8f-4d2b-847e-6d2af7184ff3",
"roles": [
{
"attrs": {},
"id": 1,
"granted_ts": 1744213700,
"name": "VDI Master"
}
]
}
],
"users": [
{
"provider": "local",
"roles": [
{
"attrs": {},
"id": 1,
"granted_ts": 1744213700,
"name": "VDI Master"
},
{
"attrs": {},
"created_ts": 1744213890,
"creator_provider": "local",
"creator_username": "test_user",
"id": 10000,
"modified_ts": 1744215225,
"granted_ts": 1744213700,
"name": "Custom Role",
"username": "test_user"
}
],
"username": "test_user"
}
]
}
}
}
C objective:
Запрос:
{
"jsonrpc": "2.0",
"method": "vspace-roles",
"params": {
"id": 1,
"objective": 1
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": {
"groups": {
"612c02c3-5f8f-4d2b-847e-6d2af7184ff3": [
{
"attrs": {},
"granted_ts": 1744213700,
"id": 1,
"name": "VDI Master"
}
]
},
"users": {
"local": {
"test_user": [
{
"attrs": {},
"granted_ts": 1744213700,
"id": 1,
"name": "VDI Master"
}
]
}
}
}
}
}