ref: 网元数据将网元特有拆分直连模块
This commit is contained in:
@@ -18,9 +18,9 @@ import (
|
|||||||
"be.ems/src/framework/utils/date"
|
"be.ems/src/framework/utils/date"
|
||||||
neDataModel "be.ems/src/modules/network_data/model"
|
neDataModel "be.ems/src/modules/network_data/model"
|
||||||
neDataService "be.ems/src/modules/network_data/service"
|
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"
|
neModel "be.ems/src/modules/network_element/model"
|
||||||
neService "be.ems/src/modules/network_element/service"
|
neService "be.ems/src/modules/network_element/service"
|
||||||
|
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||||
traceService "be.ems/src/modules/trace/service"
|
traceService "be.ems/src/modules/trace/service"
|
||||||
wsService "be.ems/src/modules/ws/service"
|
wsService "be.ems/src/modules/ws/service"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -11,10 +11,12 @@ import (
|
|||||||
"be.ems/src/modules/auth"
|
"be.ems/src/modules/auth"
|
||||||
"be.ems/src/modules/chart"
|
"be.ems/src/modules/chart"
|
||||||
"be.ems/src/modules/common"
|
"be.ems/src/modules/common"
|
||||||
|
"be.ems/src/modules/core"
|
||||||
"be.ems/src/modules/crontask"
|
"be.ems/src/modules/crontask"
|
||||||
"be.ems/src/modules/monitor"
|
"be.ems/src/modules/monitor"
|
||||||
networkdata "be.ems/src/modules/network_data"
|
networkdata "be.ems/src/modules/network_data"
|
||||||
networkelement "be.ems/src/modules/network_element"
|
networkelement "be.ems/src/modules/network_element"
|
||||||
|
networklink "be.ems/src/modules/network_link"
|
||||||
"be.ems/src/modules/oauth2"
|
"be.ems/src/modules/oauth2"
|
||||||
"be.ems/src/modules/system"
|
"be.ems/src/modules/system"
|
||||||
"be.ems/src/modules/tool"
|
"be.ems/src/modules/tool"
|
||||||
@@ -89,10 +91,15 @@ func ModulesRoute(app *gin.Engine) {
|
|||||||
// 通用模块
|
// 通用模块
|
||||||
common.Setup(app)
|
common.Setup(app)
|
||||||
|
|
||||||
|
// 核心网模块
|
||||||
|
core.Setup(app)
|
||||||
|
|
||||||
// 网元功能模块
|
// 网元功能模块
|
||||||
networkelement.Setup(app)
|
networkelement.Setup(app)
|
||||||
// 网元数据模块
|
// 网元数据模块
|
||||||
networkdata.Setup(app)
|
networkdata.Setup(app)
|
||||||
|
// 网元直连模块
|
||||||
|
networklink.Setup(app)
|
||||||
|
|
||||||
// 跟踪模块
|
// 跟踪模块
|
||||||
trace.Setup(app)
|
trace.Setup(app)
|
||||||
|
|||||||
@@ -10,20 +10,21 @@ import (
|
|||||||
"be.ems/src/framework/cron"
|
"be.ems/src/framework/cron"
|
||||||
"be.ems/src/framework/logger"
|
"be.ems/src/framework/logger"
|
||||||
"be.ems/src/framework/utils/file"
|
"be.ems/src/framework/utils/file"
|
||||||
neDataModel "be.ems/src/modules/network_data/model"
|
|
||||||
neDataService "be.ems/src/modules/network_data/service"
|
neDataService "be.ems/src/modules/network_data/service"
|
||||||
neModel "be.ems/src/modules/network_element/model"
|
neModel "be.ems/src/modules/network_element/model"
|
||||||
neService "be.ems/src/modules/network_element/service"
|
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{
|
var NewProcessor = &BackupExportUDMProcessor{
|
||||||
count: 0,
|
count: 0,
|
||||||
neInfoService: neService.NewNeInfo,
|
neInfoService: neService.NewNeInfo,
|
||||||
backupService: neDataService.NewBackup,
|
backupService: neDataService.NewBackup,
|
||||||
udmAuthService: neDataService.NewUDMAuthUser,
|
udmAuthService: neLinkService.NewUDMAuthUser,
|
||||||
udmSubService: neDataService.NewUDMSubUser,
|
udmSubService: neLinkService.NewUDMSubUser,
|
||||||
udmVOIPService: neDataService.NewUDMVOIPUser,
|
udmVOIPService: neLinkService.NewUDMVOIPUser,
|
||||||
udmVolteIMSService: neDataService.NewUDMVolteIMSUser,
|
udmVolteIMSService: neLinkService.NewUDMVolteIMSUser,
|
||||||
}
|
}
|
||||||
|
|
||||||
// BackupExportUDM 队列任务处理
|
// BackupExportUDM 队列任务处理
|
||||||
@@ -31,10 +32,10 @@ type BackupExportUDMProcessor struct {
|
|||||||
count int // 执行次数
|
count int // 执行次数
|
||||||
neInfoService *neService.NeInfo // 网元信息服务
|
neInfoService *neService.NeInfo // 网元信息服务
|
||||||
backupService *neDataService.Backup // 备份相关服务
|
backupService *neDataService.Backup // 备份相关服务
|
||||||
udmAuthService *neDataService.UDMAuthUser // UDM鉴权信息服务
|
udmAuthService *neLinkService.UDMAuthUser // UDM鉴权信息服务
|
||||||
udmSubService *neDataService.UDMSubUser // UDM签约信息服务
|
udmSubService *neLinkService.UDMSubUser // UDM签约信息服务
|
||||||
udmVOIPService *neDataService.UDMVOIPUser // UDMVOIP信息服务
|
udmVOIPService *neLinkService.UDMVOIPUser // UDMVOIP信息服务
|
||||||
udmVolteIMSService *neDataService.UDMVolteIMSUser // UDMVolteIMS信息服务
|
udmVolteIMSService *neLinkService.UDMVolteIMSUser // UDMVolteIMS信息服务
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *BackupExportUDMProcessor) Execute(data any) (any, error) {
|
func (s *BackupExportUDMProcessor) Execute(data any) (any, error) {
|
||||||
@@ -80,7 +81,7 @@ func (s *BackupExportUDMProcessor) Execute(data any) (any, error) {
|
|||||||
|
|
||||||
// exportAuth 导出鉴权用户数据
|
// exportAuth 导出鉴权用户数据
|
||||||
func (s BackupExportUDMProcessor) exportAuth(coreUid, neUid, fileType string) string {
|
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 {
|
if len(rows) <= 0 {
|
||||||
return "no data"
|
return "no data"
|
||||||
}
|
}
|
||||||
@@ -134,7 +135,7 @@ func (s BackupExportUDMProcessor) exportAuth(coreUid, neUid, fileType string) st
|
|||||||
|
|
||||||
// exportSub 导出签约用户数据
|
// exportSub 导出签约用户数据
|
||||||
func (s BackupExportUDMProcessor) exportSub(coreUid, neUid, fileType string) string {
|
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 {
|
if len(rows) <= 0 {
|
||||||
return "no data"
|
return "no data"
|
||||||
}
|
}
|
||||||
@@ -182,7 +183,7 @@ func (s BackupExportUDMProcessor) exportSub(coreUid, neUid, fileType string) str
|
|||||||
|
|
||||||
// exportVOIP 导出VOIP用户数据
|
// exportVOIP 导出VOIP用户数据
|
||||||
func (s BackupExportUDMProcessor) exportVOIP(coreUid, neUid, fileType string) string {
|
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 {
|
if len(rows) <= 0 {
|
||||||
return "no data"
|
return "no data"
|
||||||
}
|
}
|
||||||
@@ -228,7 +229,7 @@ func (s BackupExportUDMProcessor) exportVOIP(coreUid, neUid, fileType string) st
|
|||||||
|
|
||||||
// exportVolte 导出Volte用户数据
|
// exportVolte 导出Volte用户数据
|
||||||
func (s BackupExportUDMProcessor) exportVolte(coreUid, neUid, fileType string) string {
|
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 {
|
if len(rows) <= 0 {
|
||||||
return "no data"
|
return "no data"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,22 +5,22 @@ import (
|
|||||||
|
|
||||||
"be.ems/src/framework/cron"
|
"be.ems/src/framework/cron"
|
||||||
"be.ems/src/framework/logger"
|
"be.ems/src/framework/logger"
|
||||||
neDataService "be.ems/src/modules/network_data/service"
|
|
||||||
neModel "be.ems/src/modules/network_element/model"
|
neModel "be.ems/src/modules/network_element/model"
|
||||||
neService "be.ems/src/modules/network_element/service"
|
neService "be.ems/src/modules/network_element/service"
|
||||||
|
neLinkService "be.ems/src/modules/network_link/service"
|
||||||
)
|
)
|
||||||
|
|
||||||
var NewProcessor = &NeDataUDM{
|
var NewProcessor = &NeDataUDM{
|
||||||
udmAuthService: neDataService.NewUDMAuthUser,
|
udmAuthService: neLinkService.NewUDMAuthUser,
|
||||||
udmSubService: neDataService.NewUDMSubUser,
|
udmSubService: neLinkService.NewUDMSubUser,
|
||||||
neInfoService: neService.NewNeInfo,
|
neInfoService: neService.NewNeInfo,
|
||||||
count: 0,
|
count: 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
// NeDataUDM 网元配置文件定期备份
|
// NeDataUDM 网元配置文件定期备份
|
||||||
type NeDataUDM struct {
|
type NeDataUDM struct {
|
||||||
udmAuthService *neDataService.UDMAuthUser // UDM鉴权信息
|
udmAuthService *neLinkService.UDMAuthUser // UDM鉴权信息
|
||||||
udmSubService *neDataService.UDMSubUser // UDM签约信息
|
udmSubService *neLinkService.UDMSubUser // UDM签约信息
|
||||||
neInfoService *neService.NeInfo // 网元信息服务
|
neInfoService *neService.NeInfo // 网元信息服务
|
||||||
count int // 执行次数
|
count int // 执行次数
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import (
|
|||||||
"be.ems/src/framework/logger"
|
"be.ems/src/framework/logger"
|
||||||
"be.ems/src/framework/middleware"
|
"be.ems/src/framework/middleware"
|
||||||
"be.ems/src/framework/middleware/collectlogs"
|
"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/controller"
|
||||||
"be.ems/src/modules/network_data/service"
|
"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")
|
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 初始参数
|
// InitLoad 初始参数
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ import (
|
|||||||
"be.ems/src/framework/reqctx"
|
"be.ems/src/framework/reqctx"
|
||||||
"be.ems/src/framework/resp"
|
"be.ems/src/framework/resp"
|
||||||
"be.ems/src/framework/utils/parse"
|
"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/model"
|
||||||
neService "be.ems/src/modules/network_element/service"
|
neService "be.ems/src/modules/network_element/service"
|
||||||
|
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||||
traceService "be.ems/src/modules/trace/service"
|
traceService "be.ems/src/modules/trace/service"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|||||||
@@ -2,16 +2,15 @@ package controller
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"be.ems/src/framework/i18n"
|
"be.ems/src/framework/i18n"
|
||||||
"be.ems/src/framework/reqctx"
|
"be.ems/src/framework/reqctx"
|
||||||
"be.ems/src/framework/resp"
|
"be.ems/src/framework/resp"
|
||||||
"be.ems/src/framework/utils/parse"
|
"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/model"
|
||||||
neService "be.ems/src/modules/network_element/service"
|
neService "be.ems/src/modules/network_element/service"
|
||||||
|
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
@@ -345,7 +344,6 @@ func (s NeInfoController) Info(c *gin.Context) {
|
|||||||
// @Description Network element information addition
|
// @Description Network element information addition
|
||||||
// @Router /ne/info [post]
|
// @Router /ne/info [post]
|
||||||
func (s NeInfoController) Add(c *gin.Context) {
|
func (s NeInfoController) Add(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
|
||||||
var body model.NeInfo
|
var body model.NeInfo
|
||||||
err := c.ShouldBindBodyWithJSON(&body)
|
err := c.ShouldBindBodyWithJSON(&body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -358,68 +356,7 @@ func (s NeInfoController) Add(c *gin.Context) {
|
|||||||
return
|
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)
|
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
|
body.CreateBy = loginUserName
|
||||||
insertId := s.neInfoService.Insert(body)
|
insertId := s.neInfoService.Insert(body)
|
||||||
if insertId > 0 {
|
if insertId > 0 {
|
||||||
@@ -456,15 +393,6 @@ func (s NeInfoController) Edit(c *gin.Context) {
|
|||||||
return
|
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)
|
neInfo := s.neInfoService.FindById(body.ID, false)
|
||||||
if neInfo.ID != body.ID {
|
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")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "neInfo.noData")))
|
||||||
return
|
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)
|
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
|
body.UpdateBy = loginUserName
|
||||||
rows := s.neInfoService.Update(body)
|
rows := s.neInfoService.Update(body)
|
||||||
if rows > 0 {
|
if rows > 0 {
|
||||||
|
|||||||
@@ -10,9 +10,9 @@ import (
|
|||||||
"be.ems/src/framework/reqctx"
|
"be.ems/src/framework/reqctx"
|
||||||
"be.ems/src/framework/resp"
|
"be.ems/src/framework/resp"
|
||||||
"be.ems/src/framework/utils/parse"
|
"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/model"
|
||||||
neService "be.ems/src/modules/network_element/service"
|
neService "be.ems/src/modules/network_element/service"
|
||||||
|
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 实例化控制层 NeLicenseController 结构体
|
// 实例化控制层 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 {
|
type NeInfo struct {
|
||||||
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 网元ID
|
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 网元ID
|
||||||
CoreUID string `json:"coreUid" gorm:"column:core_uid" binding:"required"` // 核心网唯一标识
|
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"` // 网元类型
|
NeType string `json:"neType" gorm:"column:ne_type" binding:"required"` // 网元类型
|
||||||
NeName string `json:"neName" gorm:"column:ne_name"` // 网元名称
|
NeName string `json:"neName" gorm:"column:ne_name"` // 网元名称
|
||||||
IPAddr string `json:"ipAddr" gorm:"column:ip_addr" binding:"required"` // 网元服务IP
|
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
|
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 修改状态
|
// UpdateState 修改状态
|
||||||
func (r NeInfo) UpdateState(id int64, status int64) int64 {
|
func (r NeInfo) UpdateState(id int64, status int64) int64 {
|
||||||
if id <= 0 {
|
if id <= 0 {
|
||||||
|
|||||||
@@ -16,9 +16,9 @@ import (
|
|||||||
"be.ems/src/framework/telnet"
|
"be.ems/src/framework/telnet"
|
||||||
"be.ems/src/framework/utils/generate"
|
"be.ems/src/framework/utils/generate"
|
||||||
"be.ems/src/framework/utils/parse"
|
"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/model"
|
||||||
"be.ems/src/modules/network_element/repository"
|
"be.ems/src/modules/network_element/repository"
|
||||||
|
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 实例化服务层 NeInfo 结构体
|
// 实例化服务层 NeInfo 结构体
|
||||||
@@ -240,6 +240,27 @@ func (r NeInfo) FindById(id int64, bandHost bool) model.NeInfo {
|
|||||||
|
|
||||||
// Insert 新增信息
|
// Insert 新增信息
|
||||||
func (r NeInfo) Insert(neInfo model.NeInfo) int64 {
|
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 {
|
if neInfo.Hosts != nil {
|
||||||
uuid := generate.Code(4)
|
uuid := generate.Code(4)
|
||||||
@@ -258,6 +279,39 @@ func (r NeInfo) Insert(neInfo model.NeInfo) int64 {
|
|||||||
|
|
||||||
insertId := r.neInfoRepository.Insert(neInfo)
|
insertId := r.neInfoRepository.Insert(neInfo)
|
||||||
if insertId > 0 {
|
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) // 刷新缓存
|
r.RefreshByCoreUidAndNeUid(neInfo.CoreUID, neInfo.NeUID) // 刷新缓存
|
||||||
}
|
}
|
||||||
return insertId
|
return insertId
|
||||||
@@ -265,12 +319,32 @@ func (r NeInfo) Insert(neInfo model.NeInfo) int64 {
|
|||||||
|
|
||||||
// Update 修改信息
|
// Update 修改信息
|
||||||
func (r NeInfo) Update(neInfo model.NeInfo) int64 {
|
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)
|
uuid := generate.Code(4)
|
||||||
for _, host := range neInfo.Hosts {
|
for _, host := range neInfo.Hosts {
|
||||||
if host.ID != 0 {
|
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.GroupID = "1"
|
||||||
host.UpdateBy = neInfo.UpdateBy
|
host.UpdateBy = neInfo.UpdateBy
|
||||||
r.neHostService.Update(host)
|
r.neHostService.Update(host)
|
||||||
@@ -280,6 +354,41 @@ func (r NeInfo) Update(neInfo model.NeInfo) int64 {
|
|||||||
|
|
||||||
num := r.neInfoRepository.Update(neInfo)
|
num := r.neInfoRepository.Update(neInfo)
|
||||||
if num > 0 {
|
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) // 刷新缓存
|
r.RefreshByCoreUidAndNeUid(neInfo.CoreUID, neInfo.NeUID) // 刷新缓存
|
||||||
}
|
}
|
||||||
return num
|
return num
|
||||||
@@ -324,18 +433,6 @@ func (r NeInfo) DeleteByIds(ids []int64) (int64, error) {
|
|||||||
return 0, fmt.Errorf("delete fail")
|
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()
|
// NeRunSSHClient 网元主机的SSH客户端-为创建相关连接,注意结束后 Close()
|
||||||
func (r NeInfo) NeRunSSHClient(coreUid, neUid string) (*ssh.ConnSSH, error) {
|
func (r NeInfo) NeRunSSHClient(coreUid, neUid string) (*ssh.ConnSSH, error) {
|
||||||
neInfo := r.FindByCoreUidAndNeUid(coreUid, neUid)
|
neInfo := r.FindByCoreUidAndNeUid(coreUid, neUid)
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ import (
|
|||||||
|
|
||||||
"be.ems/src/framework/ssh"
|
"be.ems/src/framework/ssh"
|
||||||
"be.ems/src/framework/utils/file"
|
"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/model"
|
||||||
"be.ems/src/modules/network_element/repository"
|
"be.ems/src/modules/network_element/repository"
|
||||||
|
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 实例化服务层 NeVersion 结构体
|
// 实例化服务层 NeVersion 结构体
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ import (
|
|||||||
"be.ems/src/framework/utils/parse"
|
"be.ems/src/framework/utils/parse"
|
||||||
"be.ems/src/modules/network_data/model"
|
"be.ems/src/modules/network_data/model"
|
||||||
neDataService "be.ems/src/modules/network_data/service"
|
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"
|
neService "be.ems/src/modules/network_element/service"
|
||||||
|
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
@@ -10,8 +10,8 @@ import (
|
|||||||
"be.ems/src/framework/utils/parse"
|
"be.ems/src/framework/utils/parse"
|
||||||
"be.ems/src/modules/network_data/model"
|
"be.ems/src/modules/network_data/model"
|
||||||
neDataService "be.ems/src/modules/network_data/service"
|
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"
|
neService "be.ems/src/modules/network_element/service"
|
||||||
|
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
@@ -10,8 +10,8 @@ import (
|
|||||||
"be.ems/src/framework/utils/parse"
|
"be.ems/src/framework/utils/parse"
|
||||||
"be.ems/src/modules/network_data/model"
|
"be.ems/src/modules/network_data/model"
|
||||||
neDataService "be.ems/src/modules/network_data/service"
|
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"
|
neService "be.ems/src/modules/network_element/service"
|
||||||
|
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
@@ -6,8 +6,8 @@ import (
|
|||||||
"be.ems/src/framework/i18n"
|
"be.ems/src/framework/i18n"
|
||||||
"be.ems/src/framework/reqctx"
|
"be.ems/src/framework/reqctx"
|
||||||
"be.ems/src/framework/resp"
|
"be.ems/src/framework/resp"
|
||||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
|
||||||
neService "be.ems/src/modules/network_element/service"
|
neService "be.ems/src/modules/network_element/service"
|
||||||
|
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
@@ -11,6 +11,7 @@ import (
|
|||||||
"be.ems/src/modules/network_data/model"
|
"be.ems/src/modules/network_data/model"
|
||||||
neDataService "be.ems/src/modules/network_data/service"
|
neDataService "be.ems/src/modules/network_data/service"
|
||||||
neService "be.ems/src/modules/network_element/service"
|
neService "be.ems/src/modules/network_element/service"
|
||||||
|
"be.ems/src/modules/network_link/service"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -18,7 +19,7 @@ import (
|
|||||||
var NewSGWC = &SGWCController{
|
var NewSGWC = &SGWCController{
|
||||||
neInfoService: neService.NewNeInfo,
|
neInfoService: neService.NewNeInfo,
|
||||||
cdrEventService: neDataService.NewCDREventSGWC,
|
cdrEventService: neDataService.NewCDREventSGWC,
|
||||||
UDMExtendService: neDataService.NewUDMExtend,
|
UDMExtendService: service.NewUDMExtend,
|
||||||
}
|
}
|
||||||
|
|
||||||
// 网元SGWC
|
// 网元SGWC
|
||||||
@@ -27,7 +28,7 @@ var NewSGWC = &SGWCController{
|
|||||||
type SGWCController struct {
|
type SGWCController struct {
|
||||||
neInfoService *neService.NeInfo // 网元信息服务
|
neInfoService *neService.NeInfo // 网元信息服务
|
||||||
cdrEventService *neDataService.CDREventSGWC // CDR会话事件服务
|
cdrEventService *neDataService.CDREventSGWC // CDR会话事件服务
|
||||||
UDMExtendService *neDataService.UDMExtend // UDM用户信息服务
|
UDMExtendService *service.UDMExtend // UDM用户信息服务
|
||||||
}
|
}
|
||||||
|
|
||||||
// CDR会话列表
|
// CDR会话列表
|
||||||
@@ -11,8 +11,9 @@ import (
|
|||||||
"be.ems/src/framework/utils/parse"
|
"be.ems/src/framework/utils/parse"
|
||||||
"be.ems/src/modules/network_data/model"
|
"be.ems/src/modules/network_data/model"
|
||||||
neDataService "be.ems/src/modules/network_data/service"
|
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"
|
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"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
@@ -21,7 +22,7 @@ import (
|
|||||||
var NewSMF = &SMFController{
|
var NewSMF = &SMFController{
|
||||||
neInfoService: neService.NewNeInfo,
|
neInfoService: neService.NewNeInfo,
|
||||||
cdrEventService: neDataService.NewCDREventSMF,
|
cdrEventService: neDataService.NewCDREventSMF,
|
||||||
UDMExtendService: neDataService.NewUDMExtend,
|
UDMExtendService: service.NewUDMExtend,
|
||||||
}
|
}
|
||||||
|
|
||||||
// 网元SMF
|
// 网元SMF
|
||||||
@@ -30,7 +31,7 @@ var NewSMF = &SMFController{
|
|||||||
type SMFController struct {
|
type SMFController struct {
|
||||||
neInfoService *neService.NeInfo // 网元信息服务
|
neInfoService *neService.NeInfo // 网元信息服务
|
||||||
cdrEventService *neDataService.CDREventSMF // CDR会话事件服务
|
cdrEventService *neDataService.CDREventSMF // CDR会话事件服务
|
||||||
UDMExtendService *neDataService.UDMExtend // UDM用户信息服务
|
UDMExtendService *service.UDMExtend // UDM用户信息服务
|
||||||
}
|
}
|
||||||
|
|
||||||
// CDR会话列表
|
// CDR会话列表
|
||||||
@@ -13,17 +13,17 @@ import (
|
|||||||
"be.ems/src/framework/telnet"
|
"be.ems/src/framework/telnet"
|
||||||
"be.ems/src/framework/utils/file"
|
"be.ems/src/framework/utils/file"
|
||||||
"be.ems/src/framework/utils/parse"
|
"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"
|
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"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 实例化控制层 UDMAuthController 结构体
|
// 实例化控制层 UDMAuthController 结构体
|
||||||
var NewUDMAuth = &UDMAuthController{
|
var NewUDMAuth = &UDMAuthController{
|
||||||
udmAuthService: neDataService.NewUDMAuthUser,
|
udmAuthService: service.NewUDMAuthUser,
|
||||||
neInfoService: neService.NewNeInfo,
|
neInfoService: neService.NewNeInfo,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -31,8 +31,8 @@ var NewUDMAuth = &UDMAuthController{
|
|||||||
//
|
//
|
||||||
// PATH /udm/auth
|
// PATH /udm/auth
|
||||||
type UDMAuthController struct {
|
type UDMAuthController struct {
|
||||||
udmAuthService *neDataService.UDMAuthUser // UDM鉴权信息服务
|
udmAuthService *service.UDMAuthUser // UDM鉴权信息服务
|
||||||
neInfoService *neService.NeInfo // 网元信息服务
|
neInfoService *neService.NeInfo // 网元信息服务
|
||||||
}
|
}
|
||||||
|
|
||||||
// UDM鉴权用户重载数据
|
// UDM鉴权用户重载数据
|
||||||
@@ -13,16 +13,16 @@ import (
|
|||||||
"be.ems/src/framework/telnet"
|
"be.ems/src/framework/telnet"
|
||||||
"be.ems/src/framework/utils/file"
|
"be.ems/src/framework/utils/file"
|
||||||
"be.ems/src/framework/utils/parse"
|
"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"
|
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"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 实例化控制层 UDMSubController 结构体
|
// 实例化控制层 UDMSubController 结构体
|
||||||
var NewUDMSub = &UDMSubController{
|
var NewUDMSub = &UDMSubController{
|
||||||
udmSubService: neDataService.NewUDMSubUser,
|
udmSubService: service.NewUDMSubUser,
|
||||||
neInfoService: neService.NewNeInfo,
|
neInfoService: neService.NewNeInfo,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,8 +30,8 @@ var NewUDMSub = &UDMSubController{
|
|||||||
//
|
//
|
||||||
// PATH /udm/sub
|
// PATH /udm/sub
|
||||||
type UDMSubController struct {
|
type UDMSubController struct {
|
||||||
udmSubService *neDataService.UDMSubUser // UDM签约信息服务
|
udmSubService *service.UDMSubUser // UDM签约信息服务
|
||||||
neInfoService *neService.NeInfo // 网元信息服务
|
neInfoService *neService.NeInfo // 网元信息服务
|
||||||
}
|
}
|
||||||
|
|
||||||
// UDM签约用户重载数据
|
// UDM签约用户重载数据
|
||||||
@@ -13,16 +13,16 @@ import (
|
|||||||
"be.ems/src/framework/telnet"
|
"be.ems/src/framework/telnet"
|
||||||
"be.ems/src/framework/utils/file"
|
"be.ems/src/framework/utils/file"
|
||||||
"be.ems/src/framework/utils/parse"
|
"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"
|
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"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 实例化控制层 UDMVOIPController 结构体
|
// 实例化控制层 UDMVOIPController 结构体
|
||||||
var NewUDMVOIP = &UDMVOIPController{
|
var NewUDMVOIP = &UDMVOIPController{
|
||||||
udmVOIPService: neDataService.NewUDMVOIPUser,
|
udmVOIPService: service.NewUDMVOIPUser,
|
||||||
neInfoService: neService.NewNeInfo,
|
neInfoService: neService.NewNeInfo,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,8 +30,8 @@ var NewUDMVOIP = &UDMVOIPController{
|
|||||||
//
|
//
|
||||||
// PATH /udm/voip
|
// PATH /udm/voip
|
||||||
type UDMVOIPController struct {
|
type UDMVOIPController struct {
|
||||||
udmVOIPService *neDataService.UDMVOIPUser // UDMVOIP信息服务
|
udmVOIPService *service.UDMVOIPUser // UDMVOIP信息服务
|
||||||
neInfoService *neService.NeInfo // 网元信息服务
|
neInfoService *neService.NeInfo // 网元信息服务
|
||||||
}
|
}
|
||||||
|
|
||||||
// UDMVOIP用户重载数据
|
// UDMVOIP用户重载数据
|
||||||
@@ -13,16 +13,16 @@ import (
|
|||||||
"be.ems/src/framework/telnet"
|
"be.ems/src/framework/telnet"
|
||||||
"be.ems/src/framework/utils/file"
|
"be.ems/src/framework/utils/file"
|
||||||
"be.ems/src/framework/utils/parse"
|
"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"
|
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"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 实例化控制层 UDMVolteIMSController 结构体
|
// 实例化控制层 UDMVolteIMSController 结构体
|
||||||
var NewUDMVolteIMS = &UDMVolteIMSController{
|
var NewUDMVolteIMS = &UDMVolteIMSController{
|
||||||
udmVolteIMSService: neDataService.NewUDMVolteIMSUser,
|
udmVolteIMSService: service.NewUDMVolteIMSUser,
|
||||||
neInfoService: neService.NewNeInfo,
|
neInfoService: neService.NewNeInfo,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,8 +30,8 @@ var NewUDMVolteIMS = &UDMVolteIMSController{
|
|||||||
//
|
//
|
||||||
// PATH /udm/volte-ims
|
// PATH /udm/volte-ims
|
||||||
type UDMVolteIMSController struct {
|
type UDMVolteIMSController struct {
|
||||||
udmVolteIMSService *neDataService.UDMVolteIMSUser // UDMVolteIMS信息服务
|
udmVolteIMSService *service.UDMVolteIMSUser // UDMVolteIMS信息服务
|
||||||
neInfoService *neService.NeInfo // 网元信息服务
|
neInfoService *neService.NeInfo // 网元信息服务
|
||||||
}
|
}
|
||||||
|
|
||||||
// UDMVolteIMS用户重载数据
|
// UDMVolteIMS用户重载数据
|
||||||
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/database/db"
|
||||||
"be.ems/src/framework/logger"
|
"be.ems/src/framework/logger"
|
||||||
"be.ems/src/modules/network_data/model"
|
"be.ems/src/modules/network_link/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 实例化数据层 UDMAuthUser 结构体
|
// 实例化数据层 UDMAuthUser 结构体
|
||||||
@@ -5,7 +5,7 @@ import (
|
|||||||
|
|
||||||
"be.ems/src/framework/database/db"
|
"be.ems/src/framework/database/db"
|
||||||
"be.ems/src/framework/logger"
|
"be.ems/src/framework/logger"
|
||||||
"be.ems/src/modules/network_data/model"
|
"be.ems/src/modules/network_link/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 实例化数据层 UDMExtend 结构体
|
// 实例化数据层 UDMExtend 结构体
|
||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
|
|
||||||
"be.ems/src/framework/database/db"
|
"be.ems/src/framework/database/db"
|
||||||
"be.ems/src/framework/logger"
|
"be.ems/src/framework/logger"
|
||||||
"be.ems/src/modules/network_data/model"
|
"be.ems/src/modules/network_link/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 实例化数据层 UDMSubUser 结构体
|
// 实例化数据层 UDMSubUser 结构体
|
||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
|
|
||||||
"be.ems/src/framework/database/db"
|
"be.ems/src/framework/database/db"
|
||||||
"be.ems/src/framework/logger"
|
"be.ems/src/framework/logger"
|
||||||
"be.ems/src/modules/network_data/model"
|
"be.ems/src/modules/network_link/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 实例化数据层 UDMVOIPUser 结构体
|
// 实例化数据层 UDMVOIPUser 结构体
|
||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
|
|
||||||
"be.ems/src/framework/database/db"
|
"be.ems/src/framework/database/db"
|
||||||
"be.ems/src/framework/logger"
|
"be.ems/src/framework/logger"
|
||||||
"be.ems/src/modules/network_data/model"
|
"be.ems/src/modules/network_link/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 实例化数据层 UDMVolteIMSUser 结构体
|
// 实例化数据层 UDMVolteIMSUser 结构体
|
||||||
@@ -6,9 +6,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"be.ems/src/framework/database/redis"
|
"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"
|
neService "be.ems/src/modules/network_element/service"
|
||||||
|
"be.ems/src/modules/network_link/model"
|
||||||
|
"be.ems/src/modules/network_link/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 实例化服务层 UDMAuthUser 结构体
|
// 实例化服务层 UDMAuthUser 结构体
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package service
|
package service
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"be.ems/src/modules/network_data/model"
|
"be.ems/src/modules/network_link/model"
|
||||||
"be.ems/src/modules/network_data/repository"
|
"be.ems/src/modules/network_link/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 实例化服务层 UDMExtend 结构体
|
// 实例化服务层 UDMExtend 结构体
|
||||||
@@ -6,9 +6,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"be.ems/src/framework/database/redis"
|
"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"
|
neService "be.ems/src/modules/network_element/service"
|
||||||
|
"be.ems/src/modules/network_link/model"
|
||||||
|
"be.ems/src/modules/network_link/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 实例化服务层 UDMSubUser 结构体
|
// 实例化服务层 UDMSubUser 结构体
|
||||||
@@ -6,9 +6,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"be.ems/src/framework/database/redis"
|
"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"
|
neService "be.ems/src/modules/network_element/service"
|
||||||
|
"be.ems/src/modules/network_link/model"
|
||||||
|
"be.ems/src/modules/network_link/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 实例化服务层 UDMVOIPUser 结构体
|
// 实例化服务层 UDMVOIPUser 结构体
|
||||||
@@ -6,9 +6,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"be.ems/src/framework/database/redis"
|
"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"
|
neService "be.ems/src/modules/network_element/service"
|
||||||
|
"be.ems/src/modules/network_link/model"
|
||||||
|
"be.ems/src/modules/network_link/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 实例化服务层 UDMVolteIMSUser 结构体
|
// 实例化服务层 UDMVolteIMSUser 结构体
|
||||||
@@ -81,7 +81,7 @@ func (s *TCPdump) DumpStart(coreUid, neUid, cmdStr string) (string, error) {
|
|||||||
// 日志文件行号
|
// 日志文件行号
|
||||||
PIDMap := s.logFileLastLine(neInfo.NeType, sshClient)
|
PIDMap := s.logFileLastLine(neInfo.NeType, sshClient)
|
||||||
PIDMap["neType"] = neInfo.NeType
|
PIDMap["neType"] = neInfo.NeType
|
||||||
PIDMap["rmUid"] = neInfo.NeUID
|
PIDMap["neUid"] = neInfo.NeUID
|
||||||
PIDMap["taskCode"] = taskCode
|
PIDMap["taskCode"] = taskCode
|
||||||
PIDMap["pid"] = outputPID
|
PIDMap["pid"] = outputPID
|
||||||
PIDMap["cmd"] = sendCmd
|
PIDMap["cmd"] = sendCmd
|
||||||
@@ -179,10 +179,10 @@ func (s *TCPdump) logFileLastLineToFile(PIDMap map[string]string, sshClient *ssh
|
|||||||
defer sftpClient.Close()
|
defer sftpClient.Close()
|
||||||
|
|
||||||
neType := PIDMap["neType"]
|
neType := PIDMap["neType"]
|
||||||
neId := PIDMap["neId"]
|
neUid := PIDMap["neUid"]
|
||||||
taskCode := PIDMap["taskCode"]
|
taskCode := PIDMap["taskCode"]
|
||||||
// 存放文件目录 /usr/local/omc/tcpdump/udm/001/20240817104241
|
// 存放文件目录 /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))
|
sshClient.RunCMD(fmt.Sprintf("sudo mkdir -p %s && sudo chmod 755 -R /usr/local/omc/tcpdump", neDirTemp))
|
||||||
|
|
||||||
lastLineMap := s.logFileLastLine(neType, sshClient)
|
lastLineMap := s.logFileLastLine(neType, sshClient)
|
||||||
|
|||||||
@@ -11,9 +11,9 @@ import (
|
|||||||
"be.ems/src/framework/socket"
|
"be.ems/src/framework/socket"
|
||||||
"be.ems/src/framework/utils/date"
|
"be.ems/src/framework/utils/date"
|
||||||
"be.ems/src/framework/utils/parse"
|
"be.ems/src/framework/utils/parse"
|
||||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
|
||||||
neModel "be.ems/src/modules/network_element/model"
|
neModel "be.ems/src/modules/network_element/model"
|
||||||
neService "be.ems/src/modules/network_element/service"
|
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/model"
|
||||||
"be.ems/src/modules/trace/repository"
|
"be.ems/src/modules/trace/repository"
|
||||||
wsService "be.ems/src/modules/ws/service"
|
wsService "be.ems/src/modules/ws/service"
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ import (
|
|||||||
|
|
||||||
"be.ems/src/framework/ssh"
|
"be.ems/src/framework/ssh"
|
||||||
"be.ems/src/framework/utils/date"
|
"be.ems/src/framework/utils/date"
|
||||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
|
||||||
neModel "be.ems/src/modules/network_element/model"
|
neModel "be.ems/src/modules/network_element/model"
|
||||||
neService "be.ems/src/modules/network_element/service"
|
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/model"
|
||||||
"be.ems/src/modules/trace/repository"
|
"be.ems/src/modules/trace/repository"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import (
|
|||||||
|
|
||||||
"be.ems/src/framework/logger"
|
"be.ems/src/framework/logger"
|
||||||
"be.ems/src/framework/resp"
|
"be.ems/src/framework/resp"
|
||||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
|
||||||
neService "be.ems/src/modules/network_element/service"
|
neService "be.ems/src/modules/network_element/service"
|
||||||
|
neFetchlink "be.ems/src/modules/network_link/fetch_link"
|
||||||
)
|
)
|
||||||
|
|
||||||
// GetNeState 获取网元服务状态
|
// GetNeState 获取网元服务状态
|
||||||
|
|||||||
Reference in New Issue
Block a user