Commit graph

524 commits

Author SHA1 Message Date
3a0de0d7fb Scale biz_state collects with dedicated workers and non-blocking UI poll.
Add PG claim/NE mutex, persist pool, and biz_state_worker replicas; fix double-SSH and row-count bugs; stop 32m collectNow while-loop from freezing page switches.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 17:00:37 +08:00
0eb65a839e Harden long biz_state collects: release DB during CLI and spool before flush.
Avoid idle Session disconnect after heavy timeout, and separate SSH collect from batched Postgres persist via disk spool.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 16:24:46 +08:00
c15ea00a23 Show collect start/end times on biz-state task and batch lists.
Helps tune schedule interval from last-run window and batch duration.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 15:58:32 +08:00
12b60c2a52 Mark interrupted biz-state batches as partial on API restart.
Clear stuck collect_running without re-dispatching; finalize in-flight commands as failed with interrupted_by_restart.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 15:44:16 +08:00
586ca69d3f Add BGP IPv4/IPv6 unicast neighbor in/out monitor profiles.
Catalog previously only had VPNv4/VPNv6 route items; global ipv4/ipv6 discover requires empty vrf so VRF CE peers are not mixed in.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 15:27:31 +08:00
6b35add5a4 Match BGP discover afi exactly so ipv4 does not hit vpnv4.
Apply the same global peer-group member expand to address-family ipv4; keep VRF direct-only. Cover IPv4 wrapped neighbor routes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 15:15:27 +08:00
0aa2bcbbe6 Fix VPNv6 wrap parsing and expand global BGP peer-group members.
Join IPv6 summary/route continuations; reject false FSM hits. For non-VRF AF activates, expand peer-group to member Neighbor IPs (VRF stays direct-only).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 15:10:35 +08:00
e89427297d Rename shared bgp_peer workbook sheet to BGP Status Summary.
Batch sheets are keyed by metric_id, so all AF summaries land in one tab; stop inheriting the first profile title (VPNv4).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 14:50:28 +08:00
c20a731f72 List aux under every export item; dedupe only in flat summary.
Shared aux CLIs (e.g. running-config bgp) now repeat per monitoring section; the trailing unique list still collapses duplicates.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 14:34:19 +08:00
9342c0c7ce Export collect commands with aux by default again.
Match live collect: include discover-backed aux CLIs in plan/export (and unbound sections); primary-only via include_aux=false.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 14:22:46 +08:00
f274d8ea72 Derive discover-backed aux automatically and fix BGP enrich join keys.
Overwrite explicit aux from discover_select at load time; join VRF CE on vrf,neighbor and global neighbors on afi,neighbor to avoid cross-AF collisions.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 14:17:12 +08:00
c14d4e81ff Point VRF BGP neighbor aux at config_bgp_peer (running-config bgp).
Discover and aux both use zte.config_bgp_peer; enrich remote_as/activate/route-maps from intent. Guard with tests so aux templates cannot introduce extra placeholders.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 11:56:01 +08:00
089c88d35e Show aux commands in biz-state UI; keep only config_vrf under BGP VRF summary.
Add an Aux column for each monitor item. Drop ip_route/ipv6_route as summary enrich aux so FIB stays a standalone collect profile. Export defaults to primary commands only.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 11:39:44 +08:00
67930bb348 Show unbound collect templates as # comments in export.
When a monitoring item has no concrete CLI, export its command_template commented with # instead of omitting it.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 11:24:54 +08:00
32deca1687 Add one-click export of biz-state collect commands.
Plan enabled monitoring items into concrete CLIs (with aux) and download as txt from the task detail modal.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 11:18:58 +08:00
1fcd613bc6 Fix empty BGP route false positives and add batch alias UX.
Skip Dest/Network headers when Total routes is 0; capture direction from match groups; expose workbook compare/data/sheet stats and prefer batch aliases in compare/cutover pickers.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 10:58:57 +08:00
f321413dbf Tighten biz-state profiles column widths for a denser layout.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 09:54:31 +08:00
ef56f33566 Fix biz-state profiles table horizontal scrollbar in modal.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 09:52:51 +08:00
908771baea Cache biz-state discover CLI results and improve bind table UX.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 09:48:43 +08:00
b9be545a75 Add opt-in per-NE CLI exec_policy for MCP/API exec.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 09:27:40 +08:00
bfac0b53c8 Enable BGP neighbor out profiles and show binding details on double-click.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 09:26:37 +08:00
dd8d46aebc Wire BGP neighbor in/out discover to config BGP peer intent.
Filter peers by AFI (and VRF pairs for CE), support zip/pair bindings in discover UI, and tag FIB rows with address_families.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 20:19:29 +08:00
3c3013dd73 Require explicit VRF bindings and toggle select-all in discover.
Drop default-all-VRF mode so collects must bind VRFs manually; discover starts with none selected and select-all toggles to deselect.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 18:55:59 +08:00
771f7e21c2 Improve VRF bind UX with modal and share CLI cache across lanes.
Open a blocking discover dialog for VRF selection, reorder profile columns with scroll/hints, and reuse shared collect cache between light/heavy monitor items.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 18:40:04 +08:00
3576e4a69c Add ZTE BGP VRF summary aux FIB collect with optional all-VRF expand.
Wire config_vrf plus ipv4/ipv6 forwarding as aux for VPN VRF summaries, and allow unbound items to expand all AF-filtered VRFs at collect time.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 17:23:34 +08:00
78f7032d7b Shorten compare pair labels from before/after to pre/post.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 16:28:00 +08:00
bf6e870b72 Unify compare header dividers and nest Result/Detail under Verdict like other groups.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 16:22:50 +08:00
dfcdeccaa6 Style compare column groups as bordered merged headers and simplify verdict text.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 16:15:33 +08:00
7f453ac2b9 Keep compare pair cells unchanged; mark Key/Compare/Display only with header dividers.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 16:05:35 +08:00
474fd8b889 Restore native fullscreen for compare board and strengthen Key/Compare/Display zones.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 15:57:03 +08:00
83be9110c8 Fix compare board scroll sticky headers and CSS fullscreen interactions.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 15:38:01 +08:00
28aa7cd87e Make compare sheet nav collapsible and hide run picker in fullscreen.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 15:16:53 +08:00
4c3c034c4c Polish cutover compare board for denser scan and clearer pass/diff cells.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 15:09:36 +08:00
0dc63bb96a Split ZTE L2VPN MAC outgoing into pw/AC/SID fields and skip separator rows.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 14:34:43 +08:00
4b38427679 Enable ZTE L2VPN MAC in the biz_state catalog so it appears as a monitor item.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 11:00:27 +08:00
ed11f5a60c Split L2VPN service instance into type (VPLS/VPWS) and name fields.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 19:26:31 +08:00
3414137daa Add ZTE l2vpn forwardinfo detail biz_state metric with TextFSM and compare sheet.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 19:14:25 +08:00
155db4af63 Parse optional 8X lane count in ZTE opticalinfo so QSFP-DD multi-lane powers stay aligned.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 17:08:40 +08:00
34a98fefcf Fix cutover compare tab switching and order detail columns Key/Compare/Display.
Remount BizComparePage per route so templates↔jobs no longer stuck; align column order.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 16:52:37 +08:00
3d2489041a Improve biz-compare UX with guided create, sheet toggles, and per-run delete.
Also sticky template field headers and biz-state pause/start endpoints.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 16:29:50 +08:00
9b3e98ede5 Preserve sheet_id/title on compare template import so split sheets round-trip.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 15:56:26 +08:00
83cf086d8c Show full copyable batch ids in biz-state/cutover UI and document batch list tools.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 15:26:46 +08:00
04850b942c Expose biz-monitor:read on API key scope UI and include it in create defaults.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 15:14:08 +08:00
e1bae6a14a Document listBizMonitors as the biz-monitor catalog entry before project_id tools.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 15:04:14 +08:00
ac4f115ee8 Harden ZTE biz-state parsers and default | one-line collect CLIs.
Append secondary IPs with M/S tags, skip ND6 clock banners, split optical power vs thresholds including QSFP lanes, broaden static-route egress ifnames, and add | one-line to ZTE collect templates except interface detail.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 14:49:41 +08:00
d900aca633 Allow blank MT when parsing ZTE ISIS adjacency.
IPv4 rows often omit MT; requiring a token skipped the whole line.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 14:03:28 +08:00
5ab08bb9b3 Rename interface_detail admin field to port_status.
Header is/up/down is operational port state, not brief-style Admin.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 11:34:05 +08:00
b6eab3ed8f Show original field names in biz-state workbook headers.
Stop using Chinese display_name for metric sheet columns so headers match the raw field keys.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 11:25:06 +08:00
ee375b144d Extend heavy CLI timeout to ~25m and show batch progress live.
Persist running commands early, bump command/row counts during collect, and poll the batches tab while a long show-interface run is in progress.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 11:14:30 +08:00
a6ea67a8bf Extract IP/MPLS/IPv6 MTU from ZTE interface detail.
Plain MTU alone missed sibling values in filtered show interface output; also clear Filldown between interfaces so optional IPv6 MTU does not leak.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 11:07:18 +08:00