13.5.11 VDI agent
Методы
agent-info-get
Метод получения информации об актуальной версии агента гостевой ОС и источников, откуда можно скачать бинарные файлы.
Запрос:
{
"jsonrpc": "2.0",
"method": "agent-info-get",
"id": "20e97ea9-4310-4a18-a621-9a425644d001"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "20e97ea9-4310-4a18-a621-9a425644d001",
"result": {
"code": 1,
"data": {
"linux_x86_64_release_sources": [
"http://198.18.2.6/agent/releases/latest/linux_x86_64/vstack_agent"
],
"version": "1.0.0-dev.1.test.6",
"win_x86_64_release_sources": [
"http://198.18.2.6/agent/releases/latest/win_x86_64/vstack_agent.exe"
]
}
}
}
agent-info-set
Метод изменения информации об актуальной версии агента гостевой ОС и источников, откуда можно скачать бинарные файлы.
Все параметры являются опциональными, но обязательно должен быть указан хотя бы один из параметров. linux_x86_64_release_sources и win_x86_64_release_sources должны содержать внутри ссылки на источники.
Запрос:
{
"jsonrpc": "2.0",
"method": "agent-info-set",
"params": {
"linux_x86_64_release_sources": [
"http://198.18.2.6/agent/releases/latest/linux_x86_64/vstack_agent"
],
"version": "1.0.0-dev.1.test.6",
"win_x86_64_release_sources": [
"http://198.18.2.6/agent/releases/latest/win_x86_64/vstack_agent.exe"
]
},
"id": "b34457ea-6221-4ad8-bd68-1f23a6ae1fd8"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "b34457ea-6221-4ad8-bd68-1f23a6ae1fd8",
"result": {
"code": 1,
"message": "Updated"
}
}
desktop-agent-get
Метод для получения информации об агенте, установленном внутри гостевой ОС, виртуального рабочего стола.
Параметры запроса:
id— идентификатор виртуального рабочего стола.
Параметры ответа:
bootstrap_completed—true, если агент успешно прошёл фазу регистрации в брокере в текущем запуске;status->id— идентификатор статуса агента;status->context— может содержать текстовое сообщение относительно последнего статуса (например, текст ошибки при статусеStarting Failed);status->modified— время последнего изменения статуса;version— версия агента.
Запрос:
{
"jsonrpc": "2.0",
"method": "desktop-agent-get",
"params": {
"id": 567
},
"id": "a440a390-5d90-479f-aa4d-2e4c4398d153"
}
Успешный ответ (агент был запущен):
{
"jsonrpc": "2.0",
"id": "a440a390-5d90-479f-aa4d-2e4c4398d153",
"result": {
"code": 1,
"data": {
"bootstrap_completed": true,
"status": {
"context": null,
"id": 3,
"modified": 1755172746
},
"version": "1.0.0"
}
}
}
Успешный ответ (агент не был запущен):
{
"jsonrpc": "2.0",
"id": "a440a390-5d90-479f-aa4d-2e4c4398d153",
"result": {
"code": 1,
"data": {},
"message": "vStack Agent is offline. Please start the desktop or wait a moment"
}
}
desktop-agent-statuses
Метод для получения списка статусов агента на конкретном виртуальном столе.
Параметры запроса:
id— идентификатор виртуального рабочего стола.
Запрос:
{
"jsonrpc": "2.0",
"method": "desktop-agent-statuses",
"params": {
"id": 567
},
"id": "a440a390-5d90-479f-aa4d-2e4c4398d153"
}
Успешный ответ (агент был запущен):
{
"jsonrpc": "2.0",
"id": "a440a390-5d90-479f-aa4d-2e4c4398d153",
"result": {
"code": 1,
"data": {
"1": "Starting",
"101": "Start Failed",
"102": "Update Failed",
"2": "Updating",
"3": "Ready"
}
}
}
Успешный ответ (агент не был запущен):
{
"jsonrpc": "2.0",
"id": "a440a390-5d90-479f-aa4d-2e4c4398d153",
"result": {
"code": 1,
"data": {},
"message": "vStack Agent is offline. Please start the desktop or wait a moment"
}
}
desktop-agent-sessions-state
Метод получения информации об актуальных сессиях на десктопе, тайм-ауте бездействия, ограничений протоколов, действий при завершении сессии:
`sessions`: {
"1570": { // id сессии
"id": 1570, // id сессии
"last_active": "2025-09-25T10:13:24.466424534Z", // время последней активности со статусом сессии: изменялся `locked` или сессия создана, нужен для того, чтобы рассчитать, через сколько десктоп выключится
"locked": false, // активная сессия или залоченная, Locked = true говорит о том, что соединение с сессией было разорвано или экран на десктопе заблокировали, нужно для `inactive_timeout`
"protocol": "RDP" // Название протокола, через которое клиент подключился
}
}
"inactive_timeout": { // Время, через которое десктоп выключится при определённых обстоятельствах
"nanos": 0,
"secs": 300
},
"max_per_protocol": { // Информативное поле, отображающее, сколько клиентов может быть подключено через определённый протокол
"RDP": 2
},
Принцип работы inactive_timeout:
inactive_timeout должен выключить десктоп, но при соблюдении нескольких условий:
- Отсчет времени идёт для каждой сессии отдельно, как только она стала "locked": true.
- После указанного времени сессия будет удалена и если сессий больше нет — десктоп выключится, иначе просто эта сессия удалится.
Запрос:
{
"jsonrpc": "2.0",
"method": "desktop-agent-sessions-state",
"params": {
"id": 5421
},
"id": "80017342-21a9-4eca-8529-774ccbe845a0"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "80017342-21a9-4eca-8529-774ccbe845a0",
"result": {
"code": 1,
"data": {
"state": {
"inactive_timeout": {
"nanos": 0,
"secs": 300
},
"max_per_protocol": {
"RDP": 2
},
"on_logoff_action": "shutdown",
"sessions": {
"1570": {
"id": 1570,
"last_active": "2025-09-25T10:13:24.466424534Z",
"locked": false,
"protocol": "RDP"
}
}
}
}
}
}