Перейти к содержанию

Connection Rules

Правила соединения служат для преобразования линейного списка объектов, выдаваемых скриптом get_inventory в дерево путем организации соответствующих связей.

Атрибут Тип Описание
name String Название правило
is_builtin Boolean Признак синхронизации с дистрибутивом
description String Описание
context List Описание контекстов
type String тип объекта (возвращается get_inventory)
scope String Название типа области, ассоциированной с данным типом
reset_scopes StringList Список названий областей, которые необходимо сбрасывать
rules ListObject Список правил
match_type String Тип, для которого применимо правило
match_connection String Название connection'а, которое будет соединено с другим объектом при срабатывании правила. В фигурных скобках могут быть указаны переменные контекста, которые будут включены в название
scope String Область действия, в которой осуществляется поиск совпадения. По умолчанию поиск осуществляется к началу списка get_inventory. Если название scope начинается с минуса, поиск осуществляется в обратном направлении
target_type String Тип объекта, с которым необходимо соединить данный объект
target_number String Если указано, соединять объект не с первым попавшимся, а с имеющим конкретный номер
target_connection String Название connection'а с другой стороны, которое будет соединено при срабатывании правила. В фигурных скобках могут быть указаны переменные контекста, которые будут включены в название

Алгоритм поиска совпадений:

Для каждого объекта get_inventory:

  • Для всех правил, match_type которых совпадает с типом объекта:
    • В случае, если scope начинается с - ищем от текущего объекта до начала списка объектов, в противном случае - от текущего и до конца. Ищем объект с типом, совпадающим с target_type. Если указан target_number, то проверяем и номер объекта. Переменная scope в контексте должна совпадать
    • Если находим объект, то:
      • Раскрываем имена match_connection и target_connection
      • Если соответствующие connection присутсвуют на обоих объектах, соединяем их и переходим к обработке следующего объекта
    • Проверяем следующее правило

Примеры

Свич с sfp, причем sfp должны быть подключены к шасси в connection GiX_sfp, где X - номер порта.

Вывод get_inventory:

Type Number
CHASSIS 1
XCVR 25
XCVR 26

Настройки context

Type Scope Reset Scope
CHASSIS chassis

Правила

match_type match_connection scope target_type target_number target_connection
XCVR in chassis CHASSIS Gi{N}_sfp

При первом проходе списка объектов будут сформированы следующие значения контекстов:

Type Number Context
CHASSIS 1 chassis=1,N=1
XCVR 25 chassis=1,N=25
XCVR 26 chassis=1,N=26

В результате правило сработает для трансиверов и будут построены следующие связи

Type connection Type connection
XCVR 25 in CHASSIS 1 Gi25_sfp
XCVR 26 in CHASSIS 1 Gi26_sfp