Последовательности резервного копирования и восстановления

Последовательности резервного копирования и восстановления - это наборы правил, используемые для резервного копирования и восстановления конфигураций устройств.

Каждая последовательность (набор правил) используется для чтения и записи конфигураций из/на устройства определенного производителя, семейства, модели или марки. Сфера применения набора правил варьируется в зависимости от того, как она построена и насколько схожи резервное копирование/восстановление конфигураций, выполняемые с различными устройствами определенного производителя.

Все последовательности (наборы правил) полностью независимы друг от друга. Каждый набор включает одно или более правил, работающих в порядке последовательности. Каждый набор правил может иметь определенные параметры, и его обработка всегда имеет результатом один объект (любого типа, например, число, строка или дата).

Компоненты правил

Каждое правило в наборе состоит из цели, выражения и условия. Правило либо возвращает результат всего набора правил, либо (пере-)определяет одну переменную среды, действительную до конца обработки набора правил.

Также возможно добавлять комментарии к отдельным правилам.

Каждое правило выполняет одно из следующих действий:

  • Выполняет некоторое действие, например, выполняет скрипт Telnet/SSH
  • Рассчитывает определенные временные значения
  • Извлекает и возвращает текст конфигурации устройства

Цель правил

Цель правила определяет, как обрабатывать результат этого правила. Если цель правила - Результат финального набора правил, это правило прекращает обработку последовательности. Если правило является частью Последовательности резервного копирования, оно должно вернуть текст конфигурации устройства (значение Строка). Если это часть Последовательности восстановления, результат набора правил игнорируется.

В других случаях цель определяет имя переменной среды, получаемое, как только заканчивается обработка правила. На эту переменную можно ссылаться из выражений и условий других правил.

Выражение правил

Выражение правил - это выражение AggreGate, возвращающее результат любого типа. Этот результат:

  • Возвращается как результат всего набора правил, если Цель правила - это Результат финального набора правил.
  • Хранится как переменная внутренней среды набора правил, переписывающая значение этой переменной, ели оно уже было определено другими правилами. Переменная среды действительна во время текущего цикла обработки набора правил.

Выражения правил могут ссылаться на результаты других правил из этого набора через ссылки {env/rule_target_variable_name}.

Среда вычисления выражения правил:

Контекст по умолчанию

Контекст устройства, чья конфигурация резервируется или восстанавливается.

Таблица данных по умолчанию

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

Строка по умолчанию

0

Переменные среды

Стандартные переменные.

Переменные среды, определенные прежде выполняемыми правилами той же последовательности.

Условие правил

Условие правил - это выражение AggreGate, которое должно выводить булевое значение. Если это значение false, обработка правил опускается и обрабатывается следующее правило.

Условия правил могут относиться к результатам других правил из этого набора через ссылки {env/rule_target_variable_name}.

Условие правил опционально.

Среда вычисления условия правила:

Контекст по умолчанию

Контекст устройства, чья конфигурация резервируется или восстанавливается.

Таблица данных по умолчанию

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

Строка по умолчанию

0

Переменные среды

Только стандартные переменные.

Переменные среды, определенные ранее выполненными правилами той же последовательности.

Пример последовательности резервного копирования

Этот пример описывает набор правил, который извлекает конфигурацию из радио модема. Он выполняет следующие действия:

  • Входит в модем, используя протокол Telnet, и выполняет серии команд, выводящих текущую конфигурацию в его внутренний флеш-диск
  • Входит в модем, используя протокол FTP, и загружает файл конфигурации

Цель

Выражение

Условие

Примечания

Пустая команда

{executeExpectScript("Save Configuration", "Telnet")}



Результат финального набора правил

{ftpDownload('{.:connectionProperties$address}', '{.:ftpSettings$port}', '{ftpDirectory}', '{ftpFileName}', '{.:ftpSettings$userName}', '{.:ftpSettings$password}')}



Первое правило выполняет Ожидание скрипта путем вызова функции executeExpectScript(). Скрипт (не являющийся частью данного примера) посылает устройству серии команд для вызова конфигурации сохранения на внутреннем диске, который становится доступен для загрузки через протокол FTP. Результат правила не учитывается (он переносится в переменную под названием Dummy, которая не будет использоваться последующими правилами).

Второе правило загружает правило конфигурации из устройства путем выполнения функции ftpDownload(). Функция принимает адрес, порт, логин, пароль, путь удаленной директории и имя файла устройства для загрузки в качестве параметров. Некоторые параметры берутся из контекста учетной записи устройства (через ссылки, такие как {.:connectionProperties$address} или {.:ftpSettings$userName}), при этом другие берутся из таблицы по умолчанию, содержащей свойства, описанные в Формате параметров резервного копирования (например, функция {ftpDirectory} или {ftpFileName}). Функция ftpDownload() возвращает контент загруженного файла конфигурации устройства, который, как результат, возвращается из последовательности резервного копирования.