События
События генерируются SHM, для возможности привязки команд.
Событие происходит между переходом услуги пользователя из одного статуса в другой.
Список cобытий
Event | Статус ДО | Статус ПОСЛЕ | Описание |
---|---|---|---|
create | INIT | ACTIVE | Услуга создана и оплачена (впервые) |
not_enough_money | INIT | NOT PAID | Не хватает денег для создания услуги |
prolongate | ACTIVE | ACTIVE | Услуга продлена (хватило денег для продления активной услуги) |
block | ACTIVE | BLOCK | Услуга заблокирована (нехватка денег для продления, либо вручную) |
activate | BLOCK | ACTIVE | Услуга активирована (возобновлена после блокировки) |
remove | BLOCK | REMOVED | Услуга удалена |
changed | * | * | Событие вызывается каждый раз, когда меняется статус услуги |
Если для события настроена команда, то пользовательской услуге будет присвоен промежуточный статус: PROGRESS
,
а после выполнения команды пользовательской услуге будет присвоен результирующий статус.
Схема создания новой услуги:
flowchart LR
classDef white fill:white
classDef green fill:green,color:#fff
classDef red fill:red,color:#fff
classDef gray fill:gray,color:#fff
classDef yellow fill:yellow
A[[INIT\nсоздание услуги]]:::white --> B{Оплата}
B -- Оплата не прошла --> E[[NOT PAID]]:::yellow --> CH{{CHANGED}}
B -- Оплачена --> C{{CREATE}}
C -->|События нет| TS
C -->|Событие есть|TC[[PROGRESS\nвыполняем событие]]:::gray
TC -- Успех --> TS[[ACTIVE]]:::green --> CH
TC -- Ошибка --> TSS[[STUCK]]:::red
Схема продления услуги:
flowchart LR
classDef green fill:green,color:#fff
classDef red fill:red,color:#fff
A[[ACTIVE]]:::green -->|продление| B{Оплата}
B -- Оплата не прошла --> E[[BLOCK]]:::red --> CH{{CHANGED}}
B -- Оплачена --> C[[ACTIVE]]:::green --> D{{PROLONGATE}}
событие PROLONGATE не переводит услугу в статус PROGRESS, и событие CHANGED не вызывается
Схема разблокировки услуги:
flowchart LR
classDef green fill:green,color:#fff
classDef red fill:red,color:#fff
classDef gray fill:gray,color:#fff
A[[BLOCK]]:::red --> B{Оплата}
B -- Оплата не прошла --> E[[BLOCK]]:::red
B -- Оплачена --> C{{ACTIVATE}}
C -->|События нет| TS
C -->|Событие есть|TC[[PROGRESS\nвыполняем событие]]:::gray
TC -- Успех --> TS[[ACTIVE]]:::green --> CH{{CHANGED}}
TC -- Ошибка --> TSS[[STUCK]]:::red
Настройка событий
Для события необходимо указать “Категорию” услуги и “Группу серверов”, для выполнения команд.
Категория события должна соответствовать категории услуги, для которой создается это событие и может быть указана с маской,
например: vpn-*
, где *
заменяет любые символы.
В зависимости от выбранной группы серверов, могут быть использованы дополнительные настройки, зависящие от Транспорта группы.
Например, если выбрана группа серверов, транспорт которой определен как “SSH”, то будет предложено выбрать шаблон в качестве скрипта, который должен быть выполнен на конечном сервере. Используйте Шаблоны для написания команд.
А если выбрана группа серверов, транспорт которой определен как “Mail”, то можно настроить поле “Шаблон” (template_id
), по которому будет
сформировано письмо, а так-же другие поля, такие как “Тема письма” (subject
) и прочие.
Настройки серверов можно переопределять настройками событий.