List failing profile/command/reason in batch.message (including unmatched and expand_all), and require whitespace/EOL after HH:MM:SS so prefixes like 56:16:10::/64 are parsed.
Co-authored-by: Cursor <cursoragent@cursor.com>
Write JSONL iteratively, flush via chunked PG execute_values, skip mega raw in DB, and yield bgp_route rows instead of building a full list.
Co-authored-by: Cursor <cursoragent@cursor.com>
Skip TextFSM for neighbor route tables (status vs plain, From, RD+VRF, heavy wraps); parse via callback and cover with live RR/VRF fixtures.
Co-authored-by: Cursor <cursoragent@cursor.com>
RR vpnv6 wrap lines with next-hop+metrics were collapsing ECMP legs; store raw_line_count/declared_total before DB truncate so collect stats stay accurate.
Co-authored-by: Cursor <cursoragent@cursor.com>
Show collecting over paused schedule, enqueue sync so collect_running flips immediately, and expose export on metric sheets with a card layout for Commands.
Co-authored-by: Cursor <cursoragent@cursor.com>
Decouple heavy CLI parse via ParsePool, keep ECMP/multi-RD keys, and expose per-command CLI lines vs DB rows with raw.txt export.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
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>
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>
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>
Split interface detail/route-class collects from the light lane so they no longer block other checks, and scope Collect Now busy state per task.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remap legacy if_intf items, skip duplicate CLI+metric work, hide aux command duplicates in the workbook, use profile titles for sheet tabs, sticky table headers, and let scheduled tasks trigger collect-now when idle.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop the route-summary profiles/parser/persist path; keep VRF list discover for bindings and strip it from default cutover templates.
Co-authored-by: Cursor <cursoragent@cursor.com>
Protect baselines and compare/migration-referenced batches from purge or delete, and let operators mark baselines and clean high-freq data manually.
Co-authored-by: Cursor <cursoragent@cursor.com>
Collectors apply RULE_KEYS (or index stems) into fsm_tables before normalize; parsers prefer FSM or hand-parse.
Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce ParseProfile-based business state tasks that reuse LLDP parsing for snapshot batches (separate from topology Fabric writes), with scheduler, export, and a Phase1 UI under network tasks.
Co-authored-by: Cursor <cursoragent@cursor.com>