feat: 信令跟踪功能接口

This commit is contained in:
TsMask
2024-09-30 21:04:01 +08:00
parent a6b869966f
commit afcf562bc5
6 changed files with 1471 additions and 152 deletions

View File

@@ -21,7 +21,7 @@ type PacketController struct {
packetService *traceService.Packet // 信令跟踪服务
}
// 网元跟踪网卡设备列表
// 信令跟踪网卡设备列表
//
// GET /devices
func (s *PacketController) Devices(c *gin.Context) {
@@ -29,22 +29,23 @@ func (s *PacketController) Devices(c *gin.Context) {
c.JSON(200, result.OkData(data))
}
// 网元跟踪开始
// 信令跟踪开始
//
// POST /start
func (s *PacketController) Start(c *gin.Context) {
language := ctx.AcceptLanguage(c)
var body struct {
Device string `json:"device" binding:"required"` // 网卡设备
TaskNo string `json:"taskNo" binding:"required"` // 任务编号
Output string `json:"output" ` // 输出PCAP文件路径为空则不输出
TaskNo string `json:"taskNo" binding:"required"` // 任务编号
Device string `json:"device" binding:"required"` // 网卡设备
Filter string `json:"filter" ` // 过滤表达式port 33030 or 33040
OutputPCAP bool `json:"outputPCAP" ` // 输出PCAP文件 默认false
}
if err := c.ShouldBindBodyWith(&body, binding.JSON); err != nil {
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
return
}
msg, err := s.packetService.LiveStart(body.TaskNo, body.Device, body.Output)
msg, err := s.packetService.LiveStart(body.TaskNo, body.Device, body.Filter, body.OutputPCAP)
if err != nil {
c.JSON(200, result.ErrMsg(i18n.TKey(language, err.Error())))
return
@@ -52,7 +53,7 @@ func (s *PacketController) Start(c *gin.Context) {
c.JSON(200, result.OkData(msg))
}
// 网元跟踪结束
// 信令跟踪结束
//
// POST /stop
func (s *PacketController) Stop(c *gin.Context) {
@@ -72,14 +73,14 @@ func (s *PacketController) Stop(c *gin.Context) {
c.JSON(200, result.Ok(nil))
}
// 网元跟踪过滤
// 信令跟踪过滤
//
// PUT /filter
func (s *PacketController) Filter(c *gin.Context) {
language := ctx.AcceptLanguage(c)
var body struct {
TaskNo string `json:"taskNo" binding:"required"` // 任务编号
Expr string `json:"expr" binding:"required"` // 过滤表达式port 33030 or 33040
Expr string `json:"expr" ` // 过滤表达式port 33030 or 33040
}
if err := c.ShouldBindBodyWith(&body, binding.JSON); err != nil {
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
@@ -93,19 +94,28 @@ func (s *PacketController) Filter(c *gin.Context) {
c.JSON(200, result.Ok(nil))
}
// 网元跟踪续期保活
// 信令跟踪续期保活
//
// PUT /keep-alive
func (s *PacketController) KeepAlive(c *gin.Context) {
language := ctx.AcceptLanguage(c)
var body struct {
IntervalIn int `json:"intervalIn" ` // 服务续约的频率默认设置为60秒
Duration int `json:"duration" ` // 服务失效的时间默认设置为120秒
TaskNo string `json:"taskNo" binding:"required"` // 任务编号
Duration int `json:"duration" ` // 服务失效的时间默认设置为120秒
}
err := c.ShouldBindBodyWith(&body, binding.JSON)
if err != nil {
if err := c.ShouldBindBodyWith(&body, binding.JSON); err != nil {
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
return
}
// 默认设置为120秒
if body.Duration <= 1 {
body.Duration = 120
}
if err := s.packetService.LiveTimeout(body.TaskNo, body.Duration); err != nil {
c.JSON(200, result.ErrMsg(i18n.TKey(language, err.Error())))
return
}
c.JSON(200, result.Ok(nil))
}