Files
be.ems/src/modules/trace/trace.go

148 lines
4.0 KiB
Go

package trace
import (
"be.ems/src/framework/logger"
"be.ems/src/framework/middleware"
"be.ems/src/framework/middleware/collectlogs"
"be.ems/src/modules/trace/controller"
"be.ems/src/modules/trace/service"
"github.com/gin-gonic/gin"
)
// 模块路由注册
func Setup(router *gin.Engine) {
logger.Infof("开始加载 ====> trace 模块路由")
// 启动时需要的初始参数
InitLoad()
// 信令抓包
tcpdumpGroup := router.Group("/trace/tcpdump")
{
tcpdumpGroup.POST("/start",
middleware.PreAuthorize(nil),
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.tcpdump", collectlogs.BUSINESS_TYPE_OTHER)),
controller.NewTCPdump.DumpStart,
)
tcpdumpGroup.POST("/stop",
middleware.PreAuthorize(nil),
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.tcpdump", collectlogs.BUSINESS_TYPE_OTHER)),
controller.NewTCPdump.DumpStop,
)
tcpdumpGroup.POST("/upf",
middleware.PreAuthorize(nil),
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.tcpdump", collectlogs.BUSINESS_TYPE_OTHER)),
controller.NewTCPdump.UPFTrace,
)
}
// 信令跟踪
packetGroup := router.Group("/trace/packet")
{
packetGroup.GET("/devices",
middleware.PreAuthorize(nil),
controller.NewPacket.Devices,
)
packetGroup.POST("/start",
middleware.PreAuthorize(nil),
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.packet", collectlogs.BUSINESS_TYPE_OTHER)),
controller.NewPacket.Start,
)
packetGroup.POST("/stop",
middleware.PreAuthorize(nil),
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.packet", collectlogs.BUSINESS_TYPE_OTHER)),
controller.NewPacket.Stop,
)
packetGroup.PUT("/filter",
middleware.PreAuthorize(nil),
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.packet", collectlogs.BUSINESS_TYPE_OTHER)),
controller.NewPacket.Filter,
)
packetGroup.PUT("/keep-alive",
middleware.PreAuthorize(nil),
controller.NewPacket.KeepAlive,
)
packetGroup.GET("/filePull",
middleware.PreAuthorize(nil),
controller.NewPacket.FilePull,
)
}
// 跟踪任务 网元HLR (免登录)
taskHLRGroup := router.Group("/trace/task/hlr")
{
taskHLRGroup.GET("/list",
controller.NewTraceTaskHlr.List,
)
taskHLRGroup.DELETE("/:id",
controller.NewTraceTaskHlr.Remove,
)
taskHLRGroup.POST("/start",
controller.NewTraceTaskHlr.Start,
)
taskHLRGroup.POST("/stop",
controller.NewTraceTaskHlr.Stop,
)
taskHLRGroup.POST("/file",
controller.NewTraceTaskHlr.File,
)
taskHLRGroup.GET("/filePull",
controller.NewTraceTaskHlr.FilePull,
)
}
// 跟踪任务
taskGroup := router.Group("/trace/task")
{
taskGroup.GET("/list",
middleware.PreAuthorize(nil),
controller.NewTraceTask.List,
)
taskGroup.GET("/:id",
middleware.PreAuthorize(nil),
controller.NewTraceTask.Info,
)
taskGroup.POST("",
middleware.PreAuthorize(nil),
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.task", collectlogs.BUSINESS_TYPE_INSERT)),
controller.NewTraceTask.Add,
)
taskGroup.DELETE("/:id",
middleware.PreAuthorize(nil),
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.task", collectlogs.BUSINESS_TYPE_DELETE)),
controller.NewTraceTask.Remove,
)
taskGroup.GET("/filePull",
middleware.PreAuthorize(nil),
controller.NewTraceTask.FilePull,
)
}
// 跟踪数据
taskDataGroup := router.Group("/trace/data")
{
taskDataGroup.GET("/list",
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)),
controller.NewTraceData.Remove,
)
}
}
// InitLoad 初始参数
func InitLoad() {
// 创建跟踪任务信令数据通道UDP
if err := service.NewTraceTask.CreateUDP(false); err != nil {
logger.Errorf("socket udp init fail: %s", err.Error())
}
}