-
Notifications
You must be signed in to change notification settings - Fork 785
Open
Labels
Description
ISSUE TYPE
- Template Issue with error and raw data
TEMPLATE USING
aruba_aoscx_show_interface.textfsm
Value Required INTERFACE (\S+)
Value LINK_STATUS (\w+)
Value LINK_ADMIN (\w+)
Value LINK_STATE_INFO (\.*)
Value LINK_TRANSITIONS (\d+)
Value INTERFACE_DESC (.*)
Value HW_TYPE (\w+)
Value MAC_ADDRESS (\S+)
Value MTU (\d+)
Value IF_TYPE (\S+)
Value IP_ADDRESS (\S+)
Value DUPLEX (\w+)
Value QOS_TRUST (\S+)
Value SPEED (\S+\s\S+)
Value AUTO_NEG (\S+)
Value FLOW_CONTROL (\S+)
Value ERROR_CONTROL (\S+)
Value VLAN_MODE (\S+)
Value VLAN_ACCESS (\S+)
Value VLAN_NATIVE (\S+)
Value List VLAN_TRUNK ([^,]+)
Value List AGGREGATED_INTERFACES (\S+)
Value RX_TOTAL_PACKETS (\d+)
Value RX_TOTAL_BYTES (\d+)
Value RX_UNICAST_PACKETS (\d+)
Value RX_MCAST_PACKETS (\d+)
Value RX_BROADCAST_PACKETS (\d+)
Value RX_ERRORS (\d+)
Value RX_DROPPED (\d+)
Value RX_CRC_FCS (\d+)
Value TX_TOTAL_PACKETS (\d+)
Value TX_TOTAL_BYTES (\d+)
Value TX_UNICAST_PACKETS (\d+)
Value TX_MCAST_PACKETS (\d+)
Value TX_BROADCAST_PACKETS (\d+)
Value TX_ERRORS (\d+)
Value TX_DROPPED (\d+)
Value TX_CRC_FCS (\S+)
Value TX_COLLISION (\d+)
Start
^\s*(Interface|Aggregate)\s+\S+\s+is -> Continue.Record
^\s*(Interface|Aggregate)\s+${INTERFACE}\s+is\s+${LINK_STATUS}
^\s*Admin\s*state\s*is\s*${LINK_ADMIN}
^\s*Link\s*transitions\s*:\s*${LINK_TRANSITIONS}
^\s*Description\s*:\s*${INTERFACE_DESC}
^\s*State\s*information\s*:\s*${LINK_STATE_INFO}
^\s*Hardware\s*:\s*${HW_TYPE},?\s*MAC\s*Address:\s+${MAC_ADDRESS}
^\s*MAC\s+Address\s*:\s*${MAC_ADDRESS}
^\s*IPv4\s+address\s+${IP_ADDRESS}
^\s*MTU\s*${MTU}
^\s*Type\s*${IF_TYPE}
^\s*${DUPLEX}-duplex
^\s*qos\s*trust\s*${QOS_TRUST}
^\s*Speed\s*:*\s*${SPEED}
^\s*Auto-negotiation\s*is\s*${AUTO_NEG}
^\s*Flow-control\s*:\s*${FLOW_CONTROL}
^\s*Error-control\s*:\s*${ERROR_CONTROL}
^\s*VLAN Mode\s*:\s*${VLAN_MODE}
^\s*Access VLAN\s*:\s*${VLAN_ACCESS}
^\s*Native VLAN\s*:\s*${VLAN_NATIVE}
^\s*Allowed VLAN List\s*:\s+${VLAN_TRUNK},* -> Continue
^\s*Allowed VLAN List\s*:\s+(?:[^,]+,){1}${VLAN_TRUNK},* -> Continue
^\s*Allowed VLAN List\s*:\s+(?:[^,]+,){2}${VLAN_TRUNK},* -> Continue
^\s*Allowed VLAN List\s*:\s+(?:[^,]+,){3}${VLAN_TRUNK},* -> Continue
^\s*Allowed VLAN List\s*:\s+(?:[^,]+,){4}${VLAN_TRUNK},* -> Continue
^\s*Allowed VLAN List\s*:\s+(?:[^,]+,){5}${VLAN_TRUNK},* -> Continue
^\s*Allowed VLAN List\s*:
^\s*Link state
^\s*Aggregated-interfaces\s*:\s+${AGGREGATED_INTERFACES}\s* -> Continue
^\s*Aggregated-interfaces\s*:\s+(?:\S+\s+){1}${AGGREGATED_INTERFACES}\s* -> Continue
^\s*Aggregated-interfaces\s*:\s+(?:\S+\s+){2}${AGGREGATED_INTERFACES}\s* -> Continue
^\s*Aggregated-interfaces\s*:\s+(?:\S+\s+){3}${AGGREGATED_INTERFACES}\s* -> Continue
^\s*Aggregated-interfaces\s*:\s+(?:\S+\s+){4}${AGGREGATED_INTERFACES}\s* -> Continue
^\s*Aggregated-interfaces\s*:\s+(?:\S+\s+){5}${AGGREGATED_INTERFACES}\s* -> Continue
^\s*Aggregated-interfaces\s*:\s+(?:\S+\s+){6}${AGGREGATED_INTERFACES}\s* -> Continue
^\s*Aggregated-interfaces\s*:\s+(?:\S+\s+){7}${AGGREGATED_INTERFACES}\s* -> Continue
^\s*Aggregated-interfaces\s*:
^\s*Aggregation-key
^\s*Aggregate\s+mode
^\s*Persona
^\s*rate-limit\s+broadcast
^\s*L3\s+Counters
^\s*MDI mode
^\s*Rate collection interval
^\s*Energy-Efficient
^\s*Rx -> Rx
^\s*Rate\s+RX\s+TX\s+Total -> Rate
^\s*Statistic\s+RX\s+TX\s+Total -> Statistic
^. -> Error
Rx
^\s*${RX_TOTAL_PACKETS} total packets\s*${RX_TOTAL_BYTES} total bytes
^\s*${RX_UNICAST_PACKETS} unicast packets
^\s*${RX_MCAST_PACKETS} multicast packets
^\s*${RX_BROADCAST_PACKETS} broadcast packets
^\s*${RX_ERRORS} errors\s*${RX_DROPPED} dropped
^\s*${RX_CRC_FCS} CRC/FCS
^\s*Tx -> Tx
^. -> Error
Tx
^\s*${TX_TOTAL_PACKETS} total packets\s*${TX_TOTAL_BYTES} total bytes
^\s*${TX_UNICAST_PACKETS} unicast packets
^\s*${TX_MCAST_PACKETS} multicast packets
^\s*${TX_BROADCAST_PACKETS} broadcast packets
^\s*${TX_ERRORS} errors\s*${TX_DROPPED} dropped
^\s*${TX_CRC_FCS} CRC/FCS
^\s*${TX_COLLISION}\s*collision
^\s*$$ -> Start
^. -> Error
Rate
^\s*----
^\s*Mbits\s+/\s+sec
^\s*KPkts\s+/\s+sec
^\s+Unicast
^\s+Multicast
^\s+Broadcast
^\s+Utilization
^\s*$$ -> Statistic
^. -> Error
Statistic
^\s*Statistic\s+RX\s+TX\s+Total
^\s*----
^\s*Packets\s+${RX_TOTAL_PACKETS}\s+${TX_TOTAL_PACKETS}\s+\d+
^\s+Unicast\s+${RX_UNICAST_PACKETS}\s+${TX_UNICAST_PACKETS}\s+\d+
^\s+Multicast\s+${RX_MCAST_PACKETS}\s+${TX_MCAST_PACKETS}\s+\d+
^\s+Broadcast\s+${RX_BROADCAST_PACKETS}\s+${TX_BROADCAST_PACKETS}\s+\d+
^\s*Bytes\s+${RX_TOTAL_BYTES}\s+${TX_TOTAL_BYTES}\s+\d+
^\s*Jumbos
^\s*Pause\s+Frames
^\s*Dropped\s+${RX_DROPPED}\s+${TX_DROPPED}\s+\d+
^\s*Errors\s+${RX_ERRORS}\s+${TX_ERRORS}\s+\d+
^\s+CRC/FCS\s+${RX_CRC_FCS}\s+${TX_CRC_FCS}\s+\d+
^\s+Collision\s+\S+\s+${TX_COLLISION}\s+\d+
^\s*Runts
^\s*Giants
^\s*L3\s+Packets
^\s*$$ -> Start
^. -> Error
SAMPLE COMMAND OUTPUT
Output truncated:
pas-mdf-core-sw01-2# show interface
[...]
Interface 1/1/52 is up
Admin state is up
Link state: up for 4 months (since Tue Jul 29 20:06:38 PDT 2025)
Link transitions: 1
Description:
Persona:
Hardware: Ethernet, MAC Address: 38:bd:7a:c2:8c:40
MTU 9500
Type 100G-DAC1 / 100G QSFP28 1m DAC
Full-duplex
qos trust none
Speed 100000 Mb/s
Auto-negotiation is on
Flow-control: off
Error-control: RS-FEC
Rate collection interval: 300 seconds
Rate RX TX Total (RX+TX)
---------------- -------------------- -------------------- --------------------
Mbits / sec 0.56 3.24 3.80
KPkts / sec 0.42 1.52 1.94
Unicast 0.32 1.30 1.62
Multicast 0.07 0.21 0.28
Broadcast 0.03 0.01 0.04
Utilization % 0.00 0.00 0.00
Statistic RX TX Total
---------------- -------------------- -------------------- --------------------
Packets 5729028326 13700151165 19429179491
Unicast 4904016385 12250304051 17154320436
Multicast 486021037 1332553017 1818574054
Broadcast 338990904 117294097 456285001
Bytes 1494428515877 2160396465030 3654824980907
Jumbos 131758623 194495842 326254465
Dropped 0 0 0
Pause Frames 0 0 0
Errors 0 0 0
CRC/FCS 0 n/a 0
Collision n/a 0 0
Runts 0 n/a 0
Giants 0 n/a 0
Interface loopback1 is up
Admin state is up
VRF name is default
Description:
Hardware: Loopback, MAC Address: 38:bd:7a:c2:8c:40
IPv4 address 10.255.255.1/32
MTU 1500
Type --
Full-duplex
Speed 0 Mb/s
Auto-negotiation is off
Flow-control: off
Error-control: off
MDI mode: none
L3 Counters: Rx Disabled, Tx Disabled
Interface vlan6 is up
Admin state is up
Description:
Hardware: Ethernet, MAC Address: 38:bd:7a:c2:8c:40
IPv4 address 10.24.6.3/24
active-gateway L3 source mac 38:bd:7a:c2:8c:40
active-gateway ip mac 12:02:00:00:00:00
active-gateway ip 10.24.6.1
L3 Counters: Rx Disabled, Tx Disabled
[...]
SUMMARY
If a VRF is configured on an interface it causes parsing to fail.
STEPS TO REPRODUCE
- Attempt to execute
aruba_aoscx_show_interface.textfsmagainst a device which contains at least one interface assigned to a VRF.
EXPECTED RESULTS
Interfaces are parsed successfully.
ACTUAL RESULTS
A parsing error occurs:
Parsing failed for 'show interface' command:
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/nautobot_device_onboarding/nornir_plays/command_getter.py", line 181, in netmiko_send_commands
parsed_output = parse_output(
^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/ntc_templates/parse.py", line 77, in parse_output
cli_table.ParseCmd(data, attrs)
File "/usr/local/lib/python3.12/site-packages/textfsm/clitable.py", line 278, in ParseCmd
self.table = self._ParseCmdItem(self.raw, template_file=template_files[0])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/textfsm/clitable.py", line 312, in _ParseCmdItem
for record in fsm.ParseText(cmd_input):
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/textfsm/parser.py", line 912, in ParseText
self._CheckLine(line)
File "/usr/local/lib/python3.12/site-packages/textfsm/parser.py", line 961, in _CheckLine
if self._Operations(rule, line):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/textfsm/parser.py", line 1043, in _Operations
raise TextFSMError(
textfsm.parser.TextFSMError: State Error raised. Rule Line: 90. Input Line: VRF name is default
mjbear