From 872ebc0376398daa694df263a6f0460a90aae81c Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 26 Apr 2026 00:57:24 +0800 Subject: [PATCH] =?UTF-8?q?Fix:=20=E4=BF=AE=E5=A4=8D=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=90=8D=E5=92=8C=E6=8B=93=E6=89=91=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修正存储文件名: network-topology.db -> devices.json - 移除handleGetDevices中的重复builder重建逻辑 - 移除冗余的调试日志输出 - 统一日志术语: database -> storage - 确保添加设备时正确更新builder和存储 --- cmd/main.go | 23 ++++++++--------------- internal/topology/builder.go | 9 --------- 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/cmd/main.go b/cmd/main.go index 37531e4..376f0d2 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -31,10 +31,10 @@ type App struct { // NewApp 创建应用 func NewApp(cfg *config.Config) *App { - // 初始化数据库 - store, err := storage.NewStorage("network-topology.db") + // 初始化存储(使用JSON文件) + store, err := storage.NewStorage("devices.json") if err != nil { - log.Printf("Warning: failed to initialize database: %v", err) + log.Printf("Warning: failed to initialize storage: %v", err) } app := &App{ @@ -257,21 +257,14 @@ func (app *App) handleTopology(w http.ResponseWriter, r *http.Request) { func (app *App) handleGetDevices(w http.ResponseWriter, r *http.Request) { var devices []models.Device - // 优先从数据库获取 + // 优先从存储获取 if app.storage != nil { var err error devices, err = app.storage.GetAllDevices() if err != nil { - log.Printf("Error: failed to get devices from database: %v", err) + log.Printf("Error: failed to get devices from storage: %v", err) // 降级到 builder获取 devices = app.builder.GetDevices() - } else { - // 重新构建设备到builder中,确保拓扑正确 - app.builder = topology.NewBuilder() - for _, dev := range devices { - app.builder.AddDevice(dev) - } - log.Printf("Rebuilt topology with %d devices from database", len(devices)) } log.Printf("Returning %d devices from storage", len(devices)) } else { @@ -319,12 +312,12 @@ func (app *App) handleAddDevice(w http.ResponseWriter, r *http.Request) { app.builder.AddDevice(*dev) - // 保存到数据库 + // 保存到存储 if app.storage != nil { if err := app.storage.SaveDevice(dev); err != nil { - log.Printf("Error: failed to save device %s to database: %v", req.IP, err) + log.Printf("Error: failed to save device %s to storage: %v", req.IP, err) } else { - log.Printf("Device %s saved to database successfully", req.IP) + log.Printf("Device %s saved to storage successfully", req.IP) } } diff --git a/internal/topology/builder.go b/internal/topology/builder.go index 8cff1da..7b0114b 100644 --- a/internal/topology/builder.go +++ b/internal/topology/builder.go @@ -50,15 +50,6 @@ func (b *Builder) Build() models.TopologyGraph { } nodeMap[device.IP] = node graph.Nodes = append(graph.Nodes, node) - - // 调试信息 - fmt.Printf("Node added: %s (%s) with %d neighbors\n", - device.IP, device.Type, len(device.Neighbors)) - for i, neighbor := range device.Neighbors { - fmt.Printf(" Neighbor %d: RemoteIP=%s, RemoteDevice=%s, LocalIf=%s, RemoteIf=%s\n", - i+1, neighbor.RemoteIP, neighbor.RemoteDevice, - neighbor.LocalInterface, neighbor.RemoteInterface) - } } // 构建边(基于邻居信息)