Harden LLDP collect ops: edge list, job reclaim, and schedule hygiene.

Add fabric link browsing, conservative job retention, hour-based intervals, multi-worker start locking, and trim canvas discover UI in favor of the LLDP page.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-08-02 03:58:03 +08:00
parent d05ba0f1f7
commit e7f97b7cf6
18 changed files with 1126 additions and 479 deletions

View file

@ -236,7 +236,11 @@ const en = {
enabled: "Enable scheduled collect",
autoAddUnmatched: "Create SSH placeholder NEs for unmatched neighbors",
intervalDays: "Interval (days)",
interval: "Collect interval",
intervalUnitDays: "days",
intervalUnitHours: "hours",
concurrency: "Concurrency",
historyKeep: "Jobs to keep",
scope: "Scope",
scopeAll: "All managed NEs",
scopeSelected: "Selected NEs",
@ -245,6 +249,13 @@ const en = {
targetKeywordPh: "Name / IP / vendor",
jobsTitle: "Collect jobs",
jobDetailTitle: "Job details",
edgesTitle: "Fabric links",
edgeKeywordPh: "Endpoint name or IP",
edgeStatusAll: "All statuses",
edgeStatusActive: "Active",
edgeStatusMissing: "Missing",
missCount: "Miss cycles",
replacedBy: "Replaced",
kpi: {
nodes: "Fabric nodes",
edges: "Active links",
@ -268,6 +279,11 @@ const en = {
ended: "Ended",
neighbors: "Neighbors",
error: "Error",
aSide: "Side A",
bSide: "Side B",
aPort: "Port A",
bPort: "Port B",
lastSeen: "Last seen",
},
},
configSync: {
@ -1309,6 +1325,7 @@ const en = {
discoverLocatePeer: "Locate peer",
discoverLocateNe: "Locate NE",
discoverRawPreview: "Raw output preview (truncated when long; parsing uses full output)",
discoverGoLldp: "Details → LLDP links",
findNode: "Find",
findNodePh: "Type to search: name / IP / vendor",
findNoMatch: "No matching node on the canvas",
@ -1316,7 +1333,7 @@ const en = {
locateOnCanvas: "Click to locate on canvas",
openPortTraffic: "Open port traffic",
removeStale: "Clear missing ({{count}})",
removeStaleHint: "Delete red-marked missing edges",
removeStaleHint: "Manually delete red missing edges; scheduled collect also purges after 4 consecutive misses",
staleRemoved: "Removed {{count}} missing edge(s)",
connectHint: "Connect mode: click source node, then target (Esc or Select to exit)",
},