Раздел "Скрипты"
В разделе "Скрипты" пользователь может добавить дополнительные индивидуальные наборы команд или инструкции для выполнения на источнике или приемнике на разных этапах миграции.
Добавление скрипта
Чтобы добавить скрипт, нужно нажать + Создать скрипт. Во всплывающем окне "Создать скрипт" ввести:
Имя— название скрипта для отображения в интерфейсе Комплекса;Описание— (необязательно) комментарий к скрипту;Linux/Windows— в зависимости от ОС поддерживаются разные оболочки командной строки: для Linux — Bash, для Windows — PowerShell.
Затем требуется загрузить файл, содержащий программный код скрипта, и нажать кнопку Сохранить (рисунок 39).

Рисунок 39 — Форма создания скрипта
Скрипт отобразится во вкладке "Скрипты". Можно скопировать ID скрипта, нажав на пиктограмму (квадраты), или отредактировать его, нажав на пиктограмму (карандаш) (рисунок 40).

Рисунок 40 — Вкладка "Скрипты"
Добавление и настройка сценариев
После добавления первого пользовательского скрипта в этом разделе появится вкладка "Сценарии", где можно задать последовательность их исполнения скриптов на ключевых этапах миграции.
Для добавления сценария нужно выполнить следующие действия:
- нажать кнопку
+ Создать сценарий; - в открывшейся форме (рисунок 41) указать имя сценария;

Рисунок 41 — Форма создания сценария
- выбрать, где должны исполняться скрипты – на источнике или на приёмнике;
- нажать кнопку
+ Добавить скрипт; - выбрать этап запуска скрипта – "Начало", "Снимки", "Завершение" для источника и "Завершение" для приёмника (рисунок 42);

Рисунок 42 — Выбор этапа запуска сценария
- выбрать условия запуска скрипта:
- Для вкладки "Начало" (когда синхронизация началась) на источнике:
- Перед первым снимком;
- После первого снимка;
- После первичной синхронизации;
- Для вкладки "Снимки" (когда выполняется режим Flow-синхронизации) на источнике:
- Перед каждым снимком;
- После каждого снимка;
- Перед последним снимком;
- После последнего снимка;
- Для вкладки "Завершение" (когда синхронизация завершилась) на источнике:
- После финальной синхронизации;
- Для вкладки "Завершение" на приёмнике:
- Перед перезагрузкой приёмника;
- "Скрипт" — выбрать один из ранее созданных пользовательских скриптов;
"Что делать в случае ошибки" — выбрать действие при возникновении ошибки:
- Продолжить миграции – миграция продолжается без остановки;.
- Остановить миграции с ошибкой – миграция останавливается с сообщением об ошибке в скрипте;
- Запустить запасной скрипт – запускается резервный скрипт на случай возникновения ошибок в основном. Для выбора запасного скрипта откроется дополнительное поле выбора.
- повторить добавление, если требуется несколько скриптов на одном этапе;
- при необходимости нажать пиктограмму (корзина) для удаления скрипта.
- нажать кнопку
Сохранить.
При исполнении скриптов их содержимое не играет роли для Контроллера. Все скрипты можно комбинировать, добавляя несколько блоков исполнения с независимыми условиями и реакциями на ошибки.
Также предусмотрена возможность процедурно реагировать на коды ошибок, которые могут быть возвращены скриптами.
Примечание – На этапе проверки приёмника скрипты всегда выполняются от имени пользователя root, поэтому использование sudo в скриптах не требуется. На источнике и приёмнике скрипты выполняет mind_agent на всех этапах.
Следует обратить внимание, что при использовании пользовательских скриптов для корректного завершения миграции необходимо, чтобы скрипт завершался с каким-либо кодом возврата. Не поддерживается выполнение "бесконечных" скриптов. В противном случае процесс миграции остановится и не перейдет к следующему этапу.
При создании сценария можно выбрать шаг, на котором требуется автоматически запускать пользовательские скрипты. В зависимости от типа задания и режима синхронизации (с Flow / без Flow), часть шагов и привязанные к этим шагам скрипты могут пропускаться в процессе выполнения сценария (таблица 1).
Примечания к таблице 1:
- "+" – скрипт будет выполняться на данном шаге для данного типа задания.
- "-" – скрипт не будет выполняться на данном шаге для данного типа задания.
- "+/-" – выполнение скрипта зависит от дополнительных условий (см. ниже).
- Скрипты на шаге 6, 7, 8 будут запускаться только при плановом переключении и доступности источника. При переключении задания с принудительной остановкой репликации скрипты на шагах 6 и 7 выполняться не будут.