我正在尝试为在 APIC 控制器上扩展的命令 fabric show vlan创建一个 textfsm 模板。这里的输出使得一些输出溢出到下一行。我用列表来处理这个。但由于不同实例的输出格式不同,因此模板不适用于所有情况。
这是命令的输出
apic1# fabric 203 show vlan extended
----------------------------------------------------------------
Node 203 (lab1r00002-ne-RDC-LF3)
----------------------------------------------------------------
VLAN Name Encap Ports
---- -------------------------------- ---------------- ------------------------
9 5GC-N6:N3-INT:l3out-UPF-N3-INT- vxlan-15171532, Eth1/1, Eth1/2, Eth1/3,
VRF-FLT:vlan-541 vlan-541 Eth1/4, Eth1/5, Eth1/6,
Eth1/7, Eth1/8, Eth1/9,
Eth1/10, Eth1/11,
Eth1/12, Eth1/13,
Eth1/14, Eth1/15,
Eth1/16, Eth1/17,
Eth1/18, Eth1/19,
Eth1/20, Eth1/21,
Eth1/22, Eth1/23,
Eth1/24, Eth1/28,
Eth1/29, Eth1/30,
Eth1/31, Eth1/32,
Eth1/33, Eth1/34,
Eth1/35, Eth1/36,
Eth1/37, Eth1/38,
Eth1/39, Eth1/40,
Eth1/41, Eth1/42,
Eth1/43, Po1, Po2
11 NSO-XDOMAIN:Source-TG-BD vxlan-16318378 Eth1/16
12 NSO-XDOMAIN:Traffic- vlan-621 Eth1/16
Generators:source-tg-epg
14 infra:default vxlan-16777209, Eth1/1, Eth1/48
vlan-3914
这是我创建的 textfsm 模板。
Value Required vlan (\d+)
Value List name (\S*)
Value List encap (\S+)
Value List ports (\S+ \S+ \S*|\S+ \S+|\S+)
Start
^ \d+ -> Continue.Record
^\s*${vlan}\s*${name}\s*${encap}\s*${ports}
^\s+${name}\s*${encap} \s+${ports}
^\s+${ports}
该模板非常适用于 vlan ID 9 和 11。但对于其他的,它会将一些元素推送到错误的值列表中。
如何使此模板适用于所有输出场景?