Операция
Операция – набор предопределённых действий, которые могут выполняться по запросу пользователя или при смене состояния объекта.
Создание и удаление операций
Операции для объектов и связей создаются в секции Операции. Также, в этой секции можно изменить, удалить и запустить существующие операции.
Также, можно задать операции по умолчанию для классов объектов в окне конфигурации системы.
Все новые объекты будут созданы с настроенными в классах операциями.
Создать операции для классов и сущностей также можно через REST API.
Выполнение операций
Запуск операции может быть вызван одним из следующих способов:
| Событие запуска и результат выполнения операции записываются в журнал с указанием времени и инициатора. |
Использование переменных в операциях
В топике и сообщении операций типа MQTT-сообщение, а также в скрипте операций типа Выполнение программы/скрипта – Скрипт с указанным текстом можно использовать переменные, чтобы передавать в них некоторую системную информацию.
Система позволяет использовать следующие переменные:
-
{{id}}– идентификатор объекта, в котором запущена операция; -
{{properties.имя_свойства}}– значение свойства объекта, в котором запущена операция (в переменной указывается имя свойства); -
{{jobId}}– идентификатор запущенной операции;Идентификатор уникален для каждого запуска – подробности в документации по REST API. -
{{user.id}}– идентификатор пользователя, который запустил операцию; -
{{user.login}}– логин пользователя, который запустил операцию.
Запрос аргументов операции у пользователя
Перед выполнением операции у пользователя можно запросить аргументы, которые будут передаваться в скрипт. Для этого в скрипте нужно указать макрос {{ask.имя_аргумента}}.
Для операций подтипа "Программа/скрипт в ФС" и "Скрипт из репозитария" этот макрос можно добавлять только в поле "Аргументы". Для подтипа "Скрипт с указанным текстом" {{ask.имя_аргумента}} можно указывать как в списке "Аргументы", так и в теле скрипта.
Запрос аргументов работает только для операций типа "Выполнение программы / скрипта". Для операций типа "MQTT-сообщение" макрос {{ask.имя_аргумента}} заменяется на пустую строку.
|
Например, операция, которая вызывает следующий скрипт, запросит у пользователя, который её запустил, переменные packets_count и ip_address:
#!/bin/bash
ping -c {{ask.packets_count}} {{ask.ip_address}}
При запуске этой операции, система покажет пользователю следующее окно, в котором он сможет ввести значения переменных packets_count и ip_address:
Также этот макрос можно использовать в поле "Аргументы":
Для того, чтобы пример выше мог работать с аргументами, его нужно модифицировать следующим образом:
#!/bin/bash
ping -c "$1" "$2"