Files
autotest/DOCS/api-operation-stages.md
T

3.0 KiB
Raw Blame History

Стадии выполнения операции (stages)

Эндпоинт

GET /instanceOperations/{operationUid}

Поле stages

В ответе instanceOperation.stages — массив объектов-стадий. Каждая стадия:

Поле Тип Описание
instanceOperationStageUid UUID UID стадии
stage string Название (напр. "2. Основной процесс")
isSuccessful bool/null true/false/null (ещё не завершена)
dtStart datetime Начало
dtFinish datetime/null Окончание (null — ещё идёт)
duration float Секунды (пересчитывается пока идёт: 729.2)
stageMsg JSON-string/null Детальные логи этапа

Пример

Запрос:

curl -s -H "Authorization: Bearer $TOKEN" -H "User-Agent: Mozilla/5.0" \
  "https://lk-api-gateway-test.ngcloud.ru/api/v1/svc/instanceOperations/{opUid}"

Ответ (фрагмент):

{
  "instanceOperation": {
    "instanceOperationUid": "a955a902-...",
    "operation": "create",
    "isInProgress": false,
    "isSuccessful": true,
    "duration": 27.89,
    "stages": [
      {
        "instanceOperationStageUid": "f88e28c9-...",
        "stage": "1. Валидация",
        "isSuccessful": true,
        "dtStart": "2026-07-24T15:21:57.373+0300",
        "dtFinish": "2026-07-24T15:22:01.804+0300",
        "duration": 4.4,
        "stageMsg": "[[\"Определение ресурсной платформы\",\"...\"],...]"
      },
      {
        "stage": "2. Основной процесс",
        "isSuccessful": true,
        "duration": 14.1,
        "stageMsg": "[[\"Установка сервиса\",\"...\"],...]"
      },
      {
        "stage": "3. Проверки",
        "isSuccessful": true,
        "duration": 0.3
      },
      {
        "stage": "4. Хранилище секретов",
        "isSuccessful": null,
        "dtFinish": null,
        "duration": 729.2
      }
    ]
  }
}

Использование для автотестов

Для отображения прогресса в UI:

  1. Отправить операцию → получить opUid
  2. Поллинг: GET /instanceOperations/{opUid} каждые 2-3 секунды
  3. Пока isInProgress == true — показывать стадии из stages[]
  4. Когда isInProgress == false — проверить isSuccessful

stageMsg содержит JSON-строку с массивом [[заголовок, текст], ...]. Можно распарсить и показать пользователю.

Открытие 2026-07-24

Обнаружено при анализе ответа API во время сессии тестирования dummy-сервиса. Ранее поле stages пропускалось из-за большого размера ответа.