diff --git a/src/modules/network_element/fetch_link/ne_trace.go b/src/modules/network_element/fetch_link/ne_trace.go index 387633fa..b31117ae 100644 --- a/src/modules/network_element/fetch_link/ne_trace.go +++ b/src/modules/network_element/fetch_link/ne_trace.go @@ -10,31 +10,10 @@ import ( "be.ems/src/modules/network_element/model" ) -// NeTraceInfo 网元跟踪任务信息 -func NeTraceInfo(neInfo model.NeInfo, traceId string) (map[string]any, error) { - // 跟踪任务信息 - neUrl := fmt.Sprintf("http://%s:%d/api/rest/traceManagement/v1/subscriptions?id=%s", neInfo.IP, neInfo.Port, traceId) - resBytes, err := fetch.Get(neUrl, nil, 30_000) - if err != nil { - logger.Warnf("NeTraceInfo Get \"%s\"", neUrl) - logger.Errorf("NeTraceInfo %s", err.Error()) - return nil, fmt.Errorf("NeService Trace Info API Error") - } - - // 序列化结果 - var resData map[string]any - err = json.Unmarshal(resBytes, &resData) - if err != nil { - logger.Errorf("NeTraceInfo Unmarshal %s", err.Error()) - return nil, err - } - return resData, nil -} - // NeTraceAdd 网元跟踪任务新增 -func NeTraceAdd(neInfo model.NeInfo, data map[string]any) (map[string]any, error) { +func NeTraceAdd(neInfo model.NeInfo, data any) (map[string]any, error) { // 跟踪任务创建 - neUrl := fmt.Sprintf("http://%s:%d/api/rest/traceManagement/v1/subscriptions", neInfo.IP, neInfo.Port) + neUrl := fmt.Sprintf("http://%s:%d/api/rest/traceManagement/v2/%s/subscriptions", neInfo.IP, neInfo.Port, neInfo.NeType) resBytes, err := fetch.PostJSON(neUrl, data, nil) var resData map[string]any if err != nil { @@ -60,48 +39,17 @@ func NeTraceAdd(neInfo model.NeInfo, data map[string]any) (map[string]any, error return resData, nil } -// NeTraceEdit 网元跟踪任务编辑 -func NeTraceEdit(neInfo model.NeInfo, data map[string]any) (map[string]any, error) { - // 网元参数配置新增(array) - neUrl := fmt.Sprintf("http://%s:%d/api/rest/traceManagement/v1/subscriptions", neInfo.IP, neInfo.Port) - resBytes, err := fetch.PutJSON(neUrl, data, nil) - var resData map[string]any - if err != nil { - errStr := err.Error() - logger.Warnf("NeTraceEdit PUT \"%s\"", neUrl) - if strings.HasPrefix(errStr, "201") || strings.HasPrefix(errStr, "204") { - return resData, nil - } - logger.Errorf("NeTraceEdit %s", errStr) - return nil, fmt.Errorf("NeService Trace Edit API Error") - } - - // 200 成功无数据时 - if len(resBytes) == 0 { - return resData, nil - } - - // 序列化结果 - err = json.Unmarshal(resBytes, &resData) - if err != nil { - logger.Errorf("NeTraceEdit Unmarshal %s", err.Error()) - return nil, err - } - return resData, nil -} - // NeTraceDelete 网元跟踪任务删除 func NeTraceDelete(neInfo model.NeInfo, traceId string) (map[string]any, error) { - // 网元参数配置删除(array) - neUrl := fmt.Sprintf("http://%s:%d/api/rest/traceManagement/v1/subscriptions?id=%s", neInfo.IP, neInfo.Port, traceId) + neUrl := fmt.Sprintf("http://%s:%d/api/rest/traceManagement/v2/%s/subscriptions?id=%s", neInfo.IP, neInfo.Port, neInfo.NeType, traceId) resBytes, err := fetch.Delete(neUrl, nil) var resData map[string]any if err != nil { errStr := err.Error() - logger.Warnf("NeTraceDelete Delete \"%s\"", neUrl) if strings.HasPrefix(errStr, "201") || strings.HasPrefix(errStr, "204") { return resData, nil } + logger.Warnf("NeTraceDelete Delete \"%s\"", neUrl) logger.Errorf("NeTraceDelete %s", errStr) return nil, fmt.Errorf("NeService Trace Delete API Error") } diff --git a/src/modules/trace/service/packet.go b/src/modules/trace/service/packet.go index cb715cca..4c705374 100644 --- a/src/modules/trace/service/packet.go +++ b/src/modules/trace/service/packet.go @@ -149,7 +149,7 @@ func (s *Packet) LiveStart(taskNo, deviceName, filterBPF string, outputPCAP bool go s.capturePacketSource(taskInfo) s.taskMap.Store(taskNo, taskInfo) - return fmt.Sprintf("task no. %s initiated", taskNo), nil + return fmt.Sprintf("task no: %s initiated", taskNo), nil } // verifyDevice 检查网卡设备是否存在 @@ -400,7 +400,7 @@ func (s *Packet) outputPCAPFile(snaplen uint32, linktype layers.LinkType, output func (s *Packet) LiveFilter(taskNo, expr string) error { info, ok := s.taskMap.Load(taskNo) if !ok { - return fmt.Errorf("task no. %s not exist", taskNo) + return fmt.Errorf("task no: %s does not exist or has stopped", taskNo) } task := info.(*Task) task.Filter = expr @@ -416,7 +416,7 @@ func (s *Packet) LiveFilter(taskNo, expr string) error { func (s *Packet) LiveTimeout(taskNo string, seconds int) error { info, ok := s.taskMap.Load(taskNo) if !ok { - return fmt.Errorf("task no. %s not exist", taskNo) + return fmt.Errorf("task no: %s does not exist or has stopped", taskNo) } info.(*Task).Ticker.Reset(time.Duration(seconds) * time.Second) return nil @@ -426,7 +426,7 @@ func (s *Packet) LiveTimeout(taskNo string, seconds int) error { func (s *Packet) LiveStop(taskNo string) error { info, ok := s.taskMap.Load(taskNo) if !ok { - return fmt.Errorf("task no. %s not exist", taskNo) + return fmt.Errorf("task no: %s does not exist or has stopped", taskNo) } info.(*Task).Ticker.Reset(time.Millisecond) return nil diff --git a/src/modules/trace/trace.go b/src/modules/trace/trace.go index b2edf33d..273a2c4a 100644 --- a/src/modules/trace/trace.go +++ b/src/modules/trace/trace.go @@ -63,6 +63,10 @@ func Setup(router *gin.Engine) { middleware.PreAuthorize(nil), controller.NewPacket.KeepAlive, ) + packetGroup.GET("/filePull", + middleware.PreAuthorize(nil), + controller.NewPacket.FilePull, + ) } // 跟踪任务 网元HLR (免登录) @@ -104,11 +108,6 @@ func Setup(router *gin.Engine) { collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.task", collectlogs.BUSINESS_TYPE_INSERT)), controller.NewTraceTask.Add, ) - taskGroup.PUT("", - middleware.PreAuthorize(nil), - collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.task", collectlogs.BUSINESS_TYPE_UPDATE)), - controller.NewTraceTask.Edit, - ) taskGroup.DELETE("/:id", middleware.PreAuthorize(nil), collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.task", collectlogs.BUSINESS_TYPE_DELETE)), @@ -127,6 +126,10 @@ func Setup(router *gin.Engine) { middleware.PreAuthorize(nil), controller.NewTraceData.List, ) + taskDataGroup.GET("/:id", + middleware.PreAuthorize(nil), + controller.NewTraceData.Info, + ) taskDataGroup.DELETE("/:id", middleware.PreAuthorize(nil), collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.taskData", collectlogs.BUSINESS_TYPE_DELETE)),