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

@ -18,6 +18,7 @@ import type {
CliMeta,
CliTargetListResponse,
UmeCliOverrideItem,
FabricEdge,
FabricSummary,
TopologyDiscoverJob,
TopologyViewGraph,
@ -907,6 +908,26 @@ export const patchTopologyEdgeStyle = (
export const fetchFabricSummary = () => apiGet<FabricSummary>("/v1/topology/fabric/summary");
export const fetchFabricEdges = (params?: {
keyword?: string;
status?: string;
source?: string;
nodeId?: string;
page?: number;
pageSize?: number;
}) => {
const p = new URLSearchParams();
if (params?.keyword) p.set("keyword", params.keyword);
if (params?.status) p.set("status", params.status);
if (params?.source) p.set("source", params.source);
if (params?.nodeId) p.set("node_id", params.nodeId);
p.set("page", String(Math.max(1, Number(params?.page || 1))));
p.set("page_size", String(Math.max(1, Math.min(200, Number(params?.pageSize || 20)))));
return apiGet<{ total: number; page: number; page_size: number; items: FabricEdge[] }>(
`/v1/topology/fabric/edges?${p.toString()}`,
);
};
export const startLldpDiscover = (body?: {
scope?: "all_inventory" | "ne_ids";
ne_ids?: string[];