diff --git a/src/modules/network_element/service/ne_version.go b/src/modules/network_element/service/ne_version.go index 4b6f21d6..ea8152fb 100644 --- a/src/modules/network_element/service/ne_version.go +++ b/src/modules/network_element/service/ne_version.go @@ -657,11 +657,40 @@ func (r *NeVersion) operateDome(action string, neVersion model.NeVersion) error if neInfo.NeId != neVersion.NeId { return fmt.Errorf("error found neinfo") } + // ========= 网元OAM配置文件 start ========== if err := NewNeInfo.NeConfOAMWirteSync(neInfo, nil, true); err != nil { return fmt.Errorf("error wirte OAM file info") } // ========= 网元OAM配置文件 end =========== + + // SMSC配置修改IMS和UDM 配置 + if neInfo.NeType == "SMSC" { + para5GData := NewNeInfo.Para5GData + mnc_mcc := fmt.Sprintf("mnc%s.mcc%s", para5GData["MNC_DOMAIN"], para5GData["MCC"]) + smscHost := fmt.Sprintf("%s smsc.ims.%s.3gppnetwork.org", para5GData["SMSC_IP"], mnc_mcc) + smscHostCMD := fmt.Sprintf("grep -qxF '%s' /etc/hosts || echo '%s' | sudo tee -a /etc/hosts \n", smscHost, smscHost) + smscIPCMD := fmt.Sprintf("grep -qxF '%s smsc' /etc/hosts || echo '%s smsc' | sudo tee -a /etc/hosts \n", para5GData["SMSC_IP"], para5GData["SMSC_IP"]) + // IMS 配置 + imsNEs := NewNeInfo.SelectList(model.NeInfo{NeType: "IMS"}, false, false) + for _, v := range imsNEs { + NewNeInfo.NeRunSSHCmd(v.NeType, v.NeId, smscIPCMD) + NewNeInfo.NeRunSSHCmd(v.NeType, v.NeId, smscHostCMD) + NewNeInfo.NeRunSSHCmd(v.NeType, v.NeId, "sudo sed -i '/^#!define WITH_SMS/ s/^/#/' /usr/local/etc/ims/vars.cfg") + NewNeInfo.NeRunSSHCmd(v.NeType, v.NeId, "ims-stop || true && ims-start") + } + // UDM 配置 + smscASName := fmt.Sprintf("sudo sed -i '/- name: sms_as/{n;s|serverName: .*|serverName: sip:%s:5060|}' /usr/local/etc/udm/as.yaml", para5GData["SMSC_IP"]) + smscASAddress := fmt.Sprintf("sudo sed -i '/- name: sms_as/{n;s|diameterAddress: .*|diameterAddress: smsc.ims.%s.3gppnetwork.org|}' /usr/local/etc/udm/as.yaml", mnc_mcc) + udmNEs := NewNeInfo.SelectList(model.NeInfo{NeType: "UDM"}, false, false) + for _, v := range udmNEs { + NewNeInfo.NeRunSSHCmd(v.NeType, v.NeId, smscIPCMD) + NewNeInfo.NeRunSSHCmd(v.NeType, v.NeId, smscHostCMD) + NewNeInfo.NeRunSSHCmd(v.NeType, v.NeId, smscASName) + NewNeInfo.NeRunSSHCmd(v.NeType, v.NeId, smscASAddress) + NewNeInfo.NeRunSSHCmd(v.NeType, v.NeId, "sudo service udm restart") + } + } } // 更新Version