Операция

Операция – набор предопределённых действий, которые могут выполняться по запросу пользователя или при смене состояния объекта.

Например, операции могут быть использованы для изменения состояния сущности, изменения параметров объекта или связи, получения данных от сущности (параметры, конфигурация, версия ПО и т.д.) или загрузки новой версии ПО на управляемый объект.

Создание и удаление операций

Операции для объектов и связей создаются в секции Операции. Также, в этой секции можно изменить, удалить и запустить существующие операции.

Также, можно задать операции по умолчанию для классов объектов в окне конфигурации системы.

Все новые объекты будут созданы с настроенными в классах операциями.

Создать операции для классов и сущностей также можно через 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:

argument prompt light
argument prompt dark

Также этот макрос можно использовать в поле "Аргументы":

arguments list ask light
arguments list ask dark

Для того, чтобы пример выше мог работать с аргументами, его нужно модифицировать следующим образом:

#!/bin/bash

ping -c "$1" "$2"