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

View File

@@ -3,19 +3,18 @@ package service
import (
"encoding/json"
"fmt"
"nms_cxy/lib/core/utils/date"
"nms_cxy/src/framework/constants/uploadsubpath"
"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/ssh"
neModel "nms_cxy/src/modules/network_element/model"
neService "nms_cxy/src/modules/network_element/service"
"nms_cxy/src/modules/nms_cxy/model"
"nms_cxy/src/modules/nms_cxy/utils/common"
"path/filepath"
"strings"
"time"
neFetchlink "nms_cxy/src/modules/network_element/fetch_link"
)
// 实例化数据层 ConfigImpl 结构体
@@ -45,13 +44,29 @@ func (s *ConfigImpl) ConfigUploadOSS(neType string) error {
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))
localPath := fmt.Sprintf("/usr/local/omc/etc/%s/", strings.ToLower(neType))
err := ssh.FileSCPNeToLocal(neInfo.IP, nePath, localPath)
if err != nil {
logger.Errorf("ConfigUploadOSS scp err %s", err.Error())
return err
// 复制到本地
if err = sftpClient.CopyDirRemoteToLocal(nePath, localPath); err != nil {
logger.Errorf("%s : please check if scp remote copy is allowed", neInfo.NeType)
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 {
resultMap := map[string]any{}
neState, err := neService.NeState(neInfo)
neState, err := neFetchlink.NeState(neInfo)
if err != nil {
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.(bool) {
cmdStr := fmt.Sprintf("sleep 5s && sudo service %s restart", strings.ToLower(neInfo.NeType))
if neInfo.NeType == "IMS" {
cmdStr = "sleep 5s && sudo ims-start restart"
neTypeLower := strings.ToLower(neInfo.NeType)
cmdStr := fmt.Sprintf("sudo service %s restart", neTypeLower)
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"
}
go func() {
_, err := cmd.ExecWithCheck("nohup", "sh", "-c", cmdStr, "> /dev/null 2>&1 &\n")
_, err := s.neInfoService.NeRunSSHCmd(neInfo.NeType, neInfo.NeId, cmdStr)
if err != nil {
logger.Errorf("NE service reboot error %s \n", err.Error())
}
}()
}
}
// 回退
if v, ok := operPara["BackupSoftwareActivateEnable"]; ok && v != nil {
if v.(bool) {
neVersion := s.neVersionService.SelectByTypeAndID(neInfo.NeType, neInfo.NeId)
neVersion := s.neVersionService.SelectByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
if neVersion.NeId == neInfo.NeId {
ssh.FileSCPLocalToNe(neInfo.IP, "/usr/local/omc/bin/rbkpkg.sh", "/tmp/")
ssh.FileSCPLocalToNe(neInfo.IP, neVersion.PreFile, "/tmp/")
cmdStr := fmt.Sprintf("chmod +x /tmp/rbkpkg.sh \n sudo /tmp/rbkpkg.sh '/tmp/%s' %s", filepath.Base(neVersion.PreFile), neInfo.NeType)
_, err := cmd.ExecWithCheck("ssh", cmdStr)
preinput := map[string]string{}
if neInfo.NeType == "IMS" {
preinput["pisCSCF"] = "y"
preinput["updateMFetc"] = "No"
preinput["updateMFshare"] = "No"
}
// 进行相关命令操作
_, err := s.neVersionService.Operate("rollback", neVersion, preinput)
if err != nil {
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 {
neInfo.Status = "1"
} else {
// 下发网管配置信息给网元
_, err = neService.NeConfigOMC(neInfo)
_, err = neFetchlink.NeConfigOMC(neInfo)
if err == nil {
neInfo.Status = "0"
} else {

View File

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