Состояния процесса установки продуктового слоя (product_layer)

Описание

Виртуальная сущность для управления разворотом и обновлением продуктового слоя в домене.

Не хранится в БД. Выстраивается всякий раз при обращении на основе значения поля domain.settings.product_layer, устанавливаемого автоматически по результатам установки продуктового слоя.

Предоставляет доступ к информации об итогах последней операции установки продуктового слоя. Если состояние не финальное, то коллекция содержит также предыдущие состояния. Если состояние финальное, то коллекция возможно содержит попытку установки, отклоненную сервисом.

Для инициации новой установки (или переустановки), необходимо создать сущность с полями `prefix` и `mode`. После предварительной проверки условий последовательность смены состояний будет следующая: `async` → `queued` → `inprogress` → (`installed` | `failure` | `error`).

Сущность представляет собой факт смены состояния процессом установки. Не имеет классического идентификатора, и различаются по состояниям (`state`), типам (`kind`), и порядковым номерам (`order`) по увеличению времени, прошедшего с моменты смены состояния.

Не исключается ручная установка продуктового слоя. В этом случае результат не будет отражен в рамках коллекции `product_layer`.

Поля

Структура сущности
{
  "prefix": str,
  "mode": str,
  "file": str,
  "site": str,
  "status": str,
  "dt": str,
  "trace": str,
  "md5": str,
  "kind": str,
  "order": int
}
Table 1. Поля
Спецификация Описание

Поле: operation
Режим: in
Тип: str
По умолчанию: В мультиоперации: 'update', в конкретном домене: 'install'

Заказываемая операция. Возможные варианты:

  • install - установка продуктового слоя.

  • update - обновление продуктового слоя (выполняется только в случае, если ранее уже была установлена система. Сравнения версий не производится - очищаются метаданные установленного пакета, и создаются метаданные нового пакета. Если в прошлой и новой версиях структура полей классов не претерпевает изменений, либо изменяется только состав полей, но не их типы и свойства, то данные в коллекции класса сохраняются.

  • delete - удаление продуктового слоя. Данные в коллекциях продуктового слоя остаются на месте. При повторной установке данные подцепляются.

  • clear - удаление продуктового слоя. Данные в коллекциях продуктового слоя очищаются.

Поле: prefix
Режим: in
Тип: str
По умолчанию: required

Префикс имени файла-архива с продуктовым слоем, доступного через /rest/v1/fs/targets/product.
Применяется только при создании сущности (заказ на установку) для обнаружения конкретного файла-архива продуктового слоя, а в выдаче коллекции не содержится.
Если в каталоге архивов (/rest/v1/fs/targets/product) несколько файлов подходят под префикс, то выбирается файл с лексикографически наибольшим именем.

Поле: mode
Режим: in
Тип: str
По умолчанию: required

Режим развертки, передаваемый в установщик продуктового слоя. Возможные варианты:

  • default - все микросервисы свернуты в один процесс операционной системы.

  • multi - каждый микросервис в отдельном процессе операционной системы с отдельным подключением к платформе.

Поле: file
Режим: out
Тип: str

Имя файла-архива продуктового слоя, применённого на основе указанного prefix.

Поле: site
Режим: out
Тип: str

Название сайта, на котором производится операция развертки продуктового слоя.

Поле: dt
Режим: out
Тип: str

Дата-время установки состояния в формате rfc3339.

Поле: status
Режим: out
Тип: str

Состояние процесса установки. Возможные варианты:

  • registered - процесс стартовал после успешной предварительной проверки условий.

  • queued - задание размещено в очереди последовательной многодоменной обработки.

  • inprogress - задание в работе. По всем доменам возможно наличие лишь одного такого экземпляра.

  • installed - продуктовый слой установлен. Несмотря на возможность удаления продуктового слоя и отдельных его сущностей вручную, состояние будет отображаться до следующей инициации изменения через коллекцию product_layer. В этом случае в сущности будет размещен md5-хеш от файла (поле md5).

  • error - установка завершилась с ошибкой. В этом случае в сущности будет размещен трейс консольного логирвоания скрипта развертки продуктового слоя (поле trace).

  • failure - установка прервана по техническим условиям до передачи управления скрипту развертки продуктового слоя. Например, не найден запланированный к установке архив после длительного ожидания в очереди.

Поле: md5
Режим: out
Тип: str

MD5-хеш файла-архива установленной версии продуктового слоя. Присутствует только в сущностях состояния installed. Используется сервисом развертки для определения идентичности версий.

Поле: trace
Режим: out
Тип: str

Трейс консольного вывода скриптом развертки продуктового слоя. Присутствует только в сущностях состояния error.

Поле: kind
Режим: out
Тип: str

Вид сущности. Возможные варианты:

  • current - текущее состояние. Только одна сущность такого типа в домене.

  • previous - предыдущее состояние в рамках текущего процесса установки, а также предыдущее финальное состояние на этапе, пока текущая установка не завершена.`

  • attempt - последняя предпринятая попытка установки продуктового слоя, прерванная по технической причине. Например, к установке выбрана версия, совпадающая с уже установленной (последняя известная).

Поле: order
Режим: out
Тип: int

Порядковый номер состояния по порядку увеличения времени, прошедшего с момента смены состояния. 0 - всегда последнее состояние. История состояний не накапливается, предыдущие состояния отображаются лишь для нужд слежения за ходом установки.

См. также