ref: 网元数据将网元特有拆分直连模块
This commit is contained in:
@@ -18,9 +18,9 @@ import (
|
||||
"be.ems/src/framework/utils/date"
|
||||
neDataModel "be.ems/src/modules/network_data/model"
|
||||
neDataService "be.ems/src/modules/network_data/service"
|
||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
||||
neModel "be.ems/src/modules/network_element/model"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||
traceService "be.ems/src/modules/trace/service"
|
||||
wsService "be.ems/src/modules/ws/service"
|
||||
)
|
||||
|
||||
@@ -11,10 +11,12 @@ import (
|
||||
"be.ems/src/modules/auth"
|
||||
"be.ems/src/modules/chart"
|
||||
"be.ems/src/modules/common"
|
||||
"be.ems/src/modules/core"
|
||||
"be.ems/src/modules/crontask"
|
||||
"be.ems/src/modules/monitor"
|
||||
networkdata "be.ems/src/modules/network_data"
|
||||
networkelement "be.ems/src/modules/network_element"
|
||||
networklink "be.ems/src/modules/network_link"
|
||||
"be.ems/src/modules/oauth2"
|
||||
"be.ems/src/modules/system"
|
||||
"be.ems/src/modules/tool"
|
||||
@@ -89,10 +91,15 @@ func ModulesRoute(app *gin.Engine) {
|
||||
// 通用模块
|
||||
common.Setup(app)
|
||||
|
||||
// 核心网模块
|
||||
core.Setup(app)
|
||||
|
||||
// 网元功能模块
|
||||
networkelement.Setup(app)
|
||||
// 网元数据模块
|
||||
networkdata.Setup(app)
|
||||
// 网元直连模块
|
||||
networklink.Setup(app)
|
||||
|
||||
// 跟踪模块
|
||||
trace.Setup(app)
|
||||
|
||||
@@ -10,20 +10,21 @@ import (
|
||||
"be.ems/src/framework/cron"
|
||||
"be.ems/src/framework/logger"
|
||||
"be.ems/src/framework/utils/file"
|
||||
neDataModel "be.ems/src/modules/network_data/model"
|
||||
neDataService "be.ems/src/modules/network_data/service"
|
||||
neModel "be.ems/src/modules/network_element/model"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
neLinkModel "be.ems/src/modules/network_link/model"
|
||||
neLinkService "be.ems/src/modules/network_link/service"
|
||||
)
|
||||
|
||||
var NewProcessor = &BackupExportUDMProcessor{
|
||||
count: 0,
|
||||
neInfoService: neService.NewNeInfo,
|
||||
backupService: neDataService.NewBackup,
|
||||
udmAuthService: neDataService.NewUDMAuthUser,
|
||||
udmSubService: neDataService.NewUDMSubUser,
|
||||
udmVOIPService: neDataService.NewUDMVOIPUser,
|
||||
udmVolteIMSService: neDataService.NewUDMVolteIMSUser,
|
||||
udmAuthService: neLinkService.NewUDMAuthUser,
|
||||
udmSubService: neLinkService.NewUDMSubUser,
|
||||
udmVOIPService: neLinkService.NewUDMVOIPUser,
|
||||
udmVolteIMSService: neLinkService.NewUDMVolteIMSUser,
|
||||
}
|
||||
|
||||
// BackupExportUDM 队列任务处理
|
||||
@@ -31,10 +32,10 @@ type BackupExportUDMProcessor struct {
|
||||
count int // 执行次数
|
||||
neInfoService *neService.NeInfo // 网元信息服务
|
||||
backupService *neDataService.Backup // 备份相关服务
|
||||
udmAuthService *neDataService.UDMAuthUser // UDM鉴权信息服务
|
||||
udmSubService *neDataService.UDMSubUser // UDM签约信息服务
|
||||
udmVOIPService *neDataService.UDMVOIPUser // UDMVOIP信息服务
|
||||
udmVolteIMSService *neDataService.UDMVolteIMSUser // UDMVolteIMS信息服务
|
||||
udmAuthService *neLinkService.UDMAuthUser // UDM鉴权信息服务
|
||||
udmSubService *neLinkService.UDMSubUser // UDM签约信息服务
|
||||
udmVOIPService *neLinkService.UDMVOIPUser // UDMVOIP信息服务
|
||||
udmVolteIMSService *neLinkService.UDMVolteIMSUser // UDMVolteIMS信息服务
|
||||
}
|
||||
|
||||
func (s *BackupExportUDMProcessor) Execute(data any) (any, error) {
|
||||
@@ -80,7 +81,7 @@ func (s *BackupExportUDMProcessor) Execute(data any) (any, error) {
|
||||
|
||||
// exportAuth 导出鉴权用户数据
|
||||
func (s BackupExportUDMProcessor) exportAuth(coreUid, neUid, fileType string) string {
|
||||
rows := s.udmAuthService.Find(neDataModel.UDMAuthUser{CoreUID: coreUid, NeUID: neUid})
|
||||
rows := s.udmAuthService.Find(neLinkModel.UDMAuthUser{CoreUID: coreUid, NeUID: neUid})
|
||||
if len(rows) <= 0 {
|
||||
return "no data"
|
||||
}
|
||||
@@ -134,7 +135,7 @@ func (s BackupExportUDMProcessor) exportAuth(coreUid, neUid, fileType string) st
|
||||
|
||||
// exportSub 导出签约用户数据
|
||||
func (s BackupExportUDMProcessor) exportSub(coreUid, neUid, fileType string) string {
|
||||
rows := s.udmSubService.Find(neDataModel.UDMSubUser{CoreUID: coreUid, NeUID: neUid})
|
||||
rows := s.udmSubService.Find(neLinkModel.UDMSubUser{CoreUID: coreUid, NeUID: neUid})
|
||||
if len(rows) <= 0 {
|
||||
return "no data"
|
||||
}
|
||||
@@ -182,7 +183,7 @@ func (s BackupExportUDMProcessor) exportSub(coreUid, neUid, fileType string) str
|
||||
|
||||
// exportVOIP 导出VOIP用户数据
|
||||
func (s BackupExportUDMProcessor) exportVOIP(coreUid, neUid, fileType string) string {
|
||||
rows := s.udmVOIPService.Find(neDataModel.UDMVOIPUser{CoreUID: coreUid, NeUID: neUid})
|
||||
rows := s.udmVOIPService.Find(neLinkModel.UDMVOIPUser{CoreUID: coreUid, NeUID: neUid})
|
||||
if len(rows) <= 0 {
|
||||
return "no data"
|
||||
}
|
||||
@@ -228,7 +229,7 @@ func (s BackupExportUDMProcessor) exportVOIP(coreUid, neUid, fileType string) st
|
||||
|
||||
// exportVolte 导出Volte用户数据
|
||||
func (s BackupExportUDMProcessor) exportVolte(coreUid, neUid, fileType string) string {
|
||||
rows := s.udmVolteIMSService.Find(neDataModel.UDMVolteIMSUser{CoreUID: coreUid, NeUID: neUid})
|
||||
rows := s.udmVolteIMSService.Find(neLinkModel.UDMVolteIMSUser{CoreUID: coreUid, NeUID: neUid})
|
||||
if len(rows) <= 0 {
|
||||
return "no data"
|
||||
}
|
||||
|
||||
@@ -5,22 +5,22 @@ import (
|
||||
|
||||
"be.ems/src/framework/cron"
|
||||
"be.ems/src/framework/logger"
|
||||
neDataService "be.ems/src/modules/network_data/service"
|
||||
neModel "be.ems/src/modules/network_element/model"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
neLinkService "be.ems/src/modules/network_link/service"
|
||||
)
|
||||
|
||||
var NewProcessor = &NeDataUDM{
|
||||
udmAuthService: neDataService.NewUDMAuthUser,
|
||||
udmSubService: neDataService.NewUDMSubUser,
|
||||
udmAuthService: neLinkService.NewUDMAuthUser,
|
||||
udmSubService: neLinkService.NewUDMSubUser,
|
||||
neInfoService: neService.NewNeInfo,
|
||||
count: 0,
|
||||
}
|
||||
|
||||
// NeDataUDM 网元配置文件定期备份
|
||||
type NeDataUDM struct {
|
||||
udmAuthService *neDataService.UDMAuthUser // UDM鉴权信息
|
||||
udmSubService *neDataService.UDMSubUser // UDM签约信息
|
||||
udmAuthService *neLinkService.UDMAuthUser // UDM鉴权信息
|
||||
udmSubService *neLinkService.UDMSubUser // UDM签约信息
|
||||
neInfoService *neService.NeInfo // 网元信息服务
|
||||
count int // 执行次数
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"be.ems/src/framework/logger"
|
||||
"be.ems/src/framework/middleware"
|
||||
"be.ems/src/framework/middleware/collectlogs"
|
||||
"be.ems/src/framework/middleware/repeat"
|
||||
"be.ems/src/modules/network_data/controller"
|
||||
"be.ems/src/modules/network_data/service"
|
||||
|
||||
@@ -106,115 +105,6 @@ func Setup(router *gin.Engine) {
|
||||
)
|
||||
}
|
||||
|
||||
// 网元IMS
|
||||
imsGroup := neDataGroup.Group("/ims")
|
||||
{
|
||||
imsGroup.GET("/cdr/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewIMS.CDRList,
|
||||
)
|
||||
imsGroup.DELETE("/cdr/:id",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.imsCDR", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewIMS.CDRRemove,
|
||||
)
|
||||
imsGroup.POST("/cdr/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.imsCDR", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewIMS.CDRExport,
|
||||
)
|
||||
imsGroup.GET("/session/num",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewIMS.UeSessionNum,
|
||||
)
|
||||
imsGroup.GET("/session/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewIMS.UeSessionList,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元SMSC
|
||||
smscGroup := neDataGroup.Group("/smsc")
|
||||
{
|
||||
smscGroup.GET("/cdr/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewSMSC.CDRList,
|
||||
)
|
||||
smscGroup.DELETE("/cdr/:id",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.smscCDR", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewSMSC.CDRRemove,
|
||||
)
|
||||
smscGroup.POST("/cdr/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.smscCDR", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewSMSC.CDRExport,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元SMF
|
||||
smfGroup := neDataGroup.Group("/smf")
|
||||
{
|
||||
smfGroup.GET("/cdr/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewSMF.CDRList,
|
||||
)
|
||||
smfGroup.DELETE("/cdr/:id",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.smfCDR", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewSMF.CDRRemove,
|
||||
)
|
||||
smfGroup.POST("/cdr/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.smfCDR", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewSMF.CDRExport,
|
||||
)
|
||||
smfGroup.GET("/sub/num",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewSMF.SubUserNum,
|
||||
)
|
||||
smfGroup.GET("/sub/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewSMF.SubUserList,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元AMF
|
||||
amfGroup := neDataGroup.Group("/amf")
|
||||
{
|
||||
amfGroup.GET("/ue/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewAMF.UEList,
|
||||
)
|
||||
amfGroup.DELETE("/ue/:id",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.amfUE", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewAMF.UERemove,
|
||||
)
|
||||
amfGroup.POST("/ue/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.amfUE", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewAMF.UEExport,
|
||||
)
|
||||
amfGroup.GET("/nb/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewAMF.NbInfoList,
|
||||
)
|
||||
amfGroup.GET("/nb/list-cfg",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewAMF.NbStateList,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元UPF
|
||||
upfGroup := neDataGroup.Group("/upf")
|
||||
{
|
||||
upfGroup.GET("/flow-total",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewUPF.FlowTotal,
|
||||
)
|
||||
}
|
||||
|
||||
// 备份数据
|
||||
backupGroup := neDataGroup.Group("/backup")
|
||||
{
|
||||
@@ -234,251 +124,6 @@ func Setup(router *gin.Engine) {
|
||||
)
|
||||
}
|
||||
|
||||
// 网元UDM 鉴权用户信息
|
||||
udmAuthGroup := neDataGroup.Group("/udm/auth")
|
||||
{
|
||||
udmAuthGroup.PUT("/reset",
|
||||
repeat.RepeatSubmit(5),
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmAuth", collectlogs.BUSINESS_TYPE_CLEAN)),
|
||||
controller.NewUDMAuth.ResetData,
|
||||
)
|
||||
udmAuthGroup.GET("/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewUDMAuth.List,
|
||||
)
|
||||
udmAuthGroup.GET("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewUDMAuth.Info,
|
||||
)
|
||||
udmAuthGroup.POST("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmAuth", collectlogs.BUSINESS_TYPE_INSERT)),
|
||||
controller.NewUDMAuth.Add,
|
||||
)
|
||||
udmAuthGroup.PUT("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmAuth", collectlogs.BUSINESS_TYPE_UPDATE)),
|
||||
controller.NewUDMAuth.Edit,
|
||||
)
|
||||
udmAuthGroup.DELETE("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmAuth", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewUDMAuth.Remove,
|
||||
)
|
||||
udmAuthGroup.GET("/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmAuth", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewUDMAuth.Export,
|
||||
)
|
||||
udmAuthGroup.POST("/import",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmAuth", collectlogs.BUSINESS_TYPE_IMPORT)),
|
||||
controller.NewUDMAuth.Import,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元UDM 签约用户信息
|
||||
udmSubGroup := neDataGroup.Group("/udm/sub")
|
||||
{
|
||||
udmSubGroup.PUT("/resetData/:neId",
|
||||
repeat.RepeatSubmit(5),
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmSub", collectlogs.BUSINESS_TYPE_CLEAN)),
|
||||
controller.NewUDMSub.ResetData,
|
||||
)
|
||||
udmSubGroup.GET("/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewUDMSub.List,
|
||||
)
|
||||
udmSubGroup.GET("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewUDMSub.Info,
|
||||
)
|
||||
udmSubGroup.POST("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmSub", collectlogs.BUSINESS_TYPE_INSERT)),
|
||||
controller.NewUDMSub.Add,
|
||||
)
|
||||
udmSubGroup.PUT("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmSub", collectlogs.BUSINESS_TYPE_UPDATE)),
|
||||
controller.NewUDMSub.Edit,
|
||||
)
|
||||
udmSubGroup.DELETE("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmSub", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewUDMSub.Remove,
|
||||
)
|
||||
udmSubGroup.GET("/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmSub", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewUDMSub.Export,
|
||||
)
|
||||
udmSubGroup.POST("/import",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmSub", collectlogs.BUSINESS_TYPE_IMPORT)),
|
||||
controller.NewUDMSub.Import,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元UDM VOIP用户信息
|
||||
udmVOIPGroup := neDataGroup.Group("/udm/voip")
|
||||
{
|
||||
udmVOIPGroup.PUT("/reset",
|
||||
repeat.RepeatSubmit(5),
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVOIP", collectlogs.BUSINESS_TYPE_CLEAN)),
|
||||
controller.NewUDMVOIP.ResetData,
|
||||
)
|
||||
udmVOIPGroup.GET("/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewUDMVOIP.List,
|
||||
)
|
||||
udmVOIPGroup.GET("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewUDMVOIP.Info,
|
||||
)
|
||||
udmVOIPGroup.POST("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVOIP", collectlogs.BUSINESS_TYPE_INSERT)),
|
||||
controller.NewUDMVOIP.Add,
|
||||
)
|
||||
udmVOIPGroup.DELETE("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVOIP", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewUDMVOIP.Remove,
|
||||
)
|
||||
udmVOIPGroup.GET("/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVOIP", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewUDMVOIP.Export,
|
||||
)
|
||||
udmVOIPGroup.POST("/import",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVOIP", collectlogs.BUSINESS_TYPE_IMPORT)),
|
||||
controller.NewUDMVOIP.Import,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元UDM VolteIMS用户信息
|
||||
udmVolteIMSGroup := neDataGroup.Group("/udm/volte-ims")
|
||||
{
|
||||
udmVolteIMSGroup.PUT("/reset",
|
||||
repeat.RepeatSubmit(5),
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVolteIMS", collectlogs.BUSINESS_TYPE_CLEAN)),
|
||||
controller.NewUDMVolteIMS.ResetData,
|
||||
)
|
||||
udmVolteIMSGroup.GET("/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewUDMVolteIMS.List,
|
||||
)
|
||||
udmVolteIMSGroup.GET("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewUDMVolteIMS.Info,
|
||||
)
|
||||
udmVolteIMSGroup.POST("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVolteIMS", collectlogs.BUSINESS_TYPE_INSERT)),
|
||||
controller.NewUDMVolteIMS.Add,
|
||||
)
|
||||
udmVolteIMSGroup.DELETE("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVolteIMS", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewUDMVolteIMS.Remove,
|
||||
)
|
||||
udmVolteIMSGroup.GET("/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVolteIMS", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewUDMVolteIMS.Export,
|
||||
)
|
||||
udmVolteIMSGroup.POST("/import",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVolteIMS", collectlogs.BUSINESS_TYPE_IMPORT)),
|
||||
controller.NewUDMVolteIMS.Import,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元MME
|
||||
mmeGroup := neDataGroup.Group("/mme")
|
||||
{
|
||||
mmeGroup.GET("/ue/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewMME.UEList,
|
||||
)
|
||||
mmeGroup.DELETE("/ue/:id",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.mmeUE", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewMME.UERemove,
|
||||
)
|
||||
mmeGroup.POST("/ue/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.mmeUE", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewMME.UEExport,
|
||||
)
|
||||
mmeGroup.GET("/nb/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewMME.NbInfoList,
|
||||
)
|
||||
mmeGroup.GET("/nb/list-cfg",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewMME.NbStateList,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元SGWC
|
||||
sgwcGroup := neDataGroup.Group("/sgwc")
|
||||
{
|
||||
sgwcGroup.GET("/cdr/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewSGWC.CDRList,
|
||||
)
|
||||
sgwcGroup.DELETE("/cdr/:id",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.sgwcCDR", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewSGWC.CDRRemove,
|
||||
)
|
||||
sgwcGroup.POST("/cdr/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.sgwcCDR", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewSGWC.CDRExport,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元PCF
|
||||
pcfGroup := neDataGroup.Group("/pcf")
|
||||
{
|
||||
pcfGroup.GET("/rule/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewPCF.RuleInfoList,
|
||||
)
|
||||
pcfGroup.POST("/rule",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.pcfRule", collectlogs.BUSINESS_TYPE_IMPORT)),
|
||||
controller.NewPCF.RuleInfoAdd,
|
||||
)
|
||||
pcfGroup.PUT("/rule",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.pcfRule", collectlogs.BUSINESS_TYPE_UPDATE)),
|
||||
controller.NewPCF.RuleInfoEdit,
|
||||
)
|
||||
pcfGroup.DELETE("/rule",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.pcfRule", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewPCF.RuleInfoRemove,
|
||||
)
|
||||
pcfGroup.GET("/rule/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.pcfRule", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewPCF.RuleInfoExport,
|
||||
)
|
||||
pcfGroup.PUT("/rule/import",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.pcfRule", collectlogs.BUSINESS_TYPE_IMPORT)),
|
||||
controller.NewPCF.RuleInfoImport,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// InitLoad 初始参数
|
||||
|
||||
@@ -9,9 +9,9 @@ import (
|
||||
"be.ems/src/framework/reqctx"
|
||||
"be.ems/src/framework/resp"
|
||||
"be.ems/src/framework/utils/parse"
|
||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
||||
"be.ems/src/modules/network_element/model"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||
traceService "be.ems/src/modules/trace/service"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
@@ -2,16 +2,15 @@ package controller
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"be.ems/src/framework/i18n"
|
||||
"be.ems/src/framework/reqctx"
|
||||
"be.ems/src/framework/resp"
|
||||
"be.ems/src/framework/utils/parse"
|
||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
||||
"be.ems/src/modules/network_element/model"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
@@ -345,7 +344,6 @@ func (s NeInfoController) Info(c *gin.Context) {
|
||||
// @Description Network element information addition
|
||||
// @Router /ne/info [post]
|
||||
func (s NeInfoController) Add(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var body model.NeInfo
|
||||
err := c.ShouldBindBodyWithJSON(&body)
|
||||
if err != nil {
|
||||
@@ -358,68 +356,7 @@ func (s NeInfoController) Add(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
// 检查属性值唯一
|
||||
uniqueInfo := s.neInfoService.CheckUniqueCoreIdAndNeType(body.CoreUID, body.NeUID, 0)
|
||||
if !uniqueInfo {
|
||||
// 网元信息操作【%s】失败,同类型下标识已存在
|
||||
msg := i18n.TTemplate(language, "neInfo.errKeyExists", map[string]any{"key": body.NeUID})
|
||||
c.JSON(200, resp.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
// 获取网元状态是否正常
|
||||
body.ServerState, err = neFetchlink.NeState(body)
|
||||
if err != nil {
|
||||
body.Status = 0
|
||||
} else {
|
||||
// 网元状态设置为在线
|
||||
body.Status = 1
|
||||
if parse.Boolean(body.ServerState["standby"]) {
|
||||
body.Status = 3
|
||||
}
|
||||
// 下发网管配置信息给网元
|
||||
if _, err = neFetchlink.NeConfigOMC(body); err != nil {
|
||||
body.Status = 2
|
||||
}
|
||||
}
|
||||
|
||||
loginUserName := reqctx.LoginUserToUserName(c)
|
||||
// 新增Version信息
|
||||
neVersion := model.NeVersion{
|
||||
CoreUID: body.CoreUID,
|
||||
NeUID: body.NeUID,
|
||||
NeType: body.NeType,
|
||||
CreateBy: loginUserName,
|
||||
}
|
||||
// 新增License信息
|
||||
neLicense := model.NeLicense{
|
||||
CoreUID: body.CoreUID,
|
||||
NeUID: body.NeUID,
|
||||
NeType: body.NeType,
|
||||
CreateBy: loginUserName,
|
||||
}
|
||||
|
||||
// 已有网元可获取的信息
|
||||
if body.ServerState != nil {
|
||||
if v, ok := body.ServerState["version"]; ok && v != nil {
|
||||
neVersion.Name = "-"
|
||||
neVersion.Path = "-"
|
||||
neVersion.Version = fmt.Sprint(v)
|
||||
}
|
||||
if v, ok := body.ServerState["capability"]; ok && v != nil {
|
||||
neLicense.Capability = parse.Number(v)
|
||||
}
|
||||
if v, ok := body.ServerState["sn"]; ok && v != nil {
|
||||
neLicense.SerialNum = fmt.Sprint(v)
|
||||
}
|
||||
if v, ok := body.ServerState["expire"]; ok && v != nil {
|
||||
neLicense.ExpiryDate = fmt.Sprint(v)
|
||||
neLicense.Status = "1"
|
||||
}
|
||||
}
|
||||
|
||||
s.neVersionService.Insert(neVersion)
|
||||
s.neLicenseService.Insert(neLicense)
|
||||
body.CreateBy = loginUserName
|
||||
insertId := s.neInfoService.Insert(body)
|
||||
if insertId > 0 {
|
||||
@@ -456,15 +393,6 @@ func (s NeInfoController) Edit(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
// 检查属性值唯一
|
||||
uniqueInfo := s.neInfoService.CheckUniqueCoreIdAndNeType(body.CoreUID, body.NeUID, body.ID)
|
||||
if !uniqueInfo {
|
||||
// 网元信息操作【%s】失败,同类型下标识已存在
|
||||
msg := i18n.TTemplate(language, "neInfo.errKeyExists", map[string]any{"key": body.NeUID})
|
||||
c.JSON(200, resp.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查是否存在
|
||||
neInfo := s.neInfoService.FindById(body.ID, false)
|
||||
if neInfo.ID != body.ID {
|
||||
@@ -472,68 +400,8 @@ func (s NeInfoController) Edit(c *gin.Context) {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "neInfo.noData")))
|
||||
return
|
||||
}
|
||||
// 赋予主机ID
|
||||
if neInfo.HostIDs != "" && len(body.Hosts) > 0 {
|
||||
hostIDs := strings.Split(neInfo.HostIDs, ",")
|
||||
for index, id := range hostIDs {
|
||||
body.Hosts[index].ID = parse.Number(id)
|
||||
}
|
||||
}
|
||||
|
||||
// 获取网元状态是否正常
|
||||
body.ServerState, err = neFetchlink.NeState(neInfo)
|
||||
if err != nil {
|
||||
body.Status = 0
|
||||
} else {
|
||||
// 网元状态设置为在线
|
||||
body.Status = 1
|
||||
if parse.Boolean(body.ServerState["standby"]) {
|
||||
body.Status = 3
|
||||
}
|
||||
// 下发网管配置信息给网元
|
||||
if _, err = neFetchlink.NeConfigOMC(body); err != nil {
|
||||
body.Status = 2
|
||||
}
|
||||
}
|
||||
|
||||
loginUserName := reqctx.LoginUserToUserName(c)
|
||||
neLicense := s.neLicenseService.FindByCoreUidAndNeUid(neInfo.CoreUID, neInfo.NeUID)
|
||||
neVersion := s.neVersionService.FindByCoreUidAndNeUid(neInfo.CoreUID, neInfo.NeUID)
|
||||
|
||||
// 已有网元可获取的信息
|
||||
if body.ServerState != nil {
|
||||
if v, ok := body.ServerState["version"]; ok && v != nil {
|
||||
neVersion.Name = "-"
|
||||
neVersion.Path = "-"
|
||||
neVersion.Version = fmt.Sprint(v)
|
||||
neVersion.UpdateBy = loginUserName
|
||||
}
|
||||
if v, ok := body.ServerState["capability"]; ok && v != nil {
|
||||
neLicense.Capability = parse.Number(v)
|
||||
}
|
||||
if v, ok := body.ServerState["sn"]; ok && v != nil {
|
||||
neLicense.SerialNum = fmt.Sprint(v)
|
||||
}
|
||||
if v, ok := body.ServerState["expire"]; ok && v != nil {
|
||||
neLicense.ExpiryDate = fmt.Sprint(v)
|
||||
neLicense.Status = "1"
|
||||
neLicense.UpdateBy = loginUserName
|
||||
}
|
||||
}
|
||||
|
||||
if neVersion.ID <= 0 {
|
||||
if neVersion.NeType != body.NeType {
|
||||
neVersion.NeType = body.NeType
|
||||
}
|
||||
s.neVersionService.Update(neVersion)
|
||||
}
|
||||
if neLicense.ID <= 0 {
|
||||
if neLicense.NeType != body.NeType {
|
||||
neLicense.NeType = body.NeType
|
||||
}
|
||||
s.neLicenseService.Update(neLicense)
|
||||
}
|
||||
|
||||
body.UpdateBy = loginUserName
|
||||
rows := s.neInfoService.Update(body)
|
||||
if rows > 0 {
|
||||
|
||||
@@ -10,9 +10,9 @@ import (
|
||||
"be.ems/src/framework/reqctx"
|
||||
"be.ems/src/framework/resp"
|
||||
"be.ems/src/framework/utils/parse"
|
||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
||||
"be.ems/src/modules/network_element/model"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||
)
|
||||
|
||||
// 实例化控制层 NeLicenseController 结构体
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
package model
|
||||
|
||||
// CoreInfo 核心网_基础信息 core_info
|
||||
type CoreInfo struct {
|
||||
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 核心网ID
|
||||
CoreUID string `json:"coreUid" gorm:"column:core_uid"` // 核心网唯一标识
|
||||
CoreName string `json:"coreName" gorm:"column:core_name"` // 核心网名称
|
||||
CoreSN string `json:"coreSN" gorm:"column:core_sn"` // 核心网序列号
|
||||
OmcId string `json:"omcId" gorm:"column:omc_id"` // OMC安装生成的唯一编码
|
||||
Remark string `json:"remark" gorm:"column:remark"` // 备注
|
||||
CreateBy string `json:"createBy" gorm:"column:create_by"` // 创建者
|
||||
CreateTime int64 `json:"createTime" gorm:"column:create_time"` // 创建时间
|
||||
UpdateBy string `json:"updateBy" gorm:"column:update_by"` // 更新者
|
||||
UpdateTime int64 `json:"updateTime" gorm:"column:update_time"` // 更新时间
|
||||
}
|
||||
|
||||
// TableName 表名称
|
||||
func (*CoreInfo) TableName() string {
|
||||
return "core_info"
|
||||
}
|
||||
@@ -4,7 +4,7 @@ package model
|
||||
type NeInfo struct {
|
||||
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 网元ID
|
||||
CoreUID string `json:"coreUid" gorm:"column:core_uid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `json:"neUid" gorm:"column:ne_uid" binding:"required"` // 网元唯一标识
|
||||
NeUID string `json:"neUid" gorm:"column:ne_uid"` // 网元唯一标识
|
||||
NeType string `json:"neType" gorm:"column:ne_type" binding:"required"` // 网元类型
|
||||
NeName string `json:"neName" gorm:"column:ne_name"` // 网元名称
|
||||
IPAddr string `json:"ipAddr" gorm:"column:ip_addr" binding:"required"` // 网元服务IP
|
||||
|
||||
@@ -202,28 +202,6 @@ func (r NeInfo) SelectNeInfoByCoreUidAndNeUid(coreUid, neUid string) model.NeInf
|
||||
return row
|
||||
}
|
||||
|
||||
// CheckUniqueCoreIdAndNeType 校验同类型下标识是否唯一
|
||||
func (r NeInfo) CheckUniqueCoreIdAndNeType(neInfo model.NeInfo) int64 {
|
||||
tx := db.DB("").Model(&model.NeInfo{})
|
||||
// 查询条件拼接
|
||||
if neInfo.NeType != "" {
|
||||
tx = tx.Where("ne_type = ?", neInfo.NeType)
|
||||
}
|
||||
if neInfo.CoreUID != "" {
|
||||
tx = tx.Where("core_uid = ?", neInfo.CoreUID)
|
||||
}
|
||||
if neInfo.NeUID != "" {
|
||||
tx = tx.Where("ne_uid = ?", neInfo.NeUID)
|
||||
}
|
||||
// 查询数据
|
||||
var id int64 = 0
|
||||
if err := tx.Limit(1).Select("id").Find(&id).Error; err != nil {
|
||||
logger.Errorf("query find err => %v", err.Error())
|
||||
return id
|
||||
}
|
||||
return id
|
||||
}
|
||||
|
||||
// UpdateState 修改状态
|
||||
func (r NeInfo) UpdateState(id int64, status int64) int64 {
|
||||
if id <= 0 {
|
||||
|
||||
@@ -16,9 +16,9 @@ import (
|
||||
"be.ems/src/framework/telnet"
|
||||
"be.ems/src/framework/utils/generate"
|
||||
"be.ems/src/framework/utils/parse"
|
||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
||||
"be.ems/src/modules/network_element/model"
|
||||
"be.ems/src/modules/network_element/repository"
|
||||
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||
)
|
||||
|
||||
// 实例化服务层 NeInfo 结构体
|
||||
@@ -240,6 +240,27 @@ func (r NeInfo) FindById(id int64, bandHost bool) model.NeInfo {
|
||||
|
||||
// Insert 新增信息
|
||||
func (r NeInfo) Insert(neInfo model.NeInfo) int64 {
|
||||
if neInfo.CoreUID == "" {
|
||||
return 0
|
||||
}
|
||||
neInfo.NeUID = strings.ToUpper(generate.Code(8))
|
||||
|
||||
// 获取网元状态是否正常
|
||||
serverState, err := neFetchlink.NeState(neInfo)
|
||||
if err != nil {
|
||||
neInfo.Status = 0
|
||||
} else {
|
||||
// 网元状态设置为在线
|
||||
neInfo.Status = 1
|
||||
if parse.Boolean(serverState["standby"]) {
|
||||
neInfo.Status = 3
|
||||
}
|
||||
// 下发网管配置信息给网元
|
||||
if _, err = neFetchlink.NeConfigOMC(neInfo); err != nil {
|
||||
neInfo.Status = 2
|
||||
}
|
||||
}
|
||||
|
||||
// 主机信息新增
|
||||
if neInfo.Hosts != nil {
|
||||
uuid := generate.Code(4)
|
||||
@@ -258,6 +279,39 @@ func (r NeInfo) Insert(neInfo model.NeInfo) int64 {
|
||||
|
||||
insertId := r.neInfoRepository.Insert(neInfo)
|
||||
if insertId > 0 {
|
||||
// 新增Version信息
|
||||
neVersion := model.NeVersion{
|
||||
CoreUID: neInfo.CoreUID,
|
||||
NeUID: neInfo.NeUID,
|
||||
NeType: neInfo.NeType,
|
||||
CreateBy: neInfo.CreateBy,
|
||||
}
|
||||
if v, ok := serverState["version"]; ok && v != nil {
|
||||
neVersion.Name = "-"
|
||||
neVersion.Path = "-"
|
||||
neVersion.Version = fmt.Sprint(v)
|
||||
}
|
||||
NewNeVersion.Insert(neVersion)
|
||||
|
||||
// 新增License信息
|
||||
neLicense := model.NeLicense{
|
||||
CoreUID: neInfo.CoreUID,
|
||||
NeUID: neInfo.NeUID,
|
||||
NeType: neInfo.NeType,
|
||||
CreateBy: neInfo.CreateBy,
|
||||
}
|
||||
if v, ok := serverState["capability"]; ok && v != nil {
|
||||
neLicense.Capability = parse.Number(v)
|
||||
}
|
||||
if v, ok := serverState["sn"]; ok && v != nil {
|
||||
neLicense.SerialNum = fmt.Sprint(v)
|
||||
}
|
||||
if v, ok := serverState["expire"]; ok && v != nil {
|
||||
neLicense.ExpiryDate = fmt.Sprint(v)
|
||||
neLicense.Status = "1"
|
||||
}
|
||||
NewNeLicense.Insert(neLicense)
|
||||
|
||||
r.RefreshByCoreUidAndNeUid(neInfo.CoreUID, neInfo.NeUID) // 刷新缓存
|
||||
}
|
||||
return insertId
|
||||
@@ -265,12 +319,32 @@ func (r NeInfo) Insert(neInfo model.NeInfo) int64 {
|
||||
|
||||
// Update 修改信息
|
||||
func (r NeInfo) Update(neInfo model.NeInfo) int64 {
|
||||
// 获取网元状态是否正常
|
||||
serverState, err := neFetchlink.NeState(neInfo)
|
||||
if err != nil {
|
||||
neInfo.Status = 0
|
||||
} else {
|
||||
// 网元状态设置为在线
|
||||
neInfo.Status = 1
|
||||
if parse.Boolean(serverState["standby"]) {
|
||||
neInfo.Status = 3
|
||||
}
|
||||
// 下发网管配置信息给网元
|
||||
if _, err = neFetchlink.NeConfigOMC(neInfo); err != nil {
|
||||
neInfo.Status = 2
|
||||
}
|
||||
}
|
||||
|
||||
// 主机信息更新
|
||||
if neInfo.Hosts != nil {
|
||||
if neInfo.HostIDs != "" && len(neInfo.Hosts) > 0 {
|
||||
hostIDs := strings.Split(neInfo.HostIDs, ",")
|
||||
for index, id := range hostIDs {
|
||||
neInfo.Hosts[index].ID = parse.Number(id)
|
||||
}
|
||||
uuid := generate.Code(4)
|
||||
for _, host := range neInfo.Hosts {
|
||||
if host.ID != 0 {
|
||||
host.Title = fmt.Sprintf("%s_%d_%s", neInfo.NeName, host.Port, uuid)
|
||||
host.Title = fmt.Sprintf("%s_%d_%s", neInfo.NeType, host.Port, uuid)
|
||||
host.GroupID = "1"
|
||||
host.UpdateBy = neInfo.UpdateBy
|
||||
r.neHostService.Update(host)
|
||||
@@ -280,6 +354,41 @@ func (r NeInfo) Update(neInfo model.NeInfo) int64 {
|
||||
|
||||
num := r.neInfoRepository.Update(neInfo)
|
||||
if num > 0 {
|
||||
// 版本信息更新
|
||||
neVersion := NewNeVersion.FindByCoreUidAndNeUid(neInfo.CoreUID, neInfo.NeUID)
|
||||
if neVersion.ID != 0 {
|
||||
if neVersion.NeType != neInfo.NeType {
|
||||
neVersion.NeType = neInfo.NeType
|
||||
}
|
||||
if v, ok := serverState["version"]; ok && v != neVersion.Version {
|
||||
neVersion.Name = "-"
|
||||
neVersion.Path = "-"
|
||||
neVersion.Version = fmt.Sprint(v)
|
||||
}
|
||||
neVersion.UpdateBy = neInfo.UpdateBy
|
||||
NewNeVersion.Update(neVersion)
|
||||
}
|
||||
|
||||
// License信息更新
|
||||
neLicense := NewNeLicense.FindByCoreUidAndNeUid(neInfo.CoreUID, neInfo.NeUID)
|
||||
if neLicense.ID != 0 {
|
||||
if neLicense.NeType != neInfo.NeType {
|
||||
neLicense.NeType = neInfo.NeType
|
||||
}
|
||||
if v, ok := serverState["capability"]; ok && v != nil {
|
||||
neLicense.Capability = parse.Number(v)
|
||||
}
|
||||
if v, ok := serverState["sn"]; ok && v != nil {
|
||||
neLicense.SerialNum = fmt.Sprint(v)
|
||||
}
|
||||
if v, ok := serverState["expire"]; ok && v != nil {
|
||||
neLicense.ExpiryDate = fmt.Sprint(v)
|
||||
neLicense.Status = "1"
|
||||
}
|
||||
neLicense.UpdateBy = neInfo.UpdateBy
|
||||
NewNeLicense.Update(neLicense)
|
||||
}
|
||||
|
||||
r.RefreshByCoreUidAndNeUid(neInfo.CoreUID, neInfo.NeUID) // 刷新缓存
|
||||
}
|
||||
return num
|
||||
@@ -324,18 +433,6 @@ func (r NeInfo) DeleteByIds(ids []int64) (int64, error) {
|
||||
return 0, fmt.Errorf("delete fail")
|
||||
}
|
||||
|
||||
// CheckUniqueCoreUidAndNeUid 校验同类型下标识是否唯一
|
||||
func (r NeInfo) CheckUniqueCoreIdAndNeType(coreUid, neUid string, id int64) bool {
|
||||
uniqueId := r.neInfoRepository.CheckUniqueCoreIdAndNeType(model.NeInfo{
|
||||
CoreUID: coreUid,
|
||||
NeUID: neUid,
|
||||
})
|
||||
if uniqueId == id {
|
||||
return true
|
||||
}
|
||||
return uniqueId == 0
|
||||
}
|
||||
|
||||
// NeRunSSHClient 网元主机的SSH客户端-为创建相关连接,注意结束后 Close()
|
||||
func (r NeInfo) NeRunSSHClient(coreUid, neUid string) (*ssh.ConnSSH, error) {
|
||||
neInfo := r.FindByCoreUidAndNeUid(coreUid, neUid)
|
||||
|
||||
@@ -9,9 +9,9 @@ import (
|
||||
|
||||
"be.ems/src/framework/ssh"
|
||||
"be.ems/src/framework/utils/file"
|
||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
||||
"be.ems/src/modules/network_element/model"
|
||||
"be.ems/src/modules/network_element/repository"
|
||||
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||
)
|
||||
|
||||
// 实例化服务层 NeVersion 结构体
|
||||
|
||||
@@ -10,8 +10,8 @@ import (
|
||||
"be.ems/src/framework/utils/parse"
|
||||
"be.ems/src/modules/network_data/model"
|
||||
neDataService "be.ems/src/modules/network_data/service"
|
||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
@@ -10,8 +10,8 @@ import (
|
||||
"be.ems/src/framework/utils/parse"
|
||||
"be.ems/src/modules/network_data/model"
|
||||
neDataService "be.ems/src/modules/network_data/service"
|
||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
@@ -10,8 +10,8 @@ import (
|
||||
"be.ems/src/framework/utils/parse"
|
||||
"be.ems/src/modules/network_data/model"
|
||||
neDataService "be.ems/src/modules/network_data/service"
|
||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
@@ -6,8 +6,8 @@ import (
|
||||
"be.ems/src/framework/i18n"
|
||||
"be.ems/src/framework/reqctx"
|
||||
"be.ems/src/framework/resp"
|
||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
@@ -11,6 +11,7 @@ import (
|
||||
"be.ems/src/modules/network_data/model"
|
||||
neDataService "be.ems/src/modules/network_data/service"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
"be.ems/src/modules/network_link/service"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
@@ -18,7 +19,7 @@ import (
|
||||
var NewSGWC = &SGWCController{
|
||||
neInfoService: neService.NewNeInfo,
|
||||
cdrEventService: neDataService.NewCDREventSGWC,
|
||||
UDMExtendService: neDataService.NewUDMExtend,
|
||||
UDMExtendService: service.NewUDMExtend,
|
||||
}
|
||||
|
||||
// 网元SGWC
|
||||
@@ -27,7 +28,7 @@ var NewSGWC = &SGWCController{
|
||||
type SGWCController struct {
|
||||
neInfoService *neService.NeInfo // 网元信息服务
|
||||
cdrEventService *neDataService.CDREventSGWC // CDR会话事件服务
|
||||
UDMExtendService *neDataService.UDMExtend // UDM用户信息服务
|
||||
UDMExtendService *service.UDMExtend // UDM用户信息服务
|
||||
}
|
||||
|
||||
// CDR会话列表
|
||||
@@ -11,8 +11,9 @@ import (
|
||||
"be.ems/src/framework/utils/parse"
|
||||
"be.ems/src/modules/network_data/model"
|
||||
neDataService "be.ems/src/modules/network_data/service"
|
||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||
"be.ems/src/modules/network_link/service"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
@@ -21,7 +22,7 @@ import (
|
||||
var NewSMF = &SMFController{
|
||||
neInfoService: neService.NewNeInfo,
|
||||
cdrEventService: neDataService.NewCDREventSMF,
|
||||
UDMExtendService: neDataService.NewUDMExtend,
|
||||
UDMExtendService: service.NewUDMExtend,
|
||||
}
|
||||
|
||||
// 网元SMF
|
||||
@@ -30,7 +31,7 @@ var NewSMF = &SMFController{
|
||||
type SMFController struct {
|
||||
neInfoService *neService.NeInfo // 网元信息服务
|
||||
cdrEventService *neDataService.CDREventSMF // CDR会话事件服务
|
||||
UDMExtendService *neDataService.UDMExtend // UDM用户信息服务
|
||||
UDMExtendService *service.UDMExtend // UDM用户信息服务
|
||||
}
|
||||
|
||||
// CDR会话列表
|
||||
@@ -13,17 +13,17 @@ import (
|
||||
"be.ems/src/framework/telnet"
|
||||
"be.ems/src/framework/utils/file"
|
||||
"be.ems/src/framework/utils/parse"
|
||||
"be.ems/src/modules/network_data/model"
|
||||
neDataService "be.ems/src/modules/network_data/service"
|
||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||
"be.ems/src/modules/network_link/model"
|
||||
"be.ems/src/modules/network_link/service"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// 实例化控制层 UDMAuthController 结构体
|
||||
var NewUDMAuth = &UDMAuthController{
|
||||
udmAuthService: neDataService.NewUDMAuthUser,
|
||||
udmAuthService: service.NewUDMAuthUser,
|
||||
neInfoService: neService.NewNeInfo,
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ var NewUDMAuth = &UDMAuthController{
|
||||
//
|
||||
// PATH /udm/auth
|
||||
type UDMAuthController struct {
|
||||
udmAuthService *neDataService.UDMAuthUser // UDM鉴权信息服务
|
||||
udmAuthService *service.UDMAuthUser // UDM鉴权信息服务
|
||||
neInfoService *neService.NeInfo // 网元信息服务
|
||||
}
|
||||
|
||||
@@ -13,16 +13,16 @@ import (
|
||||
"be.ems/src/framework/telnet"
|
||||
"be.ems/src/framework/utils/file"
|
||||
"be.ems/src/framework/utils/parse"
|
||||
"be.ems/src/modules/network_data/model"
|
||||
neDataService "be.ems/src/modules/network_data/service"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
"be.ems/src/modules/network_link/model"
|
||||
"be.ems/src/modules/network_link/service"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// 实例化控制层 UDMSubController 结构体
|
||||
var NewUDMSub = &UDMSubController{
|
||||
udmSubService: neDataService.NewUDMSubUser,
|
||||
udmSubService: service.NewUDMSubUser,
|
||||
neInfoService: neService.NewNeInfo,
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ var NewUDMSub = &UDMSubController{
|
||||
//
|
||||
// PATH /udm/sub
|
||||
type UDMSubController struct {
|
||||
udmSubService *neDataService.UDMSubUser // UDM签约信息服务
|
||||
udmSubService *service.UDMSubUser // UDM签约信息服务
|
||||
neInfoService *neService.NeInfo // 网元信息服务
|
||||
}
|
||||
|
||||
@@ -13,16 +13,16 @@ import (
|
||||
"be.ems/src/framework/telnet"
|
||||
"be.ems/src/framework/utils/file"
|
||||
"be.ems/src/framework/utils/parse"
|
||||
"be.ems/src/modules/network_data/model"
|
||||
neDataService "be.ems/src/modules/network_data/service"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
"be.ems/src/modules/network_link/model"
|
||||
"be.ems/src/modules/network_link/service"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// 实例化控制层 UDMVOIPController 结构体
|
||||
var NewUDMVOIP = &UDMVOIPController{
|
||||
udmVOIPService: neDataService.NewUDMVOIPUser,
|
||||
udmVOIPService: service.NewUDMVOIPUser,
|
||||
neInfoService: neService.NewNeInfo,
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ var NewUDMVOIP = &UDMVOIPController{
|
||||
//
|
||||
// PATH /udm/voip
|
||||
type UDMVOIPController struct {
|
||||
udmVOIPService *neDataService.UDMVOIPUser // UDMVOIP信息服务
|
||||
udmVOIPService *service.UDMVOIPUser // UDMVOIP信息服务
|
||||
neInfoService *neService.NeInfo // 网元信息服务
|
||||
}
|
||||
|
||||
@@ -13,16 +13,16 @@ import (
|
||||
"be.ems/src/framework/telnet"
|
||||
"be.ems/src/framework/utils/file"
|
||||
"be.ems/src/framework/utils/parse"
|
||||
"be.ems/src/modules/network_data/model"
|
||||
neDataService "be.ems/src/modules/network_data/service"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
"be.ems/src/modules/network_link/model"
|
||||
"be.ems/src/modules/network_link/service"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// 实例化控制层 UDMVolteIMSController 结构体
|
||||
var NewUDMVolteIMS = &UDMVolteIMSController{
|
||||
udmVolteIMSService: neDataService.NewUDMVolteIMSUser,
|
||||
udmVolteIMSService: service.NewUDMVolteIMSUser,
|
||||
neInfoService: neService.NewNeInfo,
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ var NewUDMVolteIMS = &UDMVolteIMSController{
|
||||
//
|
||||
// PATH /udm/volte-ims
|
||||
type UDMVolteIMSController struct {
|
||||
udmVolteIMSService *neDataService.UDMVolteIMSUser // UDMVolteIMS信息服务
|
||||
udmVolteIMSService *service.UDMVolteIMSUser // UDMVolteIMS信息服务
|
||||
neInfoService *neService.NeInfo // 网元信息服务
|
||||
}
|
||||
|
||||
373
src/modules/network_link/network_link.go
Normal file
373
src/modules/network_link/network_link.go
Normal file
@@ -0,0 +1,373 @@
|
||||
package networklink
|
||||
|
||||
import (
|
||||
"be.ems/src/framework/logger"
|
||||
"be.ems/src/framework/middleware"
|
||||
"be.ems/src/framework/middleware/collectlogs"
|
||||
"be.ems/src/framework/middleware/repeat"
|
||||
"be.ems/src/modules/network_link/controller"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// 模块路由注册
|
||||
func Setup(router *gin.Engine) {
|
||||
logger.Infof("开始加载 ====> network_link 模块路由")
|
||||
|
||||
neDataGroup := router.Group("/ne/link")
|
||||
|
||||
// 网元IMS
|
||||
imsGroup := neDataGroup.Group("/ims")
|
||||
{
|
||||
imsGroup.GET("/cdr/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewIMS.CDRList,
|
||||
)
|
||||
imsGroup.DELETE("/cdr/:id",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.imsCDR", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewIMS.CDRRemove,
|
||||
)
|
||||
imsGroup.POST("/cdr/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.imsCDR", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewIMS.CDRExport,
|
||||
)
|
||||
imsGroup.GET("/session/num",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewIMS.UeSessionNum,
|
||||
)
|
||||
imsGroup.GET("/session/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewIMS.UeSessionList,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元SMSC
|
||||
smscGroup := neDataGroup.Group("/smsc")
|
||||
{
|
||||
smscGroup.GET("/cdr/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewSMSC.CDRList,
|
||||
)
|
||||
smscGroup.DELETE("/cdr/:id",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.smscCDR", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewSMSC.CDRRemove,
|
||||
)
|
||||
smscGroup.POST("/cdr/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.smscCDR", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewSMSC.CDRExport,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元SMF
|
||||
smfGroup := neDataGroup.Group("/smf")
|
||||
{
|
||||
smfGroup.GET("/cdr/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewSMF.CDRList,
|
||||
)
|
||||
smfGroup.DELETE("/cdr/:id",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.smfCDR", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewSMF.CDRRemove,
|
||||
)
|
||||
smfGroup.POST("/cdr/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.smfCDR", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewSMF.CDRExport,
|
||||
)
|
||||
smfGroup.GET("/sub/num",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewSMF.SubUserNum,
|
||||
)
|
||||
smfGroup.GET("/sub/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewSMF.SubUserList,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元AMF
|
||||
amfGroup := neDataGroup.Group("/amf")
|
||||
{
|
||||
amfGroup.GET("/ue/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewAMF.UEList,
|
||||
)
|
||||
amfGroup.DELETE("/ue/:id",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.amfUE", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewAMF.UERemove,
|
||||
)
|
||||
amfGroup.POST("/ue/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.amfUE", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewAMF.UEExport,
|
||||
)
|
||||
amfGroup.GET("/nb/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewAMF.NbInfoList,
|
||||
)
|
||||
amfGroup.GET("/nb/list-cfg",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewAMF.NbStateList,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元UPF
|
||||
upfGroup := neDataGroup.Group("/upf")
|
||||
{
|
||||
upfGroup.GET("/flow-total",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewUPF.FlowTotal,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元UDM 鉴权用户信息
|
||||
udmAuthGroup := neDataGroup.Group("/udm/auth")
|
||||
{
|
||||
udmAuthGroup.PUT("/reset",
|
||||
repeat.RepeatSubmit(5),
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmAuth", collectlogs.BUSINESS_TYPE_CLEAN)),
|
||||
controller.NewUDMAuth.ResetData,
|
||||
)
|
||||
udmAuthGroup.GET("/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewUDMAuth.List,
|
||||
)
|
||||
udmAuthGroup.GET("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewUDMAuth.Info,
|
||||
)
|
||||
udmAuthGroup.POST("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmAuth", collectlogs.BUSINESS_TYPE_INSERT)),
|
||||
controller.NewUDMAuth.Add,
|
||||
)
|
||||
udmAuthGroup.PUT("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmAuth", collectlogs.BUSINESS_TYPE_UPDATE)),
|
||||
controller.NewUDMAuth.Edit,
|
||||
)
|
||||
udmAuthGroup.DELETE("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmAuth", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewUDMAuth.Remove,
|
||||
)
|
||||
udmAuthGroup.GET("/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmAuth", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewUDMAuth.Export,
|
||||
)
|
||||
udmAuthGroup.POST("/import",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmAuth", collectlogs.BUSINESS_TYPE_IMPORT)),
|
||||
controller.NewUDMAuth.Import,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元UDM 签约用户信息
|
||||
udmSubGroup := neDataGroup.Group("/udm/sub")
|
||||
{
|
||||
udmSubGroup.PUT("/resetData/:neId",
|
||||
repeat.RepeatSubmit(5),
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmSub", collectlogs.BUSINESS_TYPE_CLEAN)),
|
||||
controller.NewUDMSub.ResetData,
|
||||
)
|
||||
udmSubGroup.GET("/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewUDMSub.List,
|
||||
)
|
||||
udmSubGroup.GET("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewUDMSub.Info,
|
||||
)
|
||||
udmSubGroup.POST("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmSub", collectlogs.BUSINESS_TYPE_INSERT)),
|
||||
controller.NewUDMSub.Add,
|
||||
)
|
||||
udmSubGroup.PUT("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmSub", collectlogs.BUSINESS_TYPE_UPDATE)),
|
||||
controller.NewUDMSub.Edit,
|
||||
)
|
||||
udmSubGroup.DELETE("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmSub", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewUDMSub.Remove,
|
||||
)
|
||||
udmSubGroup.GET("/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmSub", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewUDMSub.Export,
|
||||
)
|
||||
udmSubGroup.POST("/import",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmSub", collectlogs.BUSINESS_TYPE_IMPORT)),
|
||||
controller.NewUDMSub.Import,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元UDM VOIP用户信息
|
||||
udmVOIPGroup := neDataGroup.Group("/udm/voip")
|
||||
{
|
||||
udmVOIPGroup.PUT("/reset",
|
||||
repeat.RepeatSubmit(5),
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVOIP", collectlogs.BUSINESS_TYPE_CLEAN)),
|
||||
controller.NewUDMVOIP.ResetData,
|
||||
)
|
||||
udmVOIPGroup.GET("/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewUDMVOIP.List,
|
||||
)
|
||||
udmVOIPGroup.GET("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewUDMVOIP.Info,
|
||||
)
|
||||
udmVOIPGroup.POST("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVOIP", collectlogs.BUSINESS_TYPE_INSERT)),
|
||||
controller.NewUDMVOIP.Add,
|
||||
)
|
||||
udmVOIPGroup.DELETE("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVOIP", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewUDMVOIP.Remove,
|
||||
)
|
||||
udmVOIPGroup.GET("/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVOIP", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewUDMVOIP.Export,
|
||||
)
|
||||
udmVOIPGroup.POST("/import",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVOIP", collectlogs.BUSINESS_TYPE_IMPORT)),
|
||||
controller.NewUDMVOIP.Import,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元UDM VolteIMS用户信息
|
||||
udmVolteIMSGroup := neDataGroup.Group("/udm/volte-ims")
|
||||
{
|
||||
udmVolteIMSGroup.PUT("/reset",
|
||||
repeat.RepeatSubmit(5),
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVolteIMS", collectlogs.BUSINESS_TYPE_CLEAN)),
|
||||
controller.NewUDMVolteIMS.ResetData,
|
||||
)
|
||||
udmVolteIMSGroup.GET("/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewUDMVolteIMS.List,
|
||||
)
|
||||
udmVolteIMSGroup.GET("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewUDMVolteIMS.Info,
|
||||
)
|
||||
udmVolteIMSGroup.POST("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVolteIMS", collectlogs.BUSINESS_TYPE_INSERT)),
|
||||
controller.NewUDMVolteIMS.Add,
|
||||
)
|
||||
udmVolteIMSGroup.DELETE("",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVolteIMS", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewUDMVolteIMS.Remove,
|
||||
)
|
||||
udmVolteIMSGroup.GET("/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVolteIMS", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewUDMVolteIMS.Export,
|
||||
)
|
||||
udmVolteIMSGroup.POST("/import",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.udmVolteIMS", collectlogs.BUSINESS_TYPE_IMPORT)),
|
||||
controller.NewUDMVolteIMS.Import,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元MME
|
||||
mmeGroup := neDataGroup.Group("/mme")
|
||||
{
|
||||
mmeGroup.GET("/ue/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewMME.UEList,
|
||||
)
|
||||
mmeGroup.DELETE("/ue/:id",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.mmeUE", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewMME.UERemove,
|
||||
)
|
||||
mmeGroup.POST("/ue/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.mmeUE", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewMME.UEExport,
|
||||
)
|
||||
mmeGroup.GET("/nb/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewMME.NbInfoList,
|
||||
)
|
||||
mmeGroup.GET("/nb/list-cfg",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewMME.NbStateList,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元SGWC
|
||||
sgwcGroup := neDataGroup.Group("/sgwc")
|
||||
{
|
||||
sgwcGroup.GET("/cdr/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewSGWC.CDRList,
|
||||
)
|
||||
sgwcGroup.DELETE("/cdr/:id",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.sgwcCDR", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewSGWC.CDRRemove,
|
||||
)
|
||||
sgwcGroup.POST("/cdr/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.sgwcCDR", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewSGWC.CDRExport,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元PCF
|
||||
pcfGroup := neDataGroup.Group("/pcf")
|
||||
{
|
||||
pcfGroup.GET("/rule/list",
|
||||
middleware.AuthorizeUser(nil),
|
||||
controller.NewPCF.RuleInfoList,
|
||||
)
|
||||
pcfGroup.POST("/rule",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.pcfRule", collectlogs.BUSINESS_TYPE_IMPORT)),
|
||||
controller.NewPCF.RuleInfoAdd,
|
||||
)
|
||||
pcfGroup.PUT("/rule",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.pcfRule", collectlogs.BUSINESS_TYPE_UPDATE)),
|
||||
controller.NewPCF.RuleInfoEdit,
|
||||
)
|
||||
pcfGroup.DELETE("/rule",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.pcfRule", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewPCF.RuleInfoRemove,
|
||||
)
|
||||
pcfGroup.GET("/rule/export",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.pcfRule", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewPCF.RuleInfoExport,
|
||||
)
|
||||
pcfGroup.PUT("/rule/import",
|
||||
middleware.AuthorizeUser(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.pcfRule", collectlogs.BUSINESS_TYPE_IMPORT)),
|
||||
controller.NewPCF.RuleInfoImport,
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
|
||||
"be.ems/src/framework/database/db"
|
||||
"be.ems/src/framework/logger"
|
||||
"be.ems/src/modules/network_data/model"
|
||||
"be.ems/src/modules/network_link/model"
|
||||
)
|
||||
|
||||
// 实例化数据层 UDMAuthUser 结构体
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
|
||||
"be.ems/src/framework/database/db"
|
||||
"be.ems/src/framework/logger"
|
||||
"be.ems/src/modules/network_data/model"
|
||||
"be.ems/src/modules/network_link/model"
|
||||
)
|
||||
|
||||
// 实例化数据层 UDMExtend 结构体
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
|
||||
"be.ems/src/framework/database/db"
|
||||
"be.ems/src/framework/logger"
|
||||
"be.ems/src/modules/network_data/model"
|
||||
"be.ems/src/modules/network_link/model"
|
||||
)
|
||||
|
||||
// 实例化数据层 UDMSubUser 结构体
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
|
||||
"be.ems/src/framework/database/db"
|
||||
"be.ems/src/framework/logger"
|
||||
"be.ems/src/modules/network_data/model"
|
||||
"be.ems/src/modules/network_link/model"
|
||||
)
|
||||
|
||||
// 实例化数据层 UDMVOIPUser 结构体
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
|
||||
"be.ems/src/framework/database/db"
|
||||
"be.ems/src/framework/logger"
|
||||
"be.ems/src/modules/network_data/model"
|
||||
"be.ems/src/modules/network_link/model"
|
||||
)
|
||||
|
||||
// 实例化数据层 UDMVolteIMSUser 结构体
|
||||
@@ -6,9 +6,9 @@ import (
|
||||
"strings"
|
||||
|
||||
"be.ems/src/framework/database/redis"
|
||||
"be.ems/src/modules/network_data/model"
|
||||
"be.ems/src/modules/network_data/repository"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
"be.ems/src/modules/network_link/model"
|
||||
"be.ems/src/modules/network_link/repository"
|
||||
)
|
||||
|
||||
// 实例化服务层 UDMAuthUser 结构体
|
||||
@@ -1,8 +1,8 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"be.ems/src/modules/network_data/model"
|
||||
"be.ems/src/modules/network_data/repository"
|
||||
"be.ems/src/modules/network_link/model"
|
||||
"be.ems/src/modules/network_link/repository"
|
||||
)
|
||||
|
||||
// 实例化服务层 UDMExtend 结构体
|
||||
@@ -6,9 +6,9 @@ import (
|
||||
"strings"
|
||||
|
||||
"be.ems/src/framework/database/redis"
|
||||
"be.ems/src/modules/network_data/model"
|
||||
"be.ems/src/modules/network_data/repository"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
"be.ems/src/modules/network_link/model"
|
||||
"be.ems/src/modules/network_link/repository"
|
||||
)
|
||||
|
||||
// 实例化服务层 UDMSubUser 结构体
|
||||
@@ -6,9 +6,9 @@ import (
|
||||
"strings"
|
||||
|
||||
"be.ems/src/framework/database/redis"
|
||||
"be.ems/src/modules/network_data/model"
|
||||
"be.ems/src/modules/network_data/repository"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
"be.ems/src/modules/network_link/model"
|
||||
"be.ems/src/modules/network_link/repository"
|
||||
)
|
||||
|
||||
// 实例化服务层 UDMVOIPUser 结构体
|
||||
@@ -6,9 +6,9 @@ import (
|
||||
"strings"
|
||||
|
||||
"be.ems/src/framework/database/redis"
|
||||
"be.ems/src/modules/network_data/model"
|
||||
"be.ems/src/modules/network_data/repository"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
"be.ems/src/modules/network_link/model"
|
||||
"be.ems/src/modules/network_link/repository"
|
||||
)
|
||||
|
||||
// 实例化服务层 UDMVolteIMSUser 结构体
|
||||
@@ -81,7 +81,7 @@ func (s *TCPdump) DumpStart(coreUid, neUid, cmdStr string) (string, error) {
|
||||
// 日志文件行号
|
||||
PIDMap := s.logFileLastLine(neInfo.NeType, sshClient)
|
||||
PIDMap["neType"] = neInfo.NeType
|
||||
PIDMap["rmUid"] = neInfo.NeUID
|
||||
PIDMap["neUid"] = neInfo.NeUID
|
||||
PIDMap["taskCode"] = taskCode
|
||||
PIDMap["pid"] = outputPID
|
||||
PIDMap["cmd"] = sendCmd
|
||||
@@ -179,10 +179,10 @@ func (s *TCPdump) logFileLastLineToFile(PIDMap map[string]string, sshClient *ssh
|
||||
defer sftpClient.Close()
|
||||
|
||||
neType := PIDMap["neType"]
|
||||
neId := PIDMap["neId"]
|
||||
neUid := PIDMap["neUid"]
|
||||
taskCode := PIDMap["taskCode"]
|
||||
// 存放文件目录 /usr/local/omc/tcpdump/udm/001/20240817104241
|
||||
neDirTemp := fmt.Sprintf("/usr/local/omc/tcpdump/%s/%s/%s", strings.ToLower(neType), neId, taskCode)
|
||||
neDirTemp := fmt.Sprintf("/usr/local/omc/tcpdump/%s/%s/%s", strings.ToLower(neType), neUid, taskCode)
|
||||
sshClient.RunCMD(fmt.Sprintf("sudo mkdir -p %s && sudo chmod 755 -R /usr/local/omc/tcpdump", neDirTemp))
|
||||
|
||||
lastLineMap := s.logFileLastLine(neType, sshClient)
|
||||
|
||||
@@ -11,9 +11,9 @@ import (
|
||||
"be.ems/src/framework/socket"
|
||||
"be.ems/src/framework/utils/date"
|
||||
"be.ems/src/framework/utils/parse"
|
||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
||||
neModel "be.ems/src/modules/network_element/model"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||
"be.ems/src/modules/trace/model"
|
||||
"be.ems/src/modules/trace/repository"
|
||||
wsService "be.ems/src/modules/ws/service"
|
||||
|
||||
@@ -7,9 +7,9 @@ import (
|
||||
|
||||
"be.ems/src/framework/ssh"
|
||||
"be.ems/src/framework/utils/date"
|
||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
||||
neModel "be.ems/src/modules/network_element/model"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||
"be.ems/src/modules/trace/model"
|
||||
"be.ems/src/modules/trace/repository"
|
||||
)
|
||||
|
||||
@@ -6,8 +6,8 @@ import (
|
||||
|
||||
"be.ems/src/framework/logger"
|
||||
"be.ems/src/framework/resp"
|
||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||
)
|
||||
|
||||
// GetNeState 获取网元服务状态
|
||||
|
||||
Reference in New Issue
Block a user