Работа с операциями
Каждая мутабельная операция (изменяющая состояние компонента), автоматически создает объект Operation. Этот объект содержит информацию об операции: статус, ID, время вызова и другую.
Используя данные объекта Operation, возможно:
- Просматривать список операций, которые были выполнены над заданным компонентом.
- Отслеживать статус операций, которые занимают неопределенное время — например, создание БД или подключение диска.
- Выполнять отмену операции.
Формат объекта Operation
- createdAt —
string
— дата создания операции; - createdBy —
string
— идентификатор пользователя, создавшего операцию; - errorData —
errhub.ErrorResponse{...}
— объект с деталями ошибок выполнения операции; - errorMessage —
string
— текст ошибки; - operationID —
string
— идентификатор операции; - serviceID —
string
— идентификатор сервиса; - status —
string
— статус операции (succeed, running, error); - type —
string
— тип операции (creating, updating, deleting); - updatedAt —
string
— дата последнего изменения операции.
Обеспечение уникального идентификатора операции
При выполнении мутабельной операции через API необходимо передавать в заголовках запроса ключ идемпотентности — тогда при многократном вызове этой операции будет возвращаться один и тот же результат. То есть, если повторно отправить запрос c тем же Idempotency-Key
, то сервер:
- не будет выполнять операцию повторно;
- вернет объект Operation — в нем будет содержаться информация об операции, которая была вызвана при изначальном запросе.
Ключ идемпотентности можно сгенерировать сторонними библиотеками или c помощью онлайн-сервиса, например https://www.uuidgenerator.net/version4.