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

АтрибутТипОписание
nameStringНазвание правило
is_builtinBooleanПризнак синхронизации с дистрибутивом
descriptionStringОписание
contextList

Описание контекстов

АтрибутТипОписание
typeStringтип объекта (возвращается get_inventory)
scopeStringНазвание типа области, ассоциированной с данным типом
reset_scopesStringListСписок названий областей, которые необходимо сбрасывать
rulesList

Список правил

АтрибутТипОписание
match_typeStringТип, для которого применимо правило
match_connectionStringНазвание connection'а, которое будет соединено с другим объектом при срабатывании правила. В фигурных скобках могут быть указаны переменные контекста, которые будут включены в название
scopeString

Область действия, в которой осуществляется поиск совпадения.

По умолчанию поиск осуществляется к началу списка get_inventory. Если название scope начинается с минуса, поиск осуществляется в обратном направлении

target_typeStringТип объекта, с которым необходимо соединить данный объект
target_numberStringЕсли указано, соединять объект не с первым попавшимся, а с имеющим конкретный номер
target_connectionStringНазвание connection'а с другой стороны, которое будет соединено при срабатывании правила. В фигурных скобках могут быть указаны переменные контекста, которые будут включены в название

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

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

Пример 1

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

Вывод get_inventory

TypeNumber
CHASSIS1
XCVR25
XCVR26

Настройки context

Typescopereset_scopes
CHASSISchassis 

Правила

match_typematch_connectionscopetarget_typetarget_numbertarget_connection
XCVRinchassisCHASSIS Gi{N}_sfp

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

TypeNumberContext
CHASSIS1chassis=1,N=1
XCVR25chassis=1,N=25
XCVR26chassis=1,N=26

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

TypeconnectionTypeconnection
XCVR 25inCHASSIS 1Gi25_sfp
XCVR 26inCHASSIS 1Gi26_sfp

Пример 2

Модульный свич

Вывод get_inventory

TypeNumber
CHASSIS1
LC1
XCVR5
XCVR7
LC3
XCVR1
XCVR5
PSU1
PSU2

Настройки context

Typescopereset_scopes
CHASSISchassislc
LClc 

Правила

match_typematch_connectionscopetarget_typetarget_numbertarget_connection
PSUinchassisCHASSIS psu{N}
LCinchassisCHASSIS slot{N}
XCVRinlcLC Gi{N}_sfp

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

TypeNumberContext
CHASSIS1chassis=1,N=1
LC1chassis=1, lc=1, N=1
XCVR5chasis=1, lc=1, N=5
XCVR7chassis=1, lc=1, N=7
LC3chassis=1, lc=3, N=3
XCVR1chassis=1,lc=3, N=1
XCVR5chassis=1,lc=3, N=1
PSU1chassis=1, lc=3, N=1
PSU2chassis=1, lc=3, N=2

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

TypeconnectionTypeconnection
LC 1inCHASSIS 1slot1
XCVR 5inLC 1Gi5_sfp
XCVR 7inLC 1Gi7_sfp
LC 2=3inCHASSIS 1slot3
XCVR 1inLC 3Gi1_sfp
XCVR 5inLC 3Gi5_sfp
PSU 1inCHASSIS 1psu1
PSU 2inCHASSIS 1psu2