mirror of
https://github.com/hansjone/netx.git
synced 2026-10-09 04:20:45 +08:00
Decouple cutover HF from portrait and tighten ops UI.
Portrait stays on biz-monitor; cutover create/ensure owns purpose=cutover_hf slots with project collect override, multi-interval bindings, window pause, and industrial detail UX. Also expand ZTE collect/config parsers and TextFSM for route/BGP/L2VPN/VRRP coverage. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
a65c9fc420
commit
285c19e5a3
67 changed files with 9510 additions and 723 deletions
|
|
@ -9,6 +9,16 @@ zte/zte_zxros_show_interface.textfsm, .*, zte_zxros, sh[[ow]] int[[erface]] .+
|
|||
zte/zte_zxros_show_ip_vrf.textfsm, .*, zte_zxros, sh[[ow]] ip vrf$
|
||||
zte/zte_zxros_show_arp.textfsm, .*, zte_zxros, sh[[ow]] arp
|
||||
zte/zte_zxros_show_running_config_if_intf.textfsm, .*, zte_zxros, sh[[ow]] run[[ning-config]] if-intf
|
||||
zte/zte_zxros_show_bgp_summary.textfsm, .*, zte_zxros, sh[[ow]] bgp .+ sum[[mary]]
|
||||
zte/zte_zxros_show_ospf_neighbor.textfsm, .*, zte_zxros, sh[[ow]] ip ospf nei[[ghbor]]
|
||||
zte/zte_zxros_show_vrrp_brief.textfsm, .*, zte_zxros, sh[[ow]] vrrp .+ br[[ief]]
|
||||
zte/zte_zxros_show_opticalinfo_brief.textfsm, .*, zte_zxros, sh[[ow]] opticalinfo br[[ief]]
|
||||
zte/zte_zxros_show_bgp_neighbor_routes.textfsm, .*, zte_zxros, sh[[ow]] bgp .+ nei[[ghbor]] (in|out)
|
||||
zte/zte_zxros_show_ip_forwarding_route.textfsm, .*, zte_zxros, sh[[ow]] ip forw[[arding]] rou[[te]]
|
||||
zte/zte_zxros_show_ipv6_forwarding_route.textfsm, .*, zte_zxros, sh[[ow]] ipv6 forw[[arding]] rou[[te]]
|
||||
zte/zte_zxros_show_l2vpn_forwardinfo.textfsm, .*, zte_zxros, sh[[ow]] l2vpn forw[[ardinfo]]
|
||||
zte/zte_zxros_show_mac_l2vpn.textfsm, .*, zte_zxros, sh[[ow]] mac l2vpn
|
||||
zte/zte_zxros_show_bgp_evpn_mac.textfsm, .*, zte_zxros, sh[[ow]] bgp evpn mac
|
||||
|
||||
# --- cisco ---
|
||||
cisco/cisco_ios_show_interfaces.textfsm, .*, cisco_ios, sh[[ow]] int[[erfaces]] .+
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
Value NETWORK (\S+)
|
||||
Value NEXT_HOP (\S+)
|
||||
Value METRIC (\S*)
|
||||
Value LOC_PRF (\S*)
|
||||
Value RT_PRF (\S*)
|
||||
Value PATH (.*)
|
||||
|
||||
Start
|
||||
^\s*Network\s+Next\s+Hop -> Routes
|
||||
^Status\s+codes
|
||||
^Origin\s+codes
|
||||
^Route\s+Distinguisher
|
||||
^\s*$$
|
||||
^.* -> Start
|
||||
|
||||
Routes
|
||||
^Route\s+Distinguisher
|
||||
^\s*\*?\s*>?\s*${NETWORK}\s+${NEXT_HOP}\s+${METRIC}\s+${LOC_PRF}\s+${RT_PRF}\s+${PATH}\s*$$ -> Record
|
||||
^\s*\*?\s*>?\s*${NETWORK}\s+${NEXT_HOP}\s+${PATH}\s*$$ -> Record
|
||||
^\s*$$
|
||||
^\S+\s*#\s*$$ -> End
|
||||
^.*#\s*$$ -> End
|
||||
^.* -> Routes
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
Value NETWORK (\S+)
|
||||
Value NEXT_HOP (\S+)
|
||||
Value METRIC (\S*)
|
||||
Value LOC_PRF (\S*)
|
||||
Value TAG (\S*)
|
||||
Value PATH (.*)
|
||||
|
||||
Start
|
||||
^Routes\s+(Learned|Sent) -> Routes
|
||||
^\s*\*?\s*Network -> Routes
|
||||
^Network\s+ -> Routes
|
||||
^\s*$$
|
||||
^.* -> Start
|
||||
|
||||
Routes
|
||||
^Route\s+Distinguisher
|
||||
^Status\s+codes
|
||||
^Origin\s+codes
|
||||
^Total\s+number
|
||||
^\s+Valid
|
||||
^\s+Invalid
|
||||
^Local\s+router
|
||||
^Remote\s+router
|
||||
^\s*\*?\s*>?\s*${NETWORK}\s+${NEXT_HOP}\s+${METRIC}\s+${LOC_PRF}\s+${TAG}\s+${PATH}\s*$$ -> Record
|
||||
^\s*\*?\s*>?\s*${NETWORK}\s+${NEXT_HOP}\s+${PATH}\s*$$ -> Record
|
||||
^\s*$$
|
||||
^\S+\s*#\s*$$ -> End
|
||||
^.*#\s*$$ -> End
|
||||
^.* -> Routes
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
Value NEIGHBOR (\S+)
|
||||
Value VER (\d+)
|
||||
Value ASN (\S+)
|
||||
Value MSG_RCVD (\d+)
|
||||
Value MSG_SEND (\d+)
|
||||
Value UP_DOWN (\S+)
|
||||
Value STATE_PFX (\S+)
|
||||
|
||||
Start
|
||||
^Neighbor\s+Ver\s+As -> Peers
|
||||
^\s*$$
|
||||
^.* -> Start
|
||||
|
||||
Peers
|
||||
^${NEIGHBOR}\s+${VER}\s+${ASN}\s+${MSG_RCVD}\s+${MSG_SEND}\s+${UP_DOWN}\s+${STATE_PFX}\s*$$ -> Record
|
||||
^All\s+
|
||||
^BGP\s+
|
||||
^Local\s+
|
||||
^\s*$$
|
||||
^\S+\s*#\s*$$ -> End
|
||||
^.*#\s*$$ -> End
|
||||
^.* -> Peers
|
||||
|
|
@ -1,7 +1,11 @@
|
|||
Value Filldown IFNAME (\S+)
|
||||
Value Filldown ADMIN_OPER (up|down)
|
||||
Value Filldown ADMIN_STATE ((?:administratively\s+)?(?:up|down))
|
||||
Value Filldown IFINDEX (\d+)
|
||||
Value Filldown DESCRIPTION (.+?)
|
||||
Value Filldown PORT_MEDIA (\S+)
|
||||
Value Filldown NEGOTIATION (\S+)
|
||||
Value Filldown BW_RAW (\d+(?:\.\d+)?\s*[kKmMgGtT]?\s*(?:G?bit|bit)/s(?:ec)?)
|
||||
Value Filldown MTU (\d+)
|
||||
Value Filldown RATE_PERIOD (\d+)
|
||||
Value Filldown INPUT_BPS ([\d.]+)
|
||||
Value Filldown OUTPUT_BPS ([\d.]+)
|
||||
|
|
@ -9,9 +13,12 @@ Value IN_UTIL ([\d.]+)
|
|||
Value OUT_UTIL ([\d.]+)
|
||||
|
||||
Start
|
||||
^${IFNAME}\s+is\s+${ADMIN_OPER}\b
|
||||
^${IFNAME}\s+is\s+${ADMIN_STATE}(?:,\s*ifindex:\s*${IFINDEX})?
|
||||
^\s*Description:\s*${DESCRIPTION}\s*$$
|
||||
^\s*The\s+port\s+is\s+${PORT_MEDIA}
|
||||
^\s*Negotiation\s+${NEGOTIATION}
|
||||
^\s*BW\s+${BW_RAW}
|
||||
^\s*MTU\s+${MTU}\s+bytes
|
||||
^\s*Rate\s+period\s*:\s*${RATE_PERIOD}\s*s -> Rates
|
||||
^\s*$$
|
||||
^.* -> Start
|
||||
|
|
@ -20,11 +27,13 @@ Rates
|
|||
^\s*Input\s*:\s*${INPUT_BPS}\s*bit/s
|
||||
^\s*Output\s*:\s*${OUTPUT_BPS}\s*bit/s
|
||||
^\s*Peak\s+rate: -> AfterPeak
|
||||
^\s*Intf\s+utilization:\s*input\s*${IN_UTIL}%\s+output\s*${OUT_UTIL}% -> Record
|
||||
^\s*Intf\s+utilization:\s*input\s*${IN_UTIL}%\s+output\s*${OUT_UTIL}% -> Record Start
|
||||
^${IFNAME}\s+is\s+${ADMIN_STATE}(?:,\s*ifindex:\s*${IFINDEX})? -> Clearall Start
|
||||
^\s*$$
|
||||
^.* -> Rates
|
||||
|
||||
AfterPeak
|
||||
^\s*Intf\s+utilization:\s*input\s*${IN_UTIL}%\s+output\s*${OUT_UTIL}% -> Record
|
||||
^\s*Intf\s+utilization:\s*input\s*${IN_UTIL}%\s+output\s*${OUT_UTIL}% -> Record Start
|
||||
^${IFNAME}\s+is\s+${ADMIN_STATE}(?:,\s*ifindex:\s*${IFINDEX})? -> Clearall Start
|
||||
^\s*$$
|
||||
^.* -> AfterPeak
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
Value FLAGS (\S*)
|
||||
Value DEST (\S+)
|
||||
Value GATEWAY (\S+)
|
||||
Value INTERFACE (\S+)
|
||||
Value OWNER (\S+)
|
||||
Value PRI (\S+)
|
||||
Value METRIC (\S+)
|
||||
|
||||
Start
|
||||
^\s*Dest\s+Gw -> Entries
|
||||
^Headers:
|
||||
^Codes
|
||||
^Status\s+codes
|
||||
^\s*$$
|
||||
^.* -> Start
|
||||
|
||||
Entries
|
||||
^\s*${FLAGS}\s*${DEST}\s+${GATEWAY}\s+${INTERFACE}\s+${OWNER}\s+${PRI}\s+${METRIC}\s*$$ -> Record
|
||||
^\s*${DEST}\s+${GATEWAY}\s+${INTERFACE}\s+${OWNER}\s+${PRI}\s+${METRIC}\s*$$ -> Record
|
||||
^\s*$$
|
||||
^\S+\s*#\s*$$ -> End
|
||||
^.*#\s*$$ -> End
|
||||
^.* -> Entries
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
Value Required NAME (\S+)
|
||||
Value RD (\S+)
|
||||
Value INTERFACES (.*)
|
||||
Value PROTOCOLS (\S+)
|
||||
Value VRF_ID (\d+)
|
||||
|
||||
Start
|
||||
^Name\s+Default\s+RD -> Records
|
||||
|
|
@ -10,7 +11,8 @@ Start
|
|||
^.* -> Start
|
||||
|
||||
Records
|
||||
^${NAME}\s+${RD}\s+${INTERFACES}\s*$$ -> Record
|
||||
^${NAME}\s+${RD}\s+${PROTOCOLS}\s+${VRF_ID}\s*$$ -> Record
|
||||
^${NAME}\s+${RD}\s+${PROTOCOLS}\s*$$ -> Record
|
||||
^${NAME}\s+${RD}\s*$$ -> Record
|
||||
^${NAME}\s*$$ -> Record
|
||||
^-+
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
Value DEST (\S+)
|
||||
Value OWNER (\S+)
|
||||
Value PRI (\S+)
|
||||
Value METRIC (\S+)
|
||||
Value FLAGS (\S*)
|
||||
Value GATEWAY (\S+)
|
||||
Value INTERFACE (\S+)
|
||||
|
||||
Start
|
||||
^Headers:
|
||||
^Codes
|
||||
^Flag\s+codes
|
||||
^\s*Dest -> Entries
|
||||
^\s*$$
|
||||
^.* -> Start
|
||||
|
||||
Entries
|
||||
^\s*${DEST}\s+${OWNER}\s+${PRI}\s+${METRIC}\s+${FLAGS}\s*$$ -> Record
|
||||
^\s+${GATEWAY},${INTERFACE}\s*$$ -> Record
|
||||
^\s*$$
|
||||
^\S+\s*#\s*$$ -> End
|
||||
^.*#\s*$$ -> End
|
||||
^.* -> Entries
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
Value PW_NAME (\S+)
|
||||
Value PEER (\S+)
|
||||
Value FEC (\S+)
|
||||
Value PW_TYPE (\S+)
|
||||
Value STATE (\S+)
|
||||
Value LLABEL (\S+)
|
||||
Value RLABEL (\S+)
|
||||
Value VPN_OWNER (\S+)
|
||||
|
||||
Start
|
||||
^PWName\s+PeerIP -> Entries
|
||||
^PW\s+count
|
||||
^Headers:
|
||||
^Codes
|
||||
^\s*$$
|
||||
^.* -> Start
|
||||
|
||||
Entries
|
||||
^${PW_NAME}\s+${PEER}\s+${FEC}\s+${PW_TYPE}\s+${STATE}\s+${LLABEL}\s+${RLABEL}\s+${VPN_OWNER}\s*$$ -> Record
|
||||
^\s*$$
|
||||
^\S+\s*#\s*$$ -> End
|
||||
^.*#\s*$$ -> End
|
||||
^.* -> Entries
|
||||
19
netx_api/cli_templates/zte/zte_zxros_show_mac_l2vpn.textfsm
Normal file
19
netx_api/cli_templates/zte/zte_zxros_show_mac_l2vpn.textfsm
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
Value MAC (\S+)
|
||||
Value VPN (\S+)
|
||||
Value VLAN (\S+)
|
||||
Value OUTGOING (.*)
|
||||
Value ATTRIBUTE (\S+)
|
||||
|
||||
Start
|
||||
^MAC\s+VPN -> Entries
|
||||
^Total\s+MAC
|
||||
^Headers:
|
||||
^\s*$$
|
||||
^.* -> Start
|
||||
|
||||
Entries
|
||||
^${MAC}\s+${VPN}\s+${VLAN}\s+${OUTGOING}\s+${ATTRIBUTE}\s*$$ -> Record
|
||||
^\s*$$
|
||||
^\S+\s*#\s*$$ -> End
|
||||
^.*#\s*$$ -> End
|
||||
^.* -> Entries
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
Value INTERFACE (\S+)
|
||||
Value OPTIC_TYPE (\S+)
|
||||
Value WAVELENGTH (\S+)
|
||||
Value RX_POWER (\S+)
|
||||
Value TX_POWER (\S+)
|
||||
Value STATUS (\S+)
|
||||
|
||||
Start
|
||||
^Interface\s+Type -> Entries
|
||||
^\s*$$
|
||||
^.* -> Start
|
||||
|
||||
Entries
|
||||
^${INTERFACE}\s+${OPTIC_TYPE}\s+${WAVELENGTH}\s+${RX_POWER}\s+${TX_POWER}\s+${STATUS}(?:\s+\S+)?\s*$$ -> Record
|
||||
^\s*$$
|
||||
^\S+\s*#\s*$$ -> End
|
||||
^.*#\s*$$ -> End
|
||||
^.* -> Entries
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
Value Filldown PROCESS_ID (\d+)
|
||||
Value Required NEIGHBOR_ID (\S+)
|
||||
Value PRI (\S+)
|
||||
Value STATE (\S+)
|
||||
Value DEAD_TIME (\S+)
|
||||
Value ADDRESS (\S+)
|
||||
Value INTERFACE (\S+)
|
||||
|
||||
Start
|
||||
^\s*OSPF\s+Router\s+with\s+ID\s+\S+\s+\(Process\s+ID\s+${PROCESS_ID}\) -> Neighbors
|
||||
^Neighbor\s+ID -> Neighbors
|
||||
^\s*$$
|
||||
^.* -> Start
|
||||
|
||||
Neighbors
|
||||
^\s*OSPF\s+Router\s+with\s+ID\s+\S+\s+\(Process\s+ID\s+${PROCESS_ID}\) -> Neighbors
|
||||
^Neighbor\s+ID
|
||||
^Codes:
|
||||
^${NEIGHBOR_ID}\s+${PRI}\s+${STATE}\s+${DEAD_TIME}\s+${ADDRESS}\s+${INTERFACE}\s*$$ -> Record
|
||||
^\s*$$
|
||||
^\S+\s*#\s*$$ -> End
|
||||
^.*#\s*$$ -> End
|
||||
^.* -> Neighbors
|
||||
21
netx_api/cli_templates/zte/zte_zxros_show_vrrp_brief.textfsm
Normal file
21
netx_api/cli_templates/zte/zte_zxros_show_vrrp_brief.textfsm
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
Value INTERFACE (\S+)
|
||||
Value VR_ID (\S+)
|
||||
Value PRIORITY (\S+)
|
||||
Value TIME (\S+)
|
||||
Value FLAGS (\S*)
|
||||
Value STATE (\S+)
|
||||
Value MASTER_ADDR (\S+)
|
||||
Value VROUTER_ADDR (\S+)
|
||||
|
||||
Start
|
||||
^Interface\s+vrID -> Entries
|
||||
^\s*$$
|
||||
^.* -> Start
|
||||
|
||||
Entries
|
||||
^${INTERFACE}\s+${VR_ID}\s+${PRIORITY}\s+${TIME}\s+${FLAGS}\s+${STATE}\s+${MASTER_ADDR}\s+${VROUTER_ADDR}\s*$$ -> Record
|
||||
^${INTERFACE}\s+${VR_ID}\s+${PRIORITY}\s+${TIME}\s+${STATE}\s+${MASTER_ADDR}\s+${VROUTER_ADDR}\s*$$ -> Record
|
||||
^\s*$$
|
||||
^\S+\s*#\s*$$ -> End
|
||||
^.*#\s*$$ -> End
|
||||
^.* -> Entries
|
||||
Loading…
Add table
Add a link
Reference in a new issue