feat: 支持OAM配置修改同步到网元
This commit is contained in:
@@ -178,6 +178,59 @@ func (s *NeInfoController) Para5GFileWrite(c *gin.Context) {
|
|||||||
c.JSON(200, result.Ok(nil))
|
c.JSON(200, result.Ok(nil))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 网元端OAM配置文件读取
|
||||||
|
//
|
||||||
|
// GET /oamFile
|
||||||
|
func (s *NeInfoController) OAMFileRead(c *gin.Context) {
|
||||||
|
language := ctx.AcceptLanguage(c)
|
||||||
|
var querys struct {
|
||||||
|
NeType string `form:"neType" binding:"required"`
|
||||||
|
NeID string `form:"neId" binding:"required"`
|
||||||
|
}
|
||||||
|
if err := c.ShouldBindQuery(&querys); err != nil {
|
||||||
|
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
data, err := s.neInfoService.NeConfOAMRead(querys.NeType, querys.NeID)
|
||||||
|
if err != nil {
|
||||||
|
c.JSON(200, result.ErrMsg(err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
c.JSON(200, result.OkData(data))
|
||||||
|
}
|
||||||
|
|
||||||
|
// 网元端OAM配置文件写入
|
||||||
|
//
|
||||||
|
// PUT /oamFile
|
||||||
|
func (s *NeInfoController) OAMFileWrite(c *gin.Context) {
|
||||||
|
language := ctx.AcceptLanguage(c)
|
||||||
|
var body struct {
|
||||||
|
NeType string `json:"neType" binding:"required"`
|
||||||
|
NeID string `json:"neId" binding:"required"`
|
||||||
|
Content map[string]any `json:"content" binding:"required"` // 内容
|
||||||
|
Sync bool `json:"sync"` // 同步到网元
|
||||||
|
}
|
||||||
|
if err := c.ShouldBindBodyWith(&body, binding.JSON); err != nil {
|
||||||
|
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询网元获取IP
|
||||||
|
neInfo := s.neInfoService.SelectNeInfoByNeTypeAndNeID(body.NeType, body.NeID)
|
||||||
|
if neInfo.NeId != body.NeID || neInfo.IP == "" {
|
||||||
|
c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
err := s.neInfoService.NeConfOAMSync(neInfo, body.Content, body.Sync)
|
||||||
|
if err != nil {
|
||||||
|
c.JSON(200, result.ErrMsg(err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
c.JSON(200, result.Ok(nil))
|
||||||
|
}
|
||||||
|
|
||||||
// 网元信息列表
|
// 网元信息列表
|
||||||
//
|
//
|
||||||
// GET /list
|
// GET /list
|
||||||
@@ -314,6 +367,13 @@ func (s *NeInfoController) Edit(c *gin.Context) {
|
|||||||
c.JSON(200, result.ErrMsg(i18n.TKey(language, "neInfo.noData")))
|
c.JSON(200, result.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].HostID = id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 获取网元状态是否正常
|
// 获取网元状态是否正常
|
||||||
body.ServerState, err = neService.NeState(body)
|
body.ServerState, err = neService.NeState(body)
|
||||||
@@ -358,8 +418,8 @@ func (s *NeInfoController) Edit(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
if neLicense.ID != "" {
|
if neLicense.ID != "" {
|
||||||
if neLicense.NeType != body.NeType || neLicense.NeId != body.NeId {
|
if neLicense.NeType != body.NeType || neLicense.NeId != body.NeId {
|
||||||
neVersion.NeType = body.NeType
|
neLicense.NeType = body.NeType
|
||||||
neVersion.NeId = body.NeId
|
neLicense.NeId = body.NeId
|
||||||
}
|
}
|
||||||
s.neLicenseService.Update(neLicense)
|
s.neLicenseService.Update(neLicense)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,6 +67,15 @@ func Setup(router *gin.Engine) {
|
|||||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.neInfo", collectlogs.BUSINESS_TYPE_OTHER)),
|
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.neInfo", collectlogs.BUSINESS_TYPE_OTHER)),
|
||||||
controller.NewNeInfo.Para5GFileWrite,
|
controller.NewNeInfo.Para5GFileWrite,
|
||||||
)
|
)
|
||||||
|
neInfoGroup.GET("/oamFile",
|
||||||
|
middleware.PreAuthorize(nil),
|
||||||
|
controller.NewNeInfo.OAMFileRead,
|
||||||
|
)
|
||||||
|
neInfoGroup.PUT("/oamFile",
|
||||||
|
middleware.PreAuthorize(nil),
|
||||||
|
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.neInfo", collectlogs.BUSINESS_TYPE_OTHER)),
|
||||||
|
controller.NewNeInfo.OAMFileWrite,
|
||||||
|
)
|
||||||
neInfoGroup.GET("/list",
|
neInfoGroup.GET("/list",
|
||||||
middleware.PreAuthorize(nil),
|
middleware.PreAuthorize(nil),
|
||||||
controller.NewNeInfo.List,
|
controller.NewNeInfo.List,
|
||||||
|
|||||||
@@ -53,8 +53,11 @@ type INeInfo interface {
|
|||||||
// NeRunCMD 向网元发送cmd命令
|
// NeRunCMD 向网元发送cmd命令
|
||||||
NeRunCMD(neType, neId, cmd string) (string, error)
|
NeRunCMD(neType, neId, cmd string) (string, error)
|
||||||
|
|
||||||
|
// neConfOAMRead 网元OAM配置文件读取
|
||||||
|
NeConfOAMRead(neType, neId string) (map[string]any, error)
|
||||||
|
|
||||||
// NeConfOAMSync 网元OAM配置文件生成并同步
|
// NeConfOAMSync 网元OAM配置文件生成并同步
|
||||||
NeConfOAMSync(neInfo model.NeInfo, sync bool) error
|
NeConfOAMSync(neInfo model.NeInfo, content map[string]any, sync bool) error
|
||||||
|
|
||||||
// NeConfPara5GRead 网元公共配置文件读取
|
// NeConfPara5GRead 网元公共配置文件读取
|
||||||
NeConfPara5GRead() (map[string]any, error)
|
NeConfPara5GRead() (map[string]any, error)
|
||||||
|
|||||||
@@ -368,13 +368,11 @@ func (r *NeInfoImpl) neConfOAMData() map[string]any {
|
|||||||
"oamConfig": map[string]any{
|
"oamConfig": map[string]any{
|
||||||
"enable": true,
|
"enable": true,
|
||||||
"ipType": "ipv4",
|
"ipType": "ipv4",
|
||||||
// 必改
|
"ipv4": "172.60.5.1", // 必改
|
||||||
"ipv4": "172.60.5.1",
|
|
||||||
"ipv6": "",
|
"ipv6": "",
|
||||||
"port": 33030,
|
"port": 33030,
|
||||||
"scheme": "http",
|
"scheme": "http",
|
||||||
// 必改
|
"neConfig": map[string]any{ // 必改
|
||||||
"neConfig": map[string]any{
|
|
||||||
"neId": "001",
|
"neId": "001",
|
||||||
"rmUid": "4400HX1XXX001",
|
"rmUid": "4400HX1XXX001",
|
||||||
"neName": "XXX_001",
|
"neName": "XXX_001",
|
||||||
@@ -387,22 +385,20 @@ func (r *NeInfoImpl) neConfOAMData() map[string]any {
|
|||||||
"snmpConfig": map[string]any{
|
"snmpConfig": map[string]any{
|
||||||
"enable": false,
|
"enable": false,
|
||||||
"ipType": "ipv4",
|
"ipType": "ipv4",
|
||||||
// 必改
|
"ipv4": "172.60.5.2", // 必改
|
||||||
"ipv4": "172.60.5.2",
|
"ipv6": "",
|
||||||
"ipv6": "",
|
"port": 4957,
|
||||||
"port": 4957,
|
|
||||||
},
|
},
|
||||||
"kpiConfig": map[string]any{
|
"kpiConfig": map[string]any{
|
||||||
"enable": true,
|
"enable": true,
|
||||||
// 必改
|
"timer": 60, // 必改
|
||||||
"timer": 60,
|
|
||||||
},
|
},
|
||||||
"pubConfigPath": "/usr/local/etc/conf/para5G.yaml",
|
// "pubConfigPath": "/usr/local/etc/conf/para5G.yaml",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// neConfOAMRead 网元OAM配置文件读取
|
// neConfOAMRead 网元OAM配置文件读取
|
||||||
func (r *NeInfoImpl) neConfOAMRead(neType, neId string) (map[string]any, error) {
|
func (r *NeInfoImpl) NeConfOAMRead(neType, neId string) (map[string]any, error) {
|
||||||
neTypeLower := strings.ToLower(neType)
|
neTypeLower := strings.ToLower(neType)
|
||||||
// 网管本地路径
|
// 网管本地路径
|
||||||
omcPath := "/usr/local/etc/omc/ne_config"
|
omcPath := "/usr/local/etc/omc/ne_config"
|
||||||
@@ -478,25 +474,29 @@ func (r *NeInfoImpl) neConfOAMWirte(neType, neId string, content any, sync bool)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// NeConfOAMSync 网元OAM配置文件生成并同步
|
// NeConfOAMSync 网元OAM配置文件生成并同步
|
||||||
func (r *NeInfoImpl) NeConfOAMSync(neInfo model.NeInfo, sync bool) error {
|
func (r *NeInfoImpl) NeConfOAMSync(neInfo model.NeInfo, content map[string]any, sync bool) error {
|
||||||
oamData, err := r.neConfOAMRead(neInfo.NeType, neInfo.NeId)
|
oamData, err := r.NeConfOAMRead(neInfo.NeType, neInfo.NeId)
|
||||||
if oamData == nil || err != nil {
|
if oamData == nil || err != nil {
|
||||||
return fmt.Errorf("error read OAM file info")
|
return fmt.Errorf("error read OAM file info")
|
||||||
}
|
}
|
||||||
// 网元HTTP服务
|
// 网元HTTP服务
|
||||||
if v, ok := oamData["httpManageCfg"]; ok {
|
if v, ok := oamData["httpManageCfg"]; ok {
|
||||||
item := v.(map[string]any)
|
item := v.(map[string]any)
|
||||||
item["ipv4"] = neInfo.IP
|
|
||||||
item["port"] = neInfo.Port
|
item["port"] = neInfo.Port
|
||||||
|
if strings.Contains(neInfo.IP, ":") {
|
||||||
|
item["ipType"] = "ipv6"
|
||||||
|
item["ipv6"] = neInfo.IP
|
||||||
|
}
|
||||||
|
if strings.Contains(neInfo.IP, ".") {
|
||||||
|
item["ipType"] = "ipv4"
|
||||||
|
item["ipv4"] = neInfo.IP
|
||||||
|
}
|
||||||
|
|
||||||
oamData["httpManageCfg"] = item
|
oamData["httpManageCfg"] = item
|
||||||
}
|
}
|
||||||
// 对网管HTTP配置
|
// 对网管HTTP配置
|
||||||
if v, ok := oamData["oamConfig"]; ok {
|
if v, ok := oamData["oamConfig"]; ok {
|
||||||
item := v.(map[string]any)
|
item := v.(map[string]any)
|
||||||
item["enable"] = true
|
|
||||||
if omcIP, ok := r.Para5GData["OMCIP"]; ok && omcIP != "" {
|
|
||||||
item["ipv4"] = omcIP
|
|
||||||
}
|
|
||||||
item["neConfig"] = map[string]string{
|
item["neConfig"] = map[string]string{
|
||||||
"neId": neInfo.NeId,
|
"neId": neInfo.NeId,
|
||||||
"rmUid": neInfo.RmUID,
|
"rmUid": neInfo.RmUID,
|
||||||
@@ -506,18 +506,59 @@ func (r *NeInfoImpl) NeConfOAMSync(neInfo model.NeInfo, sync bool) error {
|
|||||||
"province": neInfo.Province,
|
"province": neInfo.Province,
|
||||||
"pvFlag": neInfo.PvFlag,
|
"pvFlag": neInfo.PvFlag,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if omcIP, ok := r.Para5GData["OMC_IP"]; ok && omcIP != "" {
|
||||||
|
if strings.Contains(omcIP, ":") {
|
||||||
|
item["ipType"] = "ipv6"
|
||||||
|
item["ipv6"] = omcIP
|
||||||
|
}
|
||||||
|
if strings.Contains(omcIP, ".") {
|
||||||
|
item["ipType"] = "ipv4"
|
||||||
|
item["ipv4"] = omcIP
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if oamEnable, ok := content["oamEnable"]; ok && oamEnable != nil {
|
||||||
|
item["enable"] = parse.Boolean(oamEnable)
|
||||||
|
}
|
||||||
|
if oamPort, ok := content["oamPort"]; ok && oamPort != nil {
|
||||||
|
item["port"] = parse.Number(oamPort)
|
||||||
|
}
|
||||||
oamData["oamConfig"] = item
|
oamData["oamConfig"] = item
|
||||||
}
|
}
|
||||||
// 对网管SNMP配置
|
// 对网管SNMP配置
|
||||||
if v, ok := oamData["snmpConfig"]; ok {
|
if v, ok := oamData["snmpConfig"]; ok {
|
||||||
item := v.(map[string]any)
|
item := v.(map[string]any)
|
||||||
item["ipv4"] = neInfo.IP
|
if strings.Contains(neInfo.IP, ":") {
|
||||||
|
item["ipType"] = "ipv6"
|
||||||
|
item["ipv6"] = neInfo.IP
|
||||||
|
}
|
||||||
|
if strings.Contains(neInfo.IP, ".") {
|
||||||
|
item["ipType"] = "ipv4"
|
||||||
|
item["ipv4"] = neInfo.IP
|
||||||
|
}
|
||||||
|
|
||||||
|
if snmpEnable, ok := content["snmpEnable"]; ok && snmpEnable != nil {
|
||||||
|
item["enable"] = parse.Boolean(snmpEnable)
|
||||||
|
}
|
||||||
|
if snmpPort, ok := content["snmpPort"]; ok && snmpPort != nil {
|
||||||
|
item["port"] = parse.Number(snmpPort)
|
||||||
|
}
|
||||||
oamData["snmpConfig"] = item
|
oamData["snmpConfig"] = item
|
||||||
}
|
}
|
||||||
// 对网管KPI上报配置
|
// 对网管KPI上报配置
|
||||||
if v, ok := oamData["kpiConfig"]; ok {
|
if v, ok := oamData["kpiConfig"]; ok {
|
||||||
item := v.(map[string]any)
|
item := v.(map[string]any)
|
||||||
item["enable"] = true
|
if neInfo.NeType == "UPF" {
|
||||||
|
item["timer"] = 5
|
||||||
|
}
|
||||||
|
|
||||||
|
if kpiEnable, ok := content["kpiEnable"]; ok && kpiEnable != nil {
|
||||||
|
item["enable"] = parse.Boolean(kpiEnable)
|
||||||
|
}
|
||||||
|
if kpiTimer, ok := content["kpiTimer"]; ok && kpiTimer != nil {
|
||||||
|
item["timer"] = parse.Number(kpiTimer)
|
||||||
|
}
|
||||||
oamData["kpiConfig"] = item
|
oamData["kpiConfig"] = item
|
||||||
}
|
}
|
||||||
if err := NewNeInfoImpl.neConfOAMWirte(neInfo.NeType, neInfo.NeId, oamData, sync); err != nil {
|
if err := NewNeInfoImpl.neConfOAMWirte(neInfo.NeType, neInfo.NeId, oamData, sync); err != nil {
|
||||||
@@ -586,7 +627,7 @@ func (r *NeInfoImpl) NeConfPara5GWirte(content map[string]any, syncNE []string)
|
|||||||
neFilePath := "/usr/local/etc/conf/para5G.yaml"
|
neFilePath := "/usr/local/etc/conf/para5G.yaml"
|
||||||
neFileDir := filepath.ToSlash(filepath.Dir(neFilePath))
|
neFileDir := filepath.ToSlash(filepath.Dir(neFilePath))
|
||||||
// 修改网元文件权限
|
// 修改网元文件权限
|
||||||
sshClient.RunCMD(fmt.Sprintf("sudo mkdir -p %s && sudo chmod o+w %s && sudo chmod o+w %s", neFileDir, neFileDir, neFilePath))
|
sshClient.RunCMD(fmt.Sprintf("sudo mkdir -p %s && sudo chmod o+w %s && sudo touch %s && sudo chmod o+w %s", neFileDir, neFileDir, neFilePath, neFilePath))
|
||||||
// 复制到网元进行覆盖
|
// 复制到网元进行覆盖
|
||||||
if err = sftpClient.CopyFileLocalToRemote(omcFilePath, neFilePath); err != nil {
|
if err = sftpClient.CopyFileLocalToRemote(omcFilePath, neFilePath); err != nil {
|
||||||
errMsg = append(errMsg, fmt.Sprintf("%s : please check if scp remote copy is allowed", ti))
|
errMsg = append(errMsg, fmt.Sprintf("%s : please check if scp remote copy is allowed", ti))
|
||||||
|
|||||||
@@ -179,8 +179,8 @@ func (r *NeVersionImpl) Operate(action string, neVersion model.NeVersion, preinp
|
|||||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo /usr/local/etc/ims/default/tools/modintraip.sh %s \n", para5GData["IMS_IP"]))
|
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo /usr/local/etc/ims/default/tools/modintraip.sh %s \n", para5GData["IMS_IP"]))
|
||||||
// IWF连接PCF服务
|
// IWF连接PCF服务
|
||||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.160/%s/g\" /usr/local/etc/iwf/iwf_conf.yaml \n", para5GData["PCF_IP"]))
|
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.160/%s/g\" /usr/local/etc/iwf/iwf_conf.yaml \n", para5GData["PCF_IP"]))
|
||||||
// 5s后停止服务
|
// 30s后停止服务
|
||||||
cmdStrArr = append(cmdStrArr, "nohup sh -c \"sleep 5s && sudo ims-stop\" > /dev/null 2>&1 & \n")
|
cmdStrArr = append(cmdStrArr, "nohup sh -c \"sleep 30s && sudo ims-stop\" > /dev/null 2>&1 & \n")
|
||||||
} else {
|
} else {
|
||||||
cmdStrArr = append(cmdStrArr, "sudo ims-stop \n")
|
cmdStrArr = append(cmdStrArr, "sudo ims-stop \n")
|
||||||
cmdStrArr = append(cmdStrArr, pkgCmdStr+" \n")
|
cmdStrArr = append(cmdStrArr, pkgCmdStr+" \n")
|
||||||
@@ -270,14 +270,16 @@ func (r *NeVersionImpl) Operate(action string, neVersion model.NeVersion, preinp
|
|||||||
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/upf/default/upfForwarder_1.yaml /usr/local/etc/upf/upfForwarder_1.yaml \n")
|
cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/upf/default/upfForwarder_1.yaml /usr/local/etc/upf/upfForwarder_1.yaml \n")
|
||||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.190/%s/g\" /usr/local/etc/upf/upfcfg.yaml \n", para5GData["UPF_IP"]))
|
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/172.16.5.190/%s/g\" /usr/local/etc/upf/upfcfg.yaml \n", para5GData["UPF_IP"]))
|
||||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/localhost/%s/g\" /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["UPF_IP"]))
|
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/localhost/%s/g\" /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["UPF_IP"]))
|
||||||
|
// UE N3 N6 根据版本修改
|
||||||
|
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", para5GData["UE_IP"]))
|
||||||
|
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", para5GData["UE_MASK"]))
|
||||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/192.168.8.190/%s/g\" /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["N3_IP"]))
|
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/192.168.8.190/%s/g\" /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["N3_IP"]))
|
||||||
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", para5GData["N3_MASK"]))
|
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", para5GData["N3_MASK"]))
|
||||||
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", para5GData["N3_GW"]))
|
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", para5GData["N3_GW"]))
|
||||||
|
// 标准版
|
||||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/192.168.8.191/%s/g\" /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["N6_IP"]))
|
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/192.168.8.191/%s/g\" /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["N6_IP"]))
|
||||||
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", para5GData["N6_MASK"]))
|
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", para5GData["N6_MASK"]))
|
||||||
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", para5GData["N6_GW"]))
|
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", para5GData["N6_GW"]))
|
||||||
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", para5GData["UE_IP"]))
|
|
||||||
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", para5GData["UE_MASK"]))
|
|
||||||
// 轻量版
|
// 轻量版
|
||||||
// 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/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/type: upfd/type: tun/g\" /usr/local/etc/upf/upfForwarder_1.yaml \n")
|
||||||
@@ -332,8 +334,8 @@ func (r *NeVersionImpl) Operate(action string, neVersion model.NeVersion, preinp
|
|||||||
}
|
}
|
||||||
|
|
||||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo service %s restart \n", neTypeLower))
|
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo service %s restart \n", neTypeLower))
|
||||||
// 5s后停止服务
|
// 30s后停止服务
|
||||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("nohup sh -c \"sleep 5s && sudo service %s stop\" > /dev/null 2>&1 & \n", neTypeLower))
|
cmdStrArr = append(cmdStrArr, fmt.Sprintf("nohup sh -c \"sleep 30s && sudo service %s stop\" > /dev/null 2>&1 & \n", neTypeLower))
|
||||||
} else {
|
} else {
|
||||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo service %s stop \n", neTypeLower))
|
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo service %s stop \n", neTypeLower))
|
||||||
cmdStrArr = append(cmdStrArr, pkgCmdStr+" \n")
|
cmdStrArr = append(cmdStrArr, pkgCmdStr+" \n")
|
||||||
@@ -412,7 +414,7 @@ func (r *NeVersionImpl) Operate(action string, neVersion model.NeVersion, preinp
|
|||||||
if strings.LastIndex(logMsg, okFlagStr) > 5 {
|
if strings.LastIndex(logMsg, okFlagStr) > 5 {
|
||||||
if action == "install" {
|
if action == "install" {
|
||||||
// ========= 网元OAM配置文件 start ==========
|
// ========= 网元OAM配置文件 start ==========
|
||||||
if err := NewNeInfoImpl.NeConfOAMSync(neInfo, true); err != nil {
|
if err := NewNeInfoImpl.NeConfOAMSync(neInfo, nil, true); err != nil {
|
||||||
return "", fmt.Errorf("error wirte OAM file info")
|
return "", fmt.Errorf("error wirte OAM file info")
|
||||||
}
|
}
|
||||||
// ========= 网元OAM配置文件 end ===========
|
// ========= 网元OAM配置文件 end ===========
|
||||||
|
|||||||
Reference in New Issue
Block a user