#Обновить статус
POST /v1/infra/servers/:id/refresh
Принудительно опрашивает облачного провайдера, получает актуальный статус и IP сервера, и обновляет запись в базе, если что-то изменилось. Полезно, когда статус в платформе расходится с реальностью — например, после провайдерских работ, зависания в provisioning или ручной остановки виртуальной машины через панель провайдера.
#Параметры
| Параметр | В | Тип | Обяз. | Описание |
|---|---|---|---|---|
id |
path | string (UUID) | да | ID сервера |
Тело запроса пустое.
#Примеры
#curl — личный ключ
curl -X POST -H "X-Api-Key: YOUR_API_KEY" \
https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID/refresh
#curl — OAuth-приложение
curl -X POST -H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID/refresh
#JavaScript — личный ключ
const res = await fetch(
`https://vibecode.bitrix24.tech/v1/infra/servers/${serverId}/refresh`,
{ method: 'POST', headers: { 'X-Api-Key': 'YOUR_API_KEY' } }
)
const { data: status } = await res.json()
console.log(`Актуальный статус: ${status}`)
#JavaScript — OAuth-приложение
await fetch(
`https://vibecode.bitrix24.tech/v1/infra/servers/${serverId}/refresh`,
{
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
}
)
#Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data |
string | Актуальный статус в верхнем регистре: PROVISIONING, RUNNING, SLEEPING, ERROR |
currentState |
object | Снимок состояния — те же поля, что в error.currentState для 422 SERVER_WRONG_STATE: status, blackholeStatus, hasExternalId, lastSeenAt |
availableActions |
string[] | Подмножество ['wake','start','reboot','sleep-now','repair','delete'] — действия, которые имеет смысл вызывать в текущем состоянии |
Поле
data— это строка со статусом для обратной совместимости. Снимок состояния и список действий вынесены в соседние поляcurrentStateиavailableActions. Для полного снимка сервера (IP, политика и т. п.) запросите `GET /v1/infra/servers/:id`.
#Пример ответа
{
"success": true,
"data": "RUNNING",
"currentState": {
"status": "RUNNING",
"blackholeStatus": "CONNECTED",
"hasExternalId": true,
"lastSeenAt": null
},
"availableActions": ["reboot", "sleep-now", "delete"]
}
#Пример ответа при ошибке
404 — сервер не существует:
{
"success": false,
"error": {
"code": "SERVER_NOT_FOUND",
"message": "Server not found"
}
}
#Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 401 | INVALID_API_KEY |
Неверный или просроченный API-ключ |
| 404 | SERVER_NOT_FOUND |
Сервер не существует, удалён или принадлежит другому API-ключу |
| 429 | RATE_LIMIT_EXCEEDED |
Превышен общий лимит запросов платформы |
| 502 | PROVIDER_ERROR |
Облачный провайдер вернул ошибку при опросе виртуальной машины |
Полный список общих ошибок API — Ошибки.
#Известные особенности
- Может переписать статус в базе. Если провайдер сообщает статус, отличный от текущего в базе (например,
stoppedу провайдера приrunningв базе), запись обновляется:running → sleeping,sleeping → running, появляется IP и т. п. Это главный способ «самолечения» записи вerror. - Подводный камень сравнения:
data === 'RUNNING', а неdata.status === 'RUNNING'— полеdataнамеренно сохранено как строка ради обратной совместимости. Снимок состояния и список доступных действий — соседние поляcurrentStateиavailableActions. Это отличается от `GET /v1/infra/servers/:id`, где вся информация внутриdata. - Идемпотентно и безопасно. Частые вызовы не создают записи, не запускают виртуальную машину, не финализируют биллинг. Подходит для ad-hoc сверки. Для циклов опроса готовности лучше подходит `GET /v1/infra/servers/:id` — он даёт полный объект.
- Не сбивает таймер фонового монитора. Если провайдер вернул тот же статус и IP, что уже в базе,
/refreshне обновляетupdatedAt— чтобы не сбить таймер внутреннего монитора, который отсчитывает таймаутыprovisioning(10 минут).
#Смотрите также
- Получить сервер —
GET /v1/infra/servers/:id— полная картина (автоматически дёргает refresh, если статусprovisioning). - Восстановить туннель — если статус
running, ноblackholeStatus: DISCONNECTED. - Запустить сервер — если
/refreshпоказалsleepingнеожиданно.