ref: 多core表结构和代码调整修改
This commit is contained in:
@@ -47,8 +47,8 @@ type NeActionController struct {
|
||||
func (s *NeActionController) PushFile(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
NeType string `json:"neType" binding:"required"`
|
||||
NeID string `json:"neId" binding:"required"`
|
||||
CoreUID string `json:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `json:"neUid" binding:"required"` // 网元唯一标识
|
||||
UploadPath string `json:"uploadPath" binding:"required"`
|
||||
DelTemp bool `json:"delTemp"` // 删除本地临时文件
|
||||
}
|
||||
@@ -59,14 +59,14 @@ func (s *NeActionController) PushFile(c *gin.Context) {
|
||||
}
|
||||
|
||||
// 查询网元获取IP
|
||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(body.NeType, body.NeID)
|
||||
if neInfo.NeId != body.NeID || neInfo.IP == "" {
|
||||
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
|
||||
// 网元主机的SSH客户端
|
||||
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.NeType, neInfo.NeId)
|
||||
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.CoreUID, neInfo.NeUID)
|
||||
if err != nil {
|
||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||
return
|
||||
@@ -118,28 +118,28 @@ func (s *NeActionController) PushFile(c *gin.Context) {
|
||||
// @Router /ne/action/pullFile [get]
|
||||
func (s *NeActionController) PullFile(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
NeType string `form:"neType" binding:"required"`
|
||||
NeID string `form:"neId" binding:"required"`
|
||||
var query struct {
|
||||
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||
Path string `form:"path" binding:"required"`
|
||||
FileName string `form:"fileName" binding:"required"`
|
||||
DelTemp bool `form:"delTemp"` // 删除本地临时文件
|
||||
}
|
||||
if err := c.ShouldBindQuery(&querys); err != nil {
|
||||
if err := c.ShouldBindQuery(&query); err != nil {
|
||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||
return
|
||||
}
|
||||
|
||||
// 查询网元获取IP
|
||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(querys.NeType, querys.NeID)
|
||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
||||
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
|
||||
// 网元主机的SSH客户端
|
||||
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.NeType, neInfo.NeId)
|
||||
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.CoreUID, neInfo.NeUID)
|
||||
if err != nil {
|
||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||
return
|
||||
@@ -153,8 +153,8 @@ func (s *NeActionController) PullFile(c *gin.Context) {
|
||||
}
|
||||
defer sftpClient.Close()
|
||||
|
||||
nePath := filepath.ToSlash(filepath.Join(querys.Path, querys.FileName))
|
||||
fileName := generate.Code(6) + "_" + querys.FileName
|
||||
nePath := filepath.ToSlash(filepath.Join(query.Path, query.FileName))
|
||||
fileName := generate.Code(6) + "_" + query.FileName
|
||||
localFilePath := filepath.Join("/tmp/omc/pull", fileName)
|
||||
if runtime.GOOS == "windows" {
|
||||
localFilePath = fmt.Sprintf("C:%s", localFilePath)
|
||||
@@ -166,7 +166,7 @@ func (s *NeActionController) PullFile(c *gin.Context) {
|
||||
}
|
||||
|
||||
defer func() {
|
||||
if querys.DelTemp {
|
||||
if query.DelTemp {
|
||||
_ = os.Remove(localFilePath)
|
||||
}
|
||||
}()
|
||||
@@ -192,8 +192,8 @@ func (s *NeActionController) PullFile(c *gin.Context) {
|
||||
func (s *NeActionController) PullDirZip(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
NeType string `form:"neType" binding:"required"`
|
||||
NeID string `form:"neId" binding:"required"`
|
||||
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||
Path string `form:"path" binding:"required"`
|
||||
DelTemp bool `form:"delTemp"` // 删除本地临时文件
|
||||
}
|
||||
@@ -204,14 +204,14 @@ func (s *NeActionController) PullDirZip(c *gin.Context) {
|
||||
}
|
||||
|
||||
// 查询网元获取IP
|
||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(querys.NeType, querys.NeID)
|
||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
||||
neInfo := s.neInfoService.FindByCoreUidAndNeUid(querys.CoreUID, querys.NeUID)
|
||||
if neInfo.CoreUID != querys.CoreUID || neInfo.NeUID != querys.NeUID {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
|
||||
// 网元主机的SSH客户端
|
||||
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.NeType, neInfo.NeId)
|
||||
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.CoreUID, neInfo.NeUID)
|
||||
if err != nil {
|
||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||
return
|
||||
@@ -239,7 +239,7 @@ func (s *NeActionController) PullDirZip(c *gin.Context) {
|
||||
}
|
||||
|
||||
// 压缩zip文件名
|
||||
zipFileName := fmt.Sprintf("%s-%s-%s.zip", neInfo.NeType, neInfo.NeId, dirName)
|
||||
zipFileName := fmt.Sprintf("%s-%s-%s.zip", neInfo.NeType, neInfo.NeUID, dirName)
|
||||
zipFilePath := filepath.Join(localFilePath, zipFileName)
|
||||
if err := file.CompressZipByDir(zipFilePath, localDirFilePath); err != nil {
|
||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||
@@ -273,8 +273,8 @@ func (s *NeActionController) PullDirZip(c *gin.Context) {
|
||||
func (s *NeActionController) ViewFile(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
NeType string `form:"neType" binding:"required"`
|
||||
NeID string `form:"neId" binding:"required"`
|
||||
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||
Path string `form:"path" binding:"required"`
|
||||
FileName string `form:"fileName" binding:"required"`
|
||||
}
|
||||
@@ -285,14 +285,14 @@ func (s *NeActionController) ViewFile(c *gin.Context) {
|
||||
}
|
||||
|
||||
// 查询网元获取IP
|
||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(querys.NeType, querys.NeID)
|
||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
||||
neInfo := s.neInfoService.FindByCoreUidAndNeUid(querys.CoreUID, querys.NeUID)
|
||||
if neInfo.CoreUID != querys.CoreUID || neInfo.NeUID != querys.NeUID {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
|
||||
// 网元主机的SSH客户端
|
||||
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.NeType, neInfo.NeId)
|
||||
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.CoreUID, neInfo.NeUID)
|
||||
if err != nil {
|
||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||
return
|
||||
@@ -332,8 +332,8 @@ func (s *NeActionController) ViewFile(c *gin.Context) {
|
||||
func (s *NeActionController) Files(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
NeType string `form:"neType" binding:"required"`
|
||||
NeID string `form:"neId" binding:"required"`
|
||||
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||
Path string `form:"path" binding:"required"`
|
||||
PageNum int64 `form:"pageNum" binding:"required"`
|
||||
PageSize int64 `form:"pageSize" binding:"required"`
|
||||
@@ -346,14 +346,14 @@ func (s *NeActionController) Files(c *gin.Context) {
|
||||
}
|
||||
|
||||
// 查询网元获取IP
|
||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(querys.NeType, querys.NeID)
|
||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
||||
neInfo := s.neInfoService.FindByCoreUidAndNeUid(querys.CoreUID, querys.NeUID)
|
||||
if neInfo.CoreUID != querys.CoreUID || neInfo.NeUID != querys.NeUID {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
|
||||
// 网元主机的SSH客户端
|
||||
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.NeType, neInfo.NeId)
|
||||
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.CoreUID, neInfo.NeUID)
|
||||
if err != nil {
|
||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||
return
|
||||
@@ -407,9 +407,9 @@ func (s *NeActionController) Files(c *gin.Context) {
|
||||
func (s *NeActionController) Service(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
NeType string `json:"neType" binding:"required"`
|
||||
NeID string `json:"neId" binding:"required"`
|
||||
Action string `json:"action" binding:"required,oneof=start restart stop reboot poweroff"` // 操作行为
|
||||
CoreUID string `json:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `json:"neUid" binding:"required"` // 网元唯一标识
|
||||
Action string `json:"action" binding:"required,oneof=start restart stop reboot poweroff"` // 操作行为
|
||||
}
|
||||
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
|
||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||
@@ -418,8 +418,8 @@ func (s *NeActionController) Service(c *gin.Context) {
|
||||
}
|
||||
|
||||
// 查询网元获取IP
|
||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(body.NeType, body.NeID)
|
||||
if neInfo.NeId != body.NeID || neInfo.IP == "" {
|
||||
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
@@ -443,7 +443,7 @@ func (s *NeActionController) Service(c *gin.Context) {
|
||||
cmdStr = "sudo shutdown -h now"
|
||||
}
|
||||
|
||||
_, err := s.neInfoService.NeRunSSHCmd(body.NeType, body.NeID, cmdStr)
|
||||
_, err := s.neInfoService.NeRunSSHCmd(neInfo.CoreUID, neInfo.NeUID, cmdStr)
|
||||
if err != nil {
|
||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||
return
|
||||
|
||||
@@ -198,8 +198,8 @@ func (s NeConfigController) ListByNeType(c *gin.Context) {
|
||||
func (s NeConfigController) DataInfo(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var query struct {
|
||||
NeType string `form:"neType" binding:"required"` // 网元类型
|
||||
NeId string `form:"neId" binding:"required"` // 网元ID
|
||||
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||
ParamName string `form:"paramName" binding:"required"` // 可用属性
|
||||
}
|
||||
if err := c.ShouldBindQuery(&query); err != nil {
|
||||
@@ -208,13 +208,13 @@ func (s NeConfigController) DataInfo(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(query.NeType, query.NeId)
|
||||
if neInfo.NeId != query.NeId || neInfo.IP == "" {
|
||||
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
|
||||
if query.NeType == "OMC" {
|
||||
if neInfo.NeType == "OMC" {
|
||||
if query.ParamName == "alarmEmailForward" || query.ParamName == "alarmSMSForward" {
|
||||
var o *cm_omc.ConfigOMC
|
||||
resData, err := o.Query(query.ParamName)
|
||||
@@ -256,8 +256,8 @@ func (s NeConfigController) DataInfo(c *gin.Context) {
|
||||
func (s NeConfigController) DataEdit(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
NeType string `json:"neType" binding:"required"` // 网元类型
|
||||
NeId string `json:"neId" binding:"required"` // 网元ID
|
||||
CoreUID string `json:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `json:"neUid" binding:"required"` // 网元唯一标识
|
||||
ParamName string `json:"paramName" binding:"required"`
|
||||
ParamData map[string]any `json:"paramData" binding:"required"`
|
||||
Loc string `json:"loc"` // 仅array使用与数据对象内index一致,有多层时划分嵌套层(index/subParamName/index)
|
||||
@@ -268,12 +268,12 @@ func (s NeConfigController) DataEdit(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(body.NeType, body.NeId)
|
||||
if neInfo.NeId != body.NeId || neInfo.IP == "" {
|
||||
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
if body.NeType == "OMC" {
|
||||
if neInfo.NeType == "OMC" {
|
||||
if body.ParamName == "alarmEmailForward" || body.ParamName == "alarmSMSForward" {
|
||||
var o *cm_omc.ConfigOMC
|
||||
resData, err := o.Modify(body.ParamName, body.ParamData)
|
||||
@@ -322,8 +322,8 @@ func (s NeConfigController) DataEdit(c *gin.Context) {
|
||||
func (s NeConfigController) DataAdd(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
NeType string `json:"neType" binding:"required"` // 网元类型
|
||||
NeId string `json:"neId" binding:"required"` // 网元ID
|
||||
CoreUID string `json:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `json:"neUid" binding:"required"` // 网元唯一标识
|
||||
ParamName string `json:"paramName" binding:"required"` // 根据配置可选值
|
||||
ParamData map[string]any `json:"paramData" binding:"required"` // 数据对象
|
||||
Loc string `json:"loc" binding:"required"` // 与数据对象内index一致,有多层时划分嵌套层(index/subParamName/index)
|
||||
@@ -334,8 +334,14 @@ func (s NeConfigController) DataAdd(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查是否array
|
||||
info := s.neConfigService.FindByNeTypeAndParamName(body.NeType, body.ParamName)
|
||||
info := s.neConfigService.FindByNeTypeAndParamName(neInfo.NeType, body.ParamName)
|
||||
if info.ParamType != "array" {
|
||||
c.JSON(200, resp.ErrMsg("this attribute does not support adding"))
|
||||
return
|
||||
@@ -347,12 +353,6 @@ func (s NeConfigController) DataAdd(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(body.NeType, body.NeId)
|
||||
if neInfo.NeId != body.NeId || neInfo.IP == "" {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
|
||||
// 网元直连
|
||||
resData, err := neFetchlink.NeConfigAdd(neInfo, body.ParamName, body.Loc, body.ParamData)
|
||||
if err != nil {
|
||||
@@ -381,8 +381,8 @@ func (s NeConfigController) DataAdd(c *gin.Context) {
|
||||
func (s NeConfigController) DataRemove(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var query struct {
|
||||
NeType string `form:"neType" binding:"required"` // 网元类型
|
||||
NeId string `form:"neId" binding:"required"` // 网元ID
|
||||
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||
ParamName string `form:"paramName" binding:"required"`
|
||||
Loc string `form:"loc" binding:"required"` // 与数据对象内index一致,有多层时划分嵌套层(index/subParamName/index)
|
||||
}
|
||||
@@ -392,16 +392,16 @@ func (s NeConfigController) DataRemove(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
// 检查是否array
|
||||
info := s.neConfigService.FindByNeTypeAndParamName(query.NeType, query.ParamName)
|
||||
if info.ParamType != "array" {
|
||||
c.JSON(200, resp.ErrMsg("this attribute does not support adding"))
|
||||
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
|
||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(query.NeType, query.NeId)
|
||||
if neInfo.NeId != query.NeId || neInfo.IP == "" {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
// 检查是否array
|
||||
info := s.neConfigService.FindByNeTypeAndParamName(neInfo.NeType, query.ParamName)
|
||||
if info.ParamType != "array" {
|
||||
c.JSON(200, resp.ErrMsg("this attribute does not support adding"))
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -137,10 +137,10 @@ func (s NeConfigBackupController) Remove(c *gin.Context) {
|
||||
func (s NeConfigBackupController) Import(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
NeType string `json:"neType" binding:"required"`
|
||||
NeId string `json:"neId" binding:"required"`
|
||||
Type string `json:"type" binding:"required,oneof=backup upload"` // 导入类型
|
||||
Path string `json:"path" binding:"required"` // 文件路径
|
||||
CoreUID string `json:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `json:"neUid" binding:"required"` // 网元唯一标识
|
||||
Type string `json:"type" binding:"required,oneof=backup upload"` // 导入类型
|
||||
Path string `json:"path" binding:"required"` // 文件路径
|
||||
}
|
||||
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
|
||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||
@@ -153,8 +153,8 @@ func (s NeConfigBackupController) Import(c *gin.Context) {
|
||||
}
|
||||
|
||||
// 查网元
|
||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(body.NeType, body.NeId)
|
||||
if neInfo.NeId != body.NeId || neInfo.IP == "" {
|
||||
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
@@ -176,8 +176,8 @@ func (s NeConfigBackupController) Import(c *gin.Context) {
|
||||
func (s NeConfigBackupController) Export(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
NeType string `json:"neType" binding:"required"`
|
||||
NeId string `json:"neId" binding:"required"`
|
||||
CoreUID string `json:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `json:"neUid" binding:"required"` // 网元唯一标识
|
||||
}
|
||||
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
|
||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||
@@ -185,8 +185,8 @@ func (s NeConfigBackupController) Export(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
// 查网元
|
||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(body.NeType, body.NeId)
|
||||
if neInfo.NeId != body.NeId || neInfo.IP == "" {
|
||||
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
@@ -198,8 +198,9 @@ func (s NeConfigBackupController) Export(c *gin.Context) {
|
||||
}
|
||||
// 新增备份记录
|
||||
item := model.NeConfigBackup{
|
||||
CoreUID: neInfo.CoreUID,
|
||||
NeUID: neInfo.NeUID,
|
||||
NeType: neInfo.NeType,
|
||||
NeId: neInfo.NeId,
|
||||
Name: filepath.Base(zipFilePath),
|
||||
Path: zipFilePath,
|
||||
CreateBy: reqctx.LoginUserToUserName(c),
|
||||
|
||||
@@ -52,22 +52,22 @@ var mutex sync.Mutex
|
||||
// @Router /ne/info/state [get]
|
||||
func (s NeInfoController) State(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
NeType string `form:"neType" binding:"required"`
|
||||
NeId string `form:"neId" binding:"required"`
|
||||
var query struct {
|
||||
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||
}
|
||||
if err := c.ShouldBindQuery(&querys); err != nil {
|
||||
if err := c.ShouldBindQuery(&query); err != nil {
|
||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||
return
|
||||
}
|
||||
|
||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(querys.NeType, querys.NeId)
|
||||
if neInfo.NeId != querys.NeId || neInfo.IP == "" {
|
||||
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
neKey := fmt.Sprintf("%s_%s", neInfo.NeType, neInfo.NeId)
|
||||
neKey := fmt.Sprintf("%s_%s", neInfo.CoreUID, neInfo.NeUID)
|
||||
|
||||
// 网元直连
|
||||
resData, err := neFetchlink.NeState(neInfo)
|
||||
@@ -79,11 +79,12 @@ func (s NeInfoController) State(c *gin.Context) {
|
||||
resDataCache.(map[string]any)["online"] = false
|
||||
} else {
|
||||
resDataCache = map[string]any{
|
||||
"online": false,
|
||||
"neId": neInfo.NeId,
|
||||
"neName": neInfo.NeName,
|
||||
"neType": neInfo.NeType,
|
||||
"neIP": neInfo.IP,
|
||||
"online": false,
|
||||
"coreUid": neInfo.CoreUID,
|
||||
"neUid": neInfo.NeUID,
|
||||
"neName": neInfo.NeName,
|
||||
"neType": neInfo.NeType,
|
||||
"neIP": neInfo.IPAddr,
|
||||
}
|
||||
}
|
||||
neStateCacheMap.Store(neKey, resDataCache)
|
||||
@@ -102,7 +103,7 @@ func (s NeInfoController) State(c *gin.Context) {
|
||||
|
||||
// 网元neType和neID查询
|
||||
//
|
||||
// GET /byTypeAndID
|
||||
// GET /core-ne-uid
|
||||
//
|
||||
// @Tags network_element/info
|
||||
// @Accept json
|
||||
@@ -113,21 +114,21 @@ func (s NeInfoController) State(c *gin.Context) {
|
||||
// @Security TokenAuth
|
||||
// @Summary Network element neType and neID queries
|
||||
// @Description Network element neType and neID queries
|
||||
// @Router /ne/info/byTypeAndID [get]
|
||||
func (s NeInfoController) NeTypeAndID(c *gin.Context) {
|
||||
// @Router /ne/info/core-ne-uid [get]
|
||||
func (s NeInfoController) CoreUidAndNeUid(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
NeType string `form:"neType" binding:"required"`
|
||||
NeID string `form:"neId" binding:"required"`
|
||||
var query struct {
|
||||
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||
}
|
||||
if err := c.ShouldBindQuery(&querys); err != nil {
|
||||
if err := c.ShouldBindQuery(&query); err != nil {
|
||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||
return
|
||||
}
|
||||
|
||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(querys.NeType, querys.NeID)
|
||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
||||
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
@@ -136,7 +137,7 @@ func (s NeInfoController) NeTypeAndID(c *gin.Context) {
|
||||
|
||||
// 网元信息列表全部无分页
|
||||
//
|
||||
// GET /listAll
|
||||
// GET /list/all
|
||||
//
|
||||
// @Tags network_element/info
|
||||
// @Accept json
|
||||
@@ -149,12 +150,13 @@ func (s NeInfoController) NeTypeAndID(c *gin.Context) {
|
||||
// @Security TokenAuth
|
||||
// @Summary The list of network element information is all unpaginated
|
||||
// @Description The list of network element information is all unpaginated
|
||||
// @Router /ne/info/listAll [get]
|
||||
// @Router /ne/info/list/all [get]
|
||||
func (s NeInfoController) ListAll(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
CoreUID string `form:"coreUid"` // 核心网唯一标识
|
||||
NeUID string `form:"neUid"` // 网元唯一标识
|
||||
NeType string `form:"neType"`
|
||||
NeId string `form:"neId"`
|
||||
BandStatus bool `form:"bandStatus"`
|
||||
BandHost bool `form:"bandHost"`
|
||||
}
|
||||
@@ -166,12 +168,15 @@ func (s NeInfoController) ListAll(c *gin.Context) {
|
||||
|
||||
// 查询实体参数
|
||||
ne := model.NeInfo{}
|
||||
if querys.CoreUID != "" {
|
||||
ne.CoreUID = querys.CoreUID
|
||||
}
|
||||
if querys.NeUID != "" {
|
||||
ne.NeUID = querys.NeUID
|
||||
}
|
||||
if querys.NeType != "" {
|
||||
ne.NeType = querys.NeType
|
||||
}
|
||||
if querys.NeId != "" {
|
||||
ne.NeId = querys.NeId
|
||||
}
|
||||
neList := s.neInfoService.Find(ne, querys.BandStatus, querys.BandHost)
|
||||
if len(neList) == 0 {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
@@ -182,7 +187,7 @@ func (s NeInfoController) ListAll(c *gin.Context) {
|
||||
|
||||
// 网元端Para5G配置文件读取
|
||||
//
|
||||
// GET /para5GFile
|
||||
// GET /file/para5g
|
||||
func (s NeInfoController) Para5GFileRead(c *gin.Context) {
|
||||
data, err := s.neInfoService.NeConfPara5GRead()
|
||||
if err != nil {
|
||||
@@ -194,7 +199,7 @@ func (s NeInfoController) Para5GFileRead(c *gin.Context) {
|
||||
|
||||
// 网元端Para5G配置文件写入
|
||||
//
|
||||
// PUT /para5GFile
|
||||
// PUT /file/para5g
|
||||
func (s NeInfoController) Para5GFileWrite(c *gin.Context) {
|
||||
var body struct {
|
||||
Content map[string]any `json:"content" binding:"required"` // 内容
|
||||
@@ -216,11 +221,11 @@ func (s NeInfoController) Para5GFileWrite(c *gin.Context) {
|
||||
|
||||
// 网元端OAM配置文件读取
|
||||
//
|
||||
// GET /oamFile
|
||||
// GET /file/oam
|
||||
func (s NeInfoController) OAMFileRead(c *gin.Context) {
|
||||
var querys struct {
|
||||
NeType string `form:"neType" binding:"required"`
|
||||
NeID string `form:"neId" binding:"required"`
|
||||
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||
}
|
||||
if err := c.ShouldBindQuery(&querys); err != nil {
|
||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||
@@ -228,7 +233,7 @@ func (s NeInfoController) OAMFileRead(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
data, err := s.neInfoService.NeConfOAMReadSync(querys.NeType, querys.NeID)
|
||||
data, err := s.neInfoService.NeConfOAMReadSync(querys.CoreUID, querys.NeUID)
|
||||
if err != nil {
|
||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||
return
|
||||
@@ -238,12 +243,12 @@ func (s NeInfoController) OAMFileRead(c *gin.Context) {
|
||||
|
||||
// 网元端OAM配置文件写入
|
||||
//
|
||||
// PUT /oamFile
|
||||
// PUT /file/oam
|
||||
func (s NeInfoController) OAMFileWrite(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
NeType string `json:"neType" binding:"required"`
|
||||
NeID string `json:"neId" binding:"required"`
|
||||
CoreUID string `json:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `json:"neUid" binding:"required"` // 网元唯一标识
|
||||
Content map[string]any `json:"content" binding:"required"` // 内容
|
||||
Sync bool `json:"sync"` // 同步到网元
|
||||
}
|
||||
@@ -254,8 +259,8 @@ func (s NeInfoController) OAMFileWrite(c *gin.Context) {
|
||||
}
|
||||
|
||||
// 查询网元获取IP
|
||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(body.NeType, body.NeID)
|
||||
if neInfo.NeId != body.NeID || neInfo.IP == "" {
|
||||
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
@@ -354,10 +359,10 @@ func (s NeInfoController) Add(c *gin.Context) {
|
||||
}
|
||||
|
||||
// 检查属性值唯一
|
||||
uniqueInfo := s.neInfoService.CheckUniqueNeTypeAndNeId(body.NeType, body.NeId, 0)
|
||||
uniqueInfo := s.neInfoService.CheckUniqueCoreIdAndNeType(body.CoreUID, body.NeUID, 0)
|
||||
if !uniqueInfo {
|
||||
// 网元信息操作【%s】失败,同类型下标识已存在
|
||||
msg := i18n.TTemplate(language, "neInfo.errKeyExists", map[string]any{"key": body.NeId})
|
||||
msg := i18n.TTemplate(language, "neInfo.errKeyExists", map[string]any{"key": body.NeUID})
|
||||
c.JSON(200, resp.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
@@ -381,14 +386,16 @@ func (s NeInfoController) Add(c *gin.Context) {
|
||||
loginUserName := reqctx.LoginUserToUserName(c)
|
||||
// 新增Version信息
|
||||
neVersion := model.NeVersion{
|
||||
CoreUID: body.CoreUID,
|
||||
NeUID: body.NeUID,
|
||||
NeType: body.NeType,
|
||||
NeId: body.NeId,
|
||||
CreateBy: loginUserName,
|
||||
}
|
||||
// 新增License信息
|
||||
neLicense := model.NeLicense{
|
||||
CoreUID: body.CoreUID,
|
||||
NeUID: body.NeUID,
|
||||
NeType: body.NeType,
|
||||
NeId: body.NeId,
|
||||
CreateBy: loginUserName,
|
||||
}
|
||||
|
||||
@@ -450,10 +457,10 @@ func (s NeInfoController) Edit(c *gin.Context) {
|
||||
}
|
||||
|
||||
// 检查属性值唯一
|
||||
uniqueInfo := s.neInfoService.CheckUniqueNeTypeAndNeId(body.NeType, body.NeId, body.ID)
|
||||
uniqueInfo := s.neInfoService.CheckUniqueCoreIdAndNeType(body.CoreUID, body.NeUID, body.ID)
|
||||
if !uniqueInfo {
|
||||
// 网元信息操作【%s】失败,同类型下标识已存在
|
||||
msg := i18n.TTemplate(language, "neInfo.errKeyExists", map[string]any{"key": body.NeId})
|
||||
msg := i18n.TTemplate(language, "neInfo.errKeyExists", map[string]any{"key": body.NeUID})
|
||||
c.JSON(200, resp.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
@@ -490,8 +497,8 @@ func (s NeInfoController) Edit(c *gin.Context) {
|
||||
}
|
||||
|
||||
loginUserName := reqctx.LoginUserToUserName(c)
|
||||
neLicense := s.neLicenseService.FindByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
|
||||
neVersion := s.neVersionService.FindByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
|
||||
neLicense := s.neLicenseService.FindByCoreUidAndNeUid(neInfo.CoreUID, neInfo.NeUID)
|
||||
neVersion := s.neVersionService.FindByCoreUidAndNeUid(neInfo.CoreUID, neInfo.NeUID)
|
||||
|
||||
// 已有网元可获取的信息
|
||||
if body.ServerState != nil {
|
||||
@@ -515,16 +522,14 @@ func (s NeInfoController) Edit(c *gin.Context) {
|
||||
}
|
||||
|
||||
if neVersion.ID <= 0 {
|
||||
if neVersion.NeType != body.NeType || neVersion.NeId != body.NeId {
|
||||
if neVersion.NeType != body.NeType {
|
||||
neVersion.NeType = body.NeType
|
||||
neVersion.NeId = body.NeId
|
||||
}
|
||||
s.neVersionService.Update(neVersion)
|
||||
}
|
||||
if neLicense.ID <= 0 {
|
||||
if neLicense.NeType != body.NeType || neLicense.NeId != body.NeId {
|
||||
if neLicense.NeType != body.NeType {
|
||||
neLicense.NeType = body.NeType
|
||||
neLicense.NeId = body.NeId
|
||||
}
|
||||
s.neLicenseService.Update(neLicense)
|
||||
}
|
||||
|
||||
@@ -98,8 +98,8 @@ func (s *NeLicenseController) Info(c *gin.Context) {
|
||||
func (s *NeLicenseController) NeTypeAndID(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
NeType string `form:"neType" binding:"required"`
|
||||
NeId string `form:"neId" binding:"required"`
|
||||
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||
}
|
||||
if err := c.ShouldBindQuery(&querys); err != nil {
|
||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||
@@ -107,8 +107,8 @@ func (s *NeLicenseController) NeTypeAndID(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
neLicense := s.neLicenseService.FindByNeTypeAndNeID(querys.NeType, querys.NeId)
|
||||
if neLicense.NeId != querys.NeId {
|
||||
neLicense := s.neLicenseService.FindByCoreUidAndNeUid(querys.CoreUID, querys.NeUID)
|
||||
if neLicense.CoreUID != querys.CoreUID || neLicense.NeUID != querys.NeUID {
|
||||
// 没有可访问网元授权激活数据!
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "neLicense.noData")))
|
||||
return
|
||||
@@ -134,8 +134,8 @@ func (s *NeLicenseController) NeTypeAndID(c *gin.Context) {
|
||||
func (s *NeLicenseController) Code(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
NeType string `form:"neType" binding:"required"`
|
||||
NeId string `form:"neId" binding:"required"`
|
||||
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||
}
|
||||
if err := c.ShouldBindQuery(&querys); err != nil {
|
||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||
@@ -144,8 +144,8 @@ func (s *NeLicenseController) Code(c *gin.Context) {
|
||||
}
|
||||
|
||||
// 检查是否存在授权记录
|
||||
neLicense := s.neLicenseService.FindByNeTypeAndNeID(querys.NeType, querys.NeId)
|
||||
if neLicense.NeId != querys.NeId {
|
||||
neLicense := s.neLicenseService.FindByCoreUidAndNeUid(querys.CoreUID, querys.NeUID)
|
||||
if neLicense.CoreUID != querys.CoreUID || neLicense.NeUID != querys.NeUID {
|
||||
// 没有可访问网元授权激活数据!
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "neLicense.noData")))
|
||||
return
|
||||
@@ -192,8 +192,8 @@ func (s *NeLicenseController) Change(c *gin.Context) {
|
||||
}
|
||||
|
||||
// 检查是否存在授权记录
|
||||
neLicense := s.neLicenseService.FindByNeTypeAndNeID(body.NeType, body.NeId)
|
||||
if neLicense.NeId != body.NeId {
|
||||
neLicense := s.neLicenseService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||
if neLicense.CoreUID != body.CoreUID || neLicense.NeUID != body.NeUID {
|
||||
// 没有可访问网元授权激活数据!
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "neLicense.noData")))
|
||||
return
|
||||
@@ -237,8 +237,8 @@ func (s *NeLicenseController) Change(c *gin.Context) {
|
||||
func (s *NeLicenseController) State(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
NeType string `form:"neType" binding:"required"`
|
||||
NeId string `form:"neId" binding:"required"`
|
||||
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||
}
|
||||
if err := c.ShouldBindQuery(&querys); err != nil {
|
||||
c.JSON(400, resp.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
||||
@@ -246,16 +246,16 @@ func (s *NeLicenseController) State(c *gin.Context) {
|
||||
}
|
||||
|
||||
// 检查是否存在授权记录
|
||||
neLicense := s.neLicenseService.FindByNeTypeAndNeID(querys.NeType, querys.NeId)
|
||||
if neLicense.NeId != querys.NeId {
|
||||
neLicense := s.neLicenseService.FindByCoreUidAndNeUid(querys.CoreUID, querys.NeUID)
|
||||
if neLicense.CoreUID != querys.CoreUID || neLicense.NeUID != querys.NeUID {
|
||||
// 没有可访问网元授权激活数据!
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "neLicense.noData")))
|
||||
return
|
||||
}
|
||||
|
||||
// 查询网元获取IP获取网元状态
|
||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(neLicense.NeType, neLicense.NeId)
|
||||
if neInfo.NeId != neLicense.NeId || neInfo.IP == "" {
|
||||
neInfo := s.neInfoService.FindByCoreUidAndNeUid(neLicense.CoreUID, neLicense.NeUID)
|
||||
if neInfo.CoreUID != neLicense.CoreUID || neInfo.NeUID != neLicense.NeUID {
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -70,9 +70,9 @@ func (s *NeVersionController) Info(c *gin.Context) {
|
||||
func (s *NeVersionController) Operate(c *gin.Context) {
|
||||
language := reqctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
CoreUID string `json:"coreUid" binding:"required"` // 核心网唯一标识
|
||||
NeUID string `json:"neUid" binding:"required"` // 网元唯一标识
|
||||
Action string `json:"action" binding:"required,oneof=install upgrade rollback"` // 操作行为
|
||||
NeType string `json:"neType" gorm:"ne_type" binding:"required"` // 网元类型
|
||||
NeId string `json:"neId" gorm:"ne_id" binding:"required"` // 网元ID
|
||||
Preinput map[string]string `json:"preinput" ` // 预先输入参数
|
||||
}
|
||||
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
|
||||
@@ -81,8 +81,8 @@ func (s *NeVersionController) Operate(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
neVersion := s.neVersionService.FindByNeTypeAndNeID(body.NeType, body.NeId)
|
||||
if neVersion.NeId != body.NeId {
|
||||
neVersion := s.neVersionService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||
if neVersion.CoreUID != body.CoreUID || neVersion.NeUID != body.NeUID {
|
||||
// 没有可访问网元版本数据!
|
||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "neVersion.noData")))
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user