fix: 星网北向模块函数变更

This commit is contained in:
TsMask
2024-07-10 14:22:34 +08:00
parent 6b5ddfd79f
commit cfb7d506ae
3 changed files with 66 additions and 40 deletions

View File

@@ -8,6 +8,7 @@ import (
"nms_cxy/src/framework/utils/date" "nms_cxy/src/framework/utils/date"
"nms_cxy/src/framework/utils/ping" "nms_cxy/src/framework/utils/ping"
"nms_cxy/src/framework/vo/result" "nms_cxy/src/framework/vo/result"
neModel "nms_cxy/src/modules/network_element/model"
neService "nms_cxy/src/modules/network_element/service" neService "nms_cxy/src/modules/network_element/service"
"nms_cxy/src/modules/nms_cxy/service" "nms_cxy/src/modules/nms_cxy/service"
"nms_cxy/src/modules/nms_cxy/utils/common" "nms_cxy/src/modules/nms_cxy/utils/common"
@@ -67,7 +68,7 @@ func (s *SystemController) SoftwareVersionInfo(c *gin.Context) {
return return
} }
neVersion := s.neVersionService.SelectByTypeAndID(neInfo.NeType, neInfo.NeId) neVersion := s.neVersionService.SelectByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
if neVersion.ID == "" { if neVersion.ID == "" {
c.JSON(200, map[string]any{ c.JSON(200, map[string]any{
"requestId": body.RequestId, "requestId": body.RequestId,
@@ -98,17 +99,22 @@ func (s *SystemController) SoftwareDownloadCheck(c *gin.Context) {
return return
} }
neSoftware := s.neSoftwareService.SelectByVersionAndPath(body.SoftwareVersion, body.DownloadPath) list := s.neSoftwareService.SelectList(neModel.NeSoftware{
if neSoftware.Version != body.SoftwareVersion { Version: body.SoftwareVersion,
c.JSON(500, map[string]any{ Path: body.DownloadPath,
"requestId": body.RequestId, })
"errorInfo": "NE not exist", if len(list) > 0 {
}) neSoftware := list[0]
return if neSoftware.Version == body.SoftwareVersion {
c.JSON(200, map[string]any{
"requestId": body.RequestId,
})
return
}
} }
c.JSON(500, map[string]any{
c.JSON(200, map[string]any{
"requestId": body.RequestId, "requestId": body.RequestId,
"errorInfo": "NE not exist",
}) })
} }
@@ -164,7 +170,7 @@ func (s *SystemController) SoftwareUpdateVersion(c *gin.Context) {
return return
} }
neVersion := s.neVersionService.SelectByTypeAndID(neInfo.NeType, neInfo.NeId) neVersion := s.neVersionService.SelectByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
if neVersion.ID == "" { if neVersion.ID == "" {
c.JSON(200, map[string]any{ c.JSON(200, map[string]any{
"requestId": body.RequestId, "requestId": body.RequestId,

View File

@@ -3,19 +3,18 @@ package service
import ( import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"nms_cxy/lib/core/utils/date"
"nms_cxy/src/framework/constants/uploadsubpath" "nms_cxy/src/framework/constants/uploadsubpath"
"nms_cxy/src/framework/logger" "nms_cxy/src/framework/logger"
"nms_cxy/src/framework/utils/cmd" "nms_cxy/src/framework/utils/date"
"nms_cxy/src/framework/utils/file" "nms_cxy/src/framework/utils/file"
"nms_cxy/src/framework/utils/ssh"
neModel "nms_cxy/src/modules/network_element/model" neModel "nms_cxy/src/modules/network_element/model"
neService "nms_cxy/src/modules/network_element/service" neService "nms_cxy/src/modules/network_element/service"
"nms_cxy/src/modules/nms_cxy/model" "nms_cxy/src/modules/nms_cxy/model"
"nms_cxy/src/modules/nms_cxy/utils/common" "nms_cxy/src/modules/nms_cxy/utils/common"
"path/filepath"
"strings" "strings"
"time" "time"
neFetchlink "nms_cxy/src/modules/network_element/fetch_link"
) )
// 实例化数据层 ConfigImpl 结构体 // 实例化数据层 ConfigImpl 结构体
@@ -45,13 +44,29 @@ func (s *ConfigImpl) ConfigUploadOSS(neType string) error {
return fmt.Errorf("no ne info") return fmt.Errorf("no ne info")
} }
// 网元主机的SSH客户端
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.NeType, neInfo.NeId)
if err != nil {
logger.Errorf("ConfigUploadOSS NeRunSSHClient %s", err.Error())
return fmt.Errorf("ne info ssh client err")
}
defer sshClient.Close()
// 网元主机的SSH客户端进行文件传输
sftpClient, err := sshClient.NewClientSFTP()
if err != nil {
logger.Errorf("ConfigUploadOSS NewClientSFTP %s", err.Error())
return fmt.Errorf("ne info sftp client err")
}
defer sftpClient.Close()
// 配置文件目录 // 配置文件目录
nePath := fmt.Sprintf("/usr/local/etc/%s/*.yaml", strings.ToLower(neType)) nePath := fmt.Sprintf("/usr/local/etc/%s/*.yaml", strings.ToLower(neType))
localPath := fmt.Sprintf("/usr/local/omc/etc/%s/", strings.ToLower(neType)) localPath := fmt.Sprintf("/usr/local/omc/etc/%s/", strings.ToLower(neType))
err := ssh.FileSCPNeToLocal(neInfo.IP, nePath, localPath) // 复制到本地
if err != nil { if err = sftpClient.CopyDirRemoteToLocal(nePath, localPath); err != nil {
logger.Errorf("ConfigUploadOSS scp err %s", err.Error()) logger.Errorf("%s : please check if scp remote copy is allowed", neInfo.NeType)
return err return fmt.Errorf("copy config err")
} }
// 文件名 // 文件名
@@ -74,7 +89,7 @@ func (s *ConfigImpl) ConfigUploadOSS(neType string) error {
func (s *ConfigImpl) ConfigParamQuery(neInfo neModel.NeInfo, operPara []string) map[string]any { func (s *ConfigImpl) ConfigParamQuery(neInfo neModel.NeInfo, operPara []string) map[string]any {
resultMap := map[string]any{} resultMap := map[string]any{}
neState, err := neService.NeState(neInfo) neState, err := neFetchlink.NeState(neInfo)
if err != nil { if err != nil {
return resultMap return resultMap
} }
@@ -492,28 +507,33 @@ func (s *ConfigImpl) paramModifyBase(neInfo neModel.NeInfo, operPara map[string]
// 重启 // 重启
if v, ok := operPara["Reboot"]; ok && v != nil { if v, ok := operPara["Reboot"]; ok && v != nil {
if v.(bool) { if v.(bool) {
cmdStr := fmt.Sprintf("sleep 5s && sudo service %s restart", strings.ToLower(neInfo.NeType)) neTypeLower := strings.ToLower(neInfo.NeType)
if neInfo.NeType == "IMS" { cmdStr := fmt.Sprintf("sudo service %s restart", neTypeLower)
cmdStr = "sleep 5s && sudo ims-start restart" if neTypeLower == "omc" {
cmdStr = "nohup sh -c \"sudo systemctl stop restagent && sleep 5s && sudo systemctl restart restagent\" > /dev/null 2>&1 &"
} else if neTypeLower == "ims" {
cmdStr = "ims-stop || true && ims-start"
}
_, err := s.neInfoService.NeRunSSHCmd(neInfo.NeType, neInfo.NeId, cmdStr)
if err != nil {
logger.Errorf("NE service reboot error %s \n", err.Error())
} }
go func() {
_, err := cmd.ExecWithCheck("nohup", "sh", "-c", cmdStr, "> /dev/null 2>&1 &\n")
if err != nil {
logger.Errorf("NE service reboot error %s \n", err.Error())
}
}()
} }
} }
// 回退 // 回退
if v, ok := operPara["BackupSoftwareActivateEnable"]; ok && v != nil { if v, ok := operPara["BackupSoftwareActivateEnable"]; ok && v != nil {
if v.(bool) { if v.(bool) {
neVersion := s.neVersionService.SelectByTypeAndID(neInfo.NeType, neInfo.NeId) neVersion := s.neVersionService.SelectByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
if neVersion.NeId == neInfo.NeId { if neVersion.NeId == neInfo.NeId {
ssh.FileSCPLocalToNe(neInfo.IP, "/usr/local/omc/bin/rbkpkg.sh", "/tmp/") preinput := map[string]string{}
ssh.FileSCPLocalToNe(neInfo.IP, neVersion.PreFile, "/tmp/") if neInfo.NeType == "IMS" {
cmdStr := fmt.Sprintf("chmod +x /tmp/rbkpkg.sh \n sudo /tmp/rbkpkg.sh '/tmp/%s' %s", filepath.Base(neVersion.PreFile), neInfo.NeType) preinput["pisCSCF"] = "y"
_, err := cmd.ExecWithCheck("ssh", cmdStr) preinput["updateMFetc"] = "No"
preinput["updateMFshare"] = "No"
}
// 进行相关命令操作
_, err := s.neVersionService.Operate("rollback", neVersion, preinput)
if err != nil { if err != nil {
logger.Errorf("NE service backupSoftwareActivateEnable error %s \n", err.Error()) logger.Errorf("NE service backupSoftwareActivateEnable error %s \n", err.Error())
} }
@@ -522,12 +542,12 @@ func (s *ConfigImpl) paramModifyBase(neInfo neModel.NeInfo, operPara map[string]
} }
// 获取网元状态是否正常 // 获取网元状态是否正常
_, err := neService.NeState(neInfo) _, err := neFetchlink.NeState(neInfo)
if err != nil { if err != nil {
neInfo.Status = "1" neInfo.Status = "1"
} else { } else {
// 下发网管配置信息给网元 // 下发网管配置信息给网元
_, err = neService.NeConfigOMC(neInfo) _, err = neFetchlink.NeConfigOMC(neInfo)
if err == nil { if err == nil {
neInfo.Status = "0" neInfo.Status = "0"
} else { } else {

View File

@@ -37,7 +37,7 @@ func (s *LogImpl) OperateLogToFile(language, startTime, endTime string) (int64,
"endTime": endTime, "endTime": endTime,
"pageNum": pageNum, "pageNum": pageNum,
"pageSize": pageSize, "pageSize": pageSize,
}) }, "")
total := parse.Number(pageData["total"]) total := parse.Number(pageData["total"])
rows, ok := pageData["rows"].([]systemModel.SysLogOperate) rows, ok := pageData["rows"].([]systemModel.SysLogOperate)
@@ -61,7 +61,7 @@ func (s *LogImpl) OperateLogToFile(language, startTime, endTime string) (int64,
"endTime": endTime, "endTime": endTime,
"pageNum": pageNum, "pageNum": pageNum,
"pageSize": pageSize, "pageSize": pageSize,
}) }, "")
rows, ok := pageData["rows"].([]systemModel.SysLogOperate) rows, ok := pageData["rows"].([]systemModel.SysLogOperate)
if !ok || len(rows) <= 0 { if !ok || len(rows) <= 0 {
return int64(len(dataArr)), "" return int64(len(dataArr)), ""
@@ -100,7 +100,7 @@ func (s *LogImpl) SecurityLogToFile(language, startTime, endTime string) (int64,
"endTime": endTime, "endTime": endTime,
"pageNum": pageNum, "pageNum": pageNum,
"pageSize": pageSize, "pageSize": pageSize,
}) }, "")
total := parse.Number(pageData["total"]) total := parse.Number(pageData["total"])
rows, ok := pageData["rows"].([]systemModel.SysLogLogin) rows, ok := pageData["rows"].([]systemModel.SysLogLogin)
@@ -125,7 +125,7 @@ func (s *LogImpl) SecurityLogToFile(language, startTime, endTime string) (int64,
"endTime": endTime, "endTime": endTime,
"pageNum": pageNum, "pageNum": pageNum,
"pageSize": pageSize, "pageSize": pageSize,
}) }, "")
rows, ok := pageData["rows"].([]systemModel.SysLogLogin) rows, ok := pageData["rows"].([]systemModel.SysLogLogin)
if !ok || len(rows) <= 0 { if !ok || len(rows) <= 0 {
return int64(len(dataArr)), "" return int64(len(dataArr)), ""