События

События генерируются 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) и прочие.

Настройки серверов можно переопределять настройками событий.

Изменено 24.04.2024: dnk: add flowcharts (dc39ca4)