ref 网元版本操作支持安装功能
This commit is contained in:
@@ -4,10 +4,10 @@ import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"be.ems/lib/core/utils/parse"
|
||||
"be.ems/src/framework/utils/file"
|
||||
"be.ems/src/modules/network_element/model"
|
||||
"be.ems/src/modules/network_element/repository"
|
||||
@@ -119,6 +119,12 @@ func (r *NeVersionImpl) Operate(action string, neVersion model.NeVersion, preinp
|
||||
nePath := "/tmp"
|
||||
neFilePath := fmt.Sprintf("%s/%s", nePath, fileName)
|
||||
|
||||
// 网元信息
|
||||
neInfo := NewNeInfoImpl.SelectNeInfoByNeTypeAndNeID(neVersion.NeType, neVersion.NeId)
|
||||
if neInfo.NeId != neVersion.NeId {
|
||||
return "", fmt.Errorf("error found neinfo")
|
||||
}
|
||||
|
||||
// 网元主机的SSH客户端
|
||||
sshClient, err := NewNeInfoImpl.NeRunSSHclient(neVersion.NeType, neVersion.NeId)
|
||||
if err != nil {
|
||||
@@ -137,28 +143,23 @@ func (r *NeVersionImpl) Operate(action string, neVersion model.NeVersion, preinp
|
||||
return "", fmt.Errorf("error uploading package")
|
||||
}
|
||||
|
||||
var para5GData map[string]any
|
||||
if action == "install" {
|
||||
// ========= para5G公共参数文件 start =========
|
||||
// 网管本地路径
|
||||
omcPara5GFilePath := "/usr/local/etc/omc/para5G.yaml"
|
||||
if runtime.GOOS == "windows" {
|
||||
omcPara5GFilePath = fmt.Sprintf("C:%s", omcPara5GFilePath)
|
||||
// ========= 网元公共配置文件 start =========
|
||||
para5GData, err = NewNeInfoImpl.NeConfPara5GRead()
|
||||
if para5GData == nil || err != nil {
|
||||
return "", fmt.Errorf("error read para5G file info")
|
||||
}
|
||||
// 网元端配置路径
|
||||
nePara5GFilePath := "/usr/local/etc/conf/para5G.yaml"
|
||||
nePara5GFileDir := filepath.ToSlash(filepath.Dir(nePara5GFilePath))
|
||||
// 修改网元文件权限
|
||||
sshClient.RunCMD(fmt.Sprintf("sudo mkdir -p %s && sudo chmod o+w %s && sudo chmod o+w %s", nePara5GFileDir, nePara5GFileDir, nePara5GFilePath))
|
||||
// 复制到网元进行覆盖
|
||||
if err = sftpClient.CopyFileLocalToRemote(omcPara5GFilePath, nePara5GFilePath); err != nil {
|
||||
return "", fmt.Errorf("please check if scp remote copy is allowed")
|
||||
if err := NewNeInfoImpl.NeConfPara5GWirte(para5GData, []string{fmt.Sprintf("%s@%s", neInfo.NeType, neInfo.NeId)}); err != nil {
|
||||
return "", fmt.Errorf("error wirte OAM file info")
|
||||
}
|
||||
// ========= para5G公共参数文件 end =========
|
||||
// ========= 网元公共配置文件 end ===========
|
||||
}
|
||||
|
||||
// ========= 安装命令 start =========
|
||||
neTypeLower := strings.ToLower(neInfo.NeType)
|
||||
// 命令终止结束标记
|
||||
okFlagStr := fmt.Sprintf("%s version %s successful!", neVersion.NeType, action)
|
||||
okFlagStr := fmt.Sprintf("%s version %s successful!", neTypeLower, action)
|
||||
// 安装软件包
|
||||
pkgCmdStr := fmt.Sprintf("sudo dpkg -i %s", neFilePath)
|
||||
fileExt := filepath.Ext(strings.ToLower(fileName))
|
||||
@@ -166,9 +167,9 @@ func (r *NeVersionImpl) Operate(action string, neVersion model.NeVersion, preinp
|
||||
pkgCmdStr = fmt.Sprintf("sudo rpm -Uvh %s", neFilePath)
|
||||
}
|
||||
|
||||
// 预先参数
|
||||
// 组合命令输入
|
||||
cmdStrArr := []string{}
|
||||
if neVersion.NeType == "OMC" {
|
||||
if neInfo.NeType == "OMC" {
|
||||
cmdStrArr = append(cmdStrArr, pkgCmdStr)
|
||||
if action == "install" {
|
||||
cmdStrArr = append(cmdStrArr, "sudo /usr/local/omc/bin/setomc.sh -m install") // 初始化数据库
|
||||
@@ -178,7 +179,7 @@ func (r *NeVersionImpl) Operate(action string, neVersion model.NeVersion, preinp
|
||||
}
|
||||
cmdStrArr = append(cmdStrArr, "sudo /usr/local/omc/bin/omcsvc.sh restart")
|
||||
return sshClient.RunCMD(fmt.Sprintf("nohup sh -c \"sleep 3s && %s\" > /dev/null 2>&1 & \n", strings.Join(cmdStrArr, " && ")))
|
||||
} else if neVersion.NeType == "IMS" {
|
||||
} else if neInfo.NeType == "IMS" {
|
||||
if !strings.Contains(strings.ToLower(fileName), "ims") {
|
||||
return "", fmt.Errorf("error file package not ims")
|
||||
}
|
||||
@@ -186,15 +187,19 @@ func (r *NeVersionImpl) Operate(action string, neVersion model.NeVersion, preinp
|
||||
cmdStrArr = append(cmdStrArr, pkgCmdStr+" \n")
|
||||
cmdStrArr = append(cmdStrArr, "sudo ims-stop || true && sudo ims-start")
|
||||
// 公网 PLMN地址
|
||||
pubIP, pubIPOk := preinput["pubIP"]
|
||||
mcc, mccOk := preinput["mcc"]
|
||||
mnc, mncOk := preinput["mnc"]
|
||||
if pubIPOk && pubIP != "" && mccOk && mcc != "" && mncOk && mnc != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo /usr/local/etc/ims/default/tools/modipplmn.sh %s %s %s \n", pubIP, mcc, mnc))
|
||||
sipIP, sipIPOk := para5GData["SIPIP"]
|
||||
mcc, mccOk := para5GData["MCC"]
|
||||
mnc, mncOk := para5GData["MNC"]
|
||||
if sipIPOk && sipIP != "" && mccOk && mcc != "" && mncOk && mnc != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo /usr/local/etc/ims/default/tools/modipplmn.sh %s %s %s \n", sipIP, mcc, mnc))
|
||||
}
|
||||
// 内网 服务地址
|
||||
if priIP, ok := preinput["priIP"]; ok && priIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo /usr/local/etc/ims/default/tools/modintraip.sh %s \n", priIP))
|
||||
if imsIP, ok := para5GData["IMSIP"]; ok && imsIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo /usr/local/etc/ims/default/tools/modintraip.sh %s \n", imsIP))
|
||||
}
|
||||
// IWF连接PCF服务
|
||||
if pcfIP, ok := para5GData["PCFIP"]; ok && pcfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.160/%s/g\" /usr/local/etc/iwf/iwf_conf.yaml \n", pcfIP))
|
||||
}
|
||||
// 30s后停止服务
|
||||
cmdStrArr = append(cmdStrArr, "nohup sh -c \"sleep 30s && sudo ims-stop\" > /dev/null 2>&1 & \n")
|
||||
@@ -204,9 +209,291 @@ func (r *NeVersionImpl) Operate(action string, neVersion model.NeVersion, preinp
|
||||
cmdStrArr = append(cmdStrArr, "sudo ims-start \n")
|
||||
}
|
||||
} else {
|
||||
neTypeLower := strings.ToLower(neVersion.NeType)
|
||||
if action == "install" {
|
||||
cmdStrArr = append(cmdStrArr, pkgCmdStr+" \n")
|
||||
|
||||
// AMF配置修改
|
||||
if neTypeLower == "amf" {
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/amf/default/amfcfg.yaml /usr/local/etc/amf/amfcfg.yaml \n")
|
||||
if amfIP, ok := para5GData["AMFIP"]; ok && amfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.120/%s/g\" /usr/local/etc/amf/amfcfg.yaml \n", amfIP))
|
||||
}
|
||||
if n2IP, ok := para5GData["N2IP"]; ok && n2IP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/192.168.8.120/%s/g\" /usr/local/etc/amf/amfcfg.yaml \n", n2IP))
|
||||
}
|
||||
if mcc, ok := para5GData["MCC"]; ok && mcc != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/mcc: 001/mcc: %s/g\" /usr/local/etc/amf/amfcfg.yaml \n", mcc))
|
||||
}
|
||||
if mnc, ok := para5GData["MNC"]; ok && mnc != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/mnc: 01/mnc: %s/g\" /usr/local/etc/amf/amfcfg.yaml \n", mnc))
|
||||
}
|
||||
if sst, ok := para5GData["SST"]; ok && sst != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/sst: 1/sst: %s/g\" /usr/local/etc/amf/amfcfg.yaml \n", sst))
|
||||
}
|
||||
if sd, ok := para5GData["SD"]; ok && sd != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/sd: 000001/sd: %s/g\" /usr/local/etc/amf/amfcfg.yaml \n", sd))
|
||||
}
|
||||
if nrtac, ok := para5GData["NRTAC"]; ok && nrtac != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/- 4388/- %s/g\" /usr/local/etc/amf/amfcfg.yaml \n", nrtac))
|
||||
}
|
||||
if ausfIP, ok := para5GData["AUSFIP"]; ok && ausfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.130/%s/g\" /usr/local/etc/amf/amfcfg.yaml \n", ausfIP))
|
||||
}
|
||||
if udmIP, ok := para5GData["UDMIP"]; ok && udmIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.140/%s/g\" /usr/local/etc/amf/amfcfg.yaml \n", udmIP))
|
||||
}
|
||||
if smfIP, ok := para5GData["SMFIP"]; ok && smfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.150/%s/g\" /usr/local/etc/amf/amfcfg.yaml \n", smfIP))
|
||||
}
|
||||
if pcfIP, ok := para5GData["PCFIP"]; ok && pcfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.160/%s/g\" /usr/local/etc/amf/amfcfg.yaml \n", pcfIP))
|
||||
}
|
||||
if dnn, ok := para5GData["DNN"]; ok && dnn != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/- internet/- %s/g\" /usr/local/etc/amf/amfcfg.yaml \n", dnn))
|
||||
}
|
||||
}
|
||||
// AUSF配置修改
|
||||
if neTypeLower == "ausf" {
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/ausf/default/ausfcfg.yaml /usr/local/etc/ausf/ausfcfg.yaml \n")
|
||||
if ausfIP, ok := para5GData["AUSFIP"]; ok && ausfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.130/%s/g\" /usr/local/etc/ausf/ausfcfg.yaml \n", ausfIP))
|
||||
}
|
||||
if udmIP, ok := para5GData["UDMIP"]; ok && udmIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.140/%s/g\" /usr/local/etc/ausf/ausfcfg.yaml \n", udmIP))
|
||||
}
|
||||
if mcc, ok := para5GData["MCC"]; ok && mcc != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/mcc: 001/mcc: %s/g\" /usr/local/etc/ausf/ausfcfg.yaml \n", mcc))
|
||||
}
|
||||
if mnc, ok := para5GData["MNC"]; ok && mnc != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/mnc: 01/mnc: %s/g\" /usr/local/etc/ausf/ausfcfg.yaml \n", mnc))
|
||||
}
|
||||
}
|
||||
// UDM配置修改
|
||||
if neTypeLower == "udm" {
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/udm/default/udmcfg.yaml /usr/local/etc/udm/udmcfg.yaml \n")
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/udm/default/oam_manager.yaml /usr/local/etc/udm/oam_manager.yaml \n")
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/udm/default/nssai.yaml /usr/local/etc/udm/nssai.yaml \n")
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/udm/default/snssai.yaml /usr/local/etc/udm/snssai.yaml \n")
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/udm/default/as.yaml /usr/local/etc/udm/as.yaml \n")
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/udm/default/dnn.yaml /usr/local/etc/udm/dnn.yaml \n")
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/udm/default/scscfSet.yaml /usr/local/etc/udm/scscfSet.yaml \n")
|
||||
|
||||
if udmIP, ok := para5GData["UDMIP"]; ok && udmIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.140/%s/g\" /usr/local/etc/udm/udmcfg.yaml \n", udmIP))
|
||||
}
|
||||
if ausfIP, ok := para5GData["AUSFIP"]; ok && ausfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.130/%s/g\" /usr/local/etc/udm/udmcfg.yaml \n", ausfIP))
|
||||
}
|
||||
if amfIP, ok := para5GData["AMFIP"]; ok && amfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.120/%s/g\" /usr/local/etc/udm/udmcfg.yaml \n", amfIP))
|
||||
}
|
||||
mcc, mccOk := para5GData["MCC"]
|
||||
mnc, mncOk := para5GData["MNC"]
|
||||
if mccOk && mcc != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/mcc: 001/mcc: %s/g\" /usr/local/etc/udm/udmcfg.yaml \n", mcc))
|
||||
}
|
||||
if mncOk && mnc != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/mnc: 01/mnc: %s/g\" /usr/local/etc/udm/udmcfg.yaml \n", mnc))
|
||||
}
|
||||
if mccOk && mcc != "" && mncOk && mnc != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/mnc001.mcc001/mnc0%s.mcc%s/g\" /usr/local/etc/udm/udmcfg.yaml \n", mnc, mcc))
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/mnc001.mcc001/mnc0%s.mcc%s/g\" /usr/local/etc/udm/as.yaml \n", mnc, mcc))
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/mnc001.mcc001/mnc0%s.mcc%s/g\" /usr/local/etc/udm/scscfSet.yaml \n", mnc, mcc))
|
||||
}
|
||||
if sst, ok := para5GData["SST"]; ok && sst != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/sst: 1/sst: %s/g\" /usr/local/etc/udm/nssai.yaml \n", sst))
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/sst: 1/sst: %s/g\" /usr/local/etc/udm/snssai.yaml \n", sst))
|
||||
}
|
||||
if sd, ok := para5GData["SD"]; ok && sd != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/sd: 000001/sd: %s/g\" /usr/local/etc/udm/nssai.yaml \n", sd))
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/sd: 000001/sd: %s/g\" /usr/local/etc/udm/snssai.yaml \n", sd))
|
||||
}
|
||||
if dnn, ok := para5GData["DNN"]; ok && dnn != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/internet/%s/g\" /usr/local/etc/udm/snssai.yaml \n", dnn))
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/internet/%s/g\" /usr/local/etc/udm/dnn.yaml \n", dnn))
|
||||
}
|
||||
if sipIP, ok := para5GData["SIPIP"]; ok && sipIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/192.168.8.110/%s/g\" /usr/local/etc/udm/as.yaml \n", sipIP))
|
||||
}
|
||||
}
|
||||
// SMF配置修改
|
||||
if neTypeLower == "smf" {
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/smf/default/smf_conf.yaml /usr/local/etc/smf/smf_conf.yaml \n")
|
||||
if sipIP, ok := para5GData["SIPIP"]; ok && sipIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/192.168.8.110/%s/g\" /usr/local/etc/smf/smf_conf.yaml \n", sipIP))
|
||||
}
|
||||
if amfIP, ok := para5GData["AMFIP"]; ok && amfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.120/%s/g\" /usr/local/etc/smf/smf_conf.yaml \n", amfIP))
|
||||
}
|
||||
if udmIP, ok := para5GData["UDMIP"]; ok && udmIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.140/%s/g\" /usr/local/etc/smf/smf_conf.yaml \n", udmIP))
|
||||
}
|
||||
if smfIP, ok := para5GData["SMFIP"]; ok && smfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.150/%s/g\" /usr/local/etc/smf/smf_conf.yaml \n", smfIP))
|
||||
}
|
||||
if pcfIP, ok := para5GData["PCFIP"]; ok && pcfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.160/%s/g\" /usr/local/etc/smf/smf_conf.yaml \n", pcfIP))
|
||||
}
|
||||
if upfIP, ok := para5GData["UPFIP"]; ok && upfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.190/%s/g\" /usr/local/etc/smf/smf_conf.yaml \n", upfIP))
|
||||
}
|
||||
if dnn, ok := para5GData["DNN"]; ok && dnn != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/internet/%s/g\" /usr/local/etc/smf/smf_conf.yaml \n", dnn))
|
||||
}
|
||||
if ueIP, ok := para5GData["UEIP"]; ok && ueIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s|10.2.1.0/24|%s/24|g\" /usr/local/etc/smf/smf_conf.yaml \n", ueIP))
|
||||
}
|
||||
}
|
||||
// PCF配置修改
|
||||
if neTypeLower == "pcf" {
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/pcf/default/pcfcfg.yaml /usr/local/etc/pcf/pcfcfg.yaml \n")
|
||||
if amfIP, ok := para5GData["AMFIP"]; ok && amfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.120/%s/g\" /usr/local/etc/pcf/pcfcfg.yaml \n", amfIP))
|
||||
}
|
||||
if udmIP, ok := para5GData["UDMIP"]; ok && udmIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.140/%s/g\" /usr/local/etc/pcf/pcfcfg.yaml \n", udmIP))
|
||||
}
|
||||
if pcfIP, ok := para5GData["PCFIP"]; ok && pcfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.160/%s/g\" /usr/local/etc/pcf/pcfcfg.yaml \n", pcfIP))
|
||||
}
|
||||
mcc, mccOk := para5GData["MCC"]
|
||||
mnc, mncOk := para5GData["MNC"]
|
||||
if mccOk && mcc != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/mcc: 001/mcc: %s/g\" /usr/local/etc/pcf/pcfcfg.yaml \n", mcc))
|
||||
}
|
||||
if mncOk && mnc != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/mnc: 01/mnc: %s/g\" /usr/local/etc/pcf/pcfcfg.yaml \n", mnc))
|
||||
}
|
||||
if mccOk && mcc != "" && mncOk && mnc != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/mnc001.mcc001/mnc0%s.mcc%s/g\" /usr/local/etc/pcf/pcfcfg.yaml \n", mnc, mcc))
|
||||
}
|
||||
}
|
||||
|
||||
// UPF配置修改-标准版
|
||||
if upfType, ok := para5GData["UPFType"]; ok && upfType == "Standard" && neTypeLower == "upf" {
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/upf/default/upfcfg.yaml /usr/local/etc/upf/upfcfg.yaml \n")
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/upf/default/upfForwarder_1.yaml /usr/local/etc/upf/upfForwarder_1.yaml \n")
|
||||
if upfIP, ok := para5GData["UPFIP"]; ok && upfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.190/%s/g\" /usr/local/etc/upf/upfcfg.yaml \n", upfIP))
|
||||
}
|
||||
if n3IP, ok := para5GData["N3IP"]; ok && n3IP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/192.168.8.190/%s/g\" /usr/local/etc/upf/upfForwarder_1.yaml \n", n3IP))
|
||||
}
|
||||
if n3MAC, ok := para5GData["N3MAC"]; ok && n3MAC != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: \"N3\"/,/macAddr: \"00:00:00:00:00:00\"/s/macAddr: \"00:00:00:00:00:00\"/macAddr: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", n3MAC))
|
||||
}
|
||||
if n3PCI, ok := para5GData["N3PCI"]; ok && n3PCI != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: \"N3\"/,/interfacePCI: \"0000:00:00.0\"/s/interfacePCI: \"0000:00:00.0\"/interfacePCI: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", n3PCI))
|
||||
}
|
||||
if n3Mask, ok := para5GData["N3Mask"]; ok && n3Mask != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: \"N3\"/,/ipv4Mask: \"255.255.240.0\"/s/ipv4Mask: \"255.255.240.0\"/ipv4Mask: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", n3Mask))
|
||||
}
|
||||
if nN3GW, ok := para5GData["nN3GW"]; ok && nN3GW != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: \"N3\"/,/gatewayIpv4: 192.168.1.254/s/gatewayIpv4: 192.168.1.254/gatewayIpv4: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", nN3GW))
|
||||
}
|
||||
if n6IP, ok := para5GData["N6IP"]; ok && n6IP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/192.168.8.191/%s/g\" /usr/local/etc/upf/upfForwarder_1.yaml \n", n6IP))
|
||||
}
|
||||
if n6MAC, ok := para5GData["N6MAC"]; ok && n6MAC != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: \"N6\"/,/macAddr: \"00:00:00:00:00:00\"/s/macAddr: \"00:00:00:00:00:00\"/macAddr: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", n6MAC))
|
||||
}
|
||||
if n6PCI, ok := para5GData["N6PCI"]; ok && n6PCI != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: \"N6\"/,/interfacePCI: \"0000:00:00.0\"/s/interfacePCI: \"0000:00:00.0\"/interfacePCI: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", n6PCI))
|
||||
}
|
||||
if n6Mask, ok := para5GData["N6Mask"]; ok && n6Mask != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: \"N6\"/,/ipv4Mask: \"255.255.240.0\"/s/ipv4Mask: \"255.255.240.0\"/ipv4Mask: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", n6Mask))
|
||||
}
|
||||
if nN6GW, ok := para5GData["nN6GW"]; ok && nN6GW != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: \"N6\"/,/gatewayIpv4: 192.168.1.254/s/gatewayIpv4: 192.168.1.254/gatewayIpv4: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", nN6GW))
|
||||
}
|
||||
}
|
||||
// UPF配置修改-轻量版
|
||||
if upfType, ok := para5GData["UPFType"]; ok && upfType == "Light" && neTypeLower == "upf" {
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/upf/default/upfcfg.yaml /usr/local/etc/upf/upfcfg.yaml \n")
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/upf/default/upfForwarder_1.yaml /usr/local/etc/upf/upfForwarder_1.yaml \n")
|
||||
if upfIP, ok := para5GData["UPFIP"]; ok && upfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.190/%s/g\" /usr/local/etc/upf/upfcfg.yaml \n", upfIP))
|
||||
}
|
||||
if n3IP, ok := para5GData["N3IP"]; ok && n3IP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/192.168.8.190/%s/g\" /usr/local/etc/upf/upfForwarder_1.yaml \n", n3IP))
|
||||
}
|
||||
if n3Mask, ok := para5GData["N3Mask"]; ok && n3Mask != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: \"N3\"/,/ipv4Mask: \"255.255.240.0\"/s/ipv4Mask: \"255.255.240.0\"/ipv4Mask: \"'%s'\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", n3Mask))
|
||||
}
|
||||
if ueIP, ok := para5GData["UEIP"]; ok && ueIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: \"N6\"/,/ueIpv4: 10.2.1.0/s/ueIpv4: 10.2.1.0/ueIpv4: '\"%s\"'/' /usr/local/etc/upf/upfForwarder_1.yaml \n", ueIP))
|
||||
}
|
||||
if ueIPMask, ok := para5GData["UEIPMask"]; ok && ueIPMask != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: \"N6\"/,/ueIpv4Mask: 255.255.255.0/s/ueIpv4Mask: 255.255.255.0/ueIpv4Mask: '\"%s\"'/' /usr/local/etc/upf/upfForwarder_1.yaml \n", ueIPMask))
|
||||
}
|
||||
cmdStrArr = append(cmdStrArr, "sudo sed -i \"s/192.168.8.191/0.0.0.0/g\" /usr/local/etc/upf/upfForwarder_1.yaml \n")
|
||||
cmdStrArr = append(cmdStrArr, "sudo sed -i \"s/type: upfd/type: tun/g\" /usr/local/etc/upf/upfForwarder_1.yaml \n")
|
||||
cmdStrArr = append(cmdStrArr, "sudo sed -i 's/driverType: \"vmxnet3\"/driverType: \"\"/g' /usr/local/etc/upf/upfForwarder_1.yaml \n")
|
||||
}
|
||||
|
||||
// MME配置修改
|
||||
if neTypeLower == "mme" {
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/mme/default/mme.conf /usr/local/etc/mme/mme.conf \n")
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/udm/default/epsApn.yaml /usr/local/etc/udm/epsApn.yaml \n")
|
||||
if smfIP, ok := para5GData["SMFIP"]; ok && smfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.150/%s/g\" /usr/local/etc/mme/mme.conf \n", smfIP))
|
||||
}
|
||||
if mmeIPs1, ok := para5GData["S1_MMEIP"]; ok && mmeIPs1 != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s|192.168.8.220/20|%s|g\" /usr/local/etc/mme/mme.conf \n", mmeIPs1))
|
||||
}
|
||||
if mmeIPs10, ok := para5GData["S20_MMEIP"]; ok && mmeIPs10 != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s|172.16.5.220/24|%s|g\" /usr/local/etc/mme/mme.conf \n", mmeIPs10))
|
||||
}
|
||||
if mmeIPs11, ok := para5GData["S21_MMEIP"]; ok && mmeIPs11 != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s|172.16.5.221/24|%s|g\" /usr/local/etc/mme/mme.conf \n", mmeIPs11))
|
||||
}
|
||||
mcc, mccOk := para5GData["MCC"]
|
||||
mnc, mncOk := para5GData["MNC"]
|
||||
if mccOk && mcc != "" && mncOk && mnc != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/mnc001.mcc001/mnc0%s.mcc%s/g\" /usr/local/etc/mme/mme.conf \n", mnc, mcc))
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/\"00101\"/\"%s%s\"/g\" /usr/local/etc/mme/mme.conf \n", mcc, mnc))
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/MCC=\"001\" ; MNC=\"01\";/MCC=\"%s\" ; MNC=\"%s\";/g\" /usr/local/etc/mme/mme.conf \n", mcc, mnc))
|
||||
}
|
||||
if ltetac, ok := para5GData["LTETAC"]; ok && ltetac != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/TAC = \"1\";/TAC = \"%s\";/g\" /usr/local/etc/mme/mme.conf \n", ltetac))
|
||||
}
|
||||
if dnn, ok := para5GData["DNN"]; ok && dnn != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/internet/%s/g\" /usr/local/etc/udm/epsApn.yaml \n", dnn))
|
||||
}
|
||||
// SMF开启
|
||||
cmdStrArr = append(cmdStrArr, "sudo sed -i \"/^ *gxcfg:/,/^ *[^ ]/{s/enable: false/enable: true/;b};\" /usr/local/etc/smf/smf_conf.yaml \n")
|
||||
}
|
||||
|
||||
// NSSF配置修改
|
||||
if neTypeLower == "nssf" {
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/nssf/default/nssfcfg.yaml /usr/local/etc/nssf/nssfcfg.yaml \n")
|
||||
if nssfIP, ok := para5GData["NSSFIP"]; ok && nssfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.170/%s/g\" /usr/local/etc/nssf/nssfcfg.yaml \n", nssfIP))
|
||||
}
|
||||
if nrfIP, ok := para5GData["NRFIP"]; ok && nrfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.180/%s/g\" /usr/local/etc/nssf/nssfcfg.yaml \n", nrfIP))
|
||||
}
|
||||
if mcc, mccOk := para5GData["MCC"]; mccOk && mcc != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/mcc: 001/mcc: %s/g\" /usr/local/etc/nssf/nssfcfg.yaml \n", mcc))
|
||||
}
|
||||
if mnc, mncOk := para5GData["MNC"]; mncOk && mnc != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/mnc: 01/mnc: %s/g\" /usr/local/etc/nssf/nssfcfg.yaml \n", mnc))
|
||||
}
|
||||
}
|
||||
// NRF配置修改
|
||||
if neTypeLower == "nrf" {
|
||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/nrf/default/nssfcfg.yaml /usr/local/etc/nrf/nrfcfg.yaml \n")
|
||||
if nrfIP, ok := para5GData["NRFIP"]; ok && nrfIP != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.180/%s/g\" /usr/local/etc/nrf/nrfcfg.yaml \n", nrfIP))
|
||||
}
|
||||
if mcc, mccOk := para5GData["MCC"]; mccOk && mcc != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/mcc: 001/mcc: %s/g\" /usr/local/etc/nssf/nssfcfg.yaml \n", mcc))
|
||||
}
|
||||
if mnc, mncOk := para5GData["MNC"]; mncOk && mnc != "" {
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/mnc: 01/mnc: %s/g\" /usr/local/etc/nssf/nssfcfg.yaml \n", mnc))
|
||||
}
|
||||
}
|
||||
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo service %s restart \n", neTypeLower))
|
||||
// 30s后停止服务
|
||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("nohup sh -c \"sleep 30s && sudo service %s stop\" > /dev/null 2>&1 & \n", neTypeLower))
|
||||
@@ -284,8 +571,61 @@ func (r *NeVersionImpl) Operate(action string, neVersion model.NeVersion, preinp
|
||||
// 等待写入协程完成
|
||||
<-done
|
||||
|
||||
// 执行到最后语句的更新Version
|
||||
// 执行到最后语句
|
||||
if strings.LastIndex(logMsg, okFlagStr) > 5 {
|
||||
if action == "install" {
|
||||
// ========= 网元OAM配置文件 start ==========
|
||||
oamData, err := NewNeInfoImpl.NeConfOAMRead(neInfo.NeType, neInfo.NeId)
|
||||
if oamData == nil || err != nil {
|
||||
return "", fmt.Errorf("error read OAM file info")
|
||||
}
|
||||
// 网元HTTP服务
|
||||
if v, ok := oamData["httpManageCfg"]; ok {
|
||||
item := v.(map[string]any)
|
||||
item["ipv4"] = neInfo.IP
|
||||
item["port"] = neInfo.Port
|
||||
oamData["httpManageCfg"] = item
|
||||
}
|
||||
// 对网管HTTP配置
|
||||
if v, ok := oamData["oamConfig"]; ok {
|
||||
item := v.(map[string]any)
|
||||
item["enable"] = true
|
||||
if omcIP, ok := para5GData["OMCIP"]; ok && omcIP != "" {
|
||||
item["ipv4"] = omcIP
|
||||
}
|
||||
item["neConfig"] = map[string]string{
|
||||
"neId": neInfo.NeId,
|
||||
"rmUid": neInfo.RmUID,
|
||||
"neName": neInfo.NeName,
|
||||
"dn": neInfo.Dn,
|
||||
"vendorName": neInfo.VendorName,
|
||||
"province": neInfo.Province,
|
||||
"pvFlag": neInfo.PvFlag,
|
||||
}
|
||||
oamData["oamConfig"] = item
|
||||
}
|
||||
// 对网管SNMP配置
|
||||
if v, ok := oamData["snmpConfig"]; ok {
|
||||
item := v.(map[string]any)
|
||||
item["ipv4"] = neInfo.IP
|
||||
oamData["snmpConfig"] = item
|
||||
}
|
||||
// 对网管KPI上报配置
|
||||
if v, ok := oamData["kpiConfig"]; ok {
|
||||
item := v.(map[string]any)
|
||||
item["enable"] = true
|
||||
if kpiTimer, ok := para5GData["KPI_TIMER"]; ok && kpiTimer != "" {
|
||||
item["timer"] = parse.Number(kpiTimer)
|
||||
}
|
||||
oamData["kpiConfig"] = item
|
||||
}
|
||||
if err := NewNeInfoImpl.NeConfOAMWirte(neInfo.NeType, neInfo.NeId, oamData, true); err != nil {
|
||||
return "", fmt.Errorf("error wirte OAM file info")
|
||||
}
|
||||
// ========= 网元OAM配置文件 end ===========
|
||||
}
|
||||
|
||||
// 更新Version
|
||||
verInfo := NewNeVersionImpl.SelectByNeTypeAndNeID(neVersion.NeType, neVersion.NeId)
|
||||
if verInfo.NeId == neVersion.NeId {
|
||||
curName := verInfo.Name
|
||||
|
||||
Reference in New Issue
Block a user