From 61ae1dfaa58f7371335ff34c67dda295b8fcbad8 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Fri, 23 May 2025 11:13:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E7=BD=91=E5=85=83OAM?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E8=AF=BB=E5=8F=96=E4=B8=8E=E5=86=99=E5=85=A5?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E4=BF=AE=E5=A4=8D=E9=94=AE=E5=90=8D?= =?UTF-8?q?=E4=B8=8D=E4=B8=80=E8=87=B4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../network_element/service/ne_info.go | 272 ++++++++++-------- 1 file changed, 145 insertions(+), 127 deletions(-) diff --git a/src/modules/network_element/service/ne_info.go b/src/modules/network_element/service/ne_info.go index ff9eae08..b574dba0 100644 --- a/src/modules/network_element/service/ne_info.go +++ b/src/modules/network_element/service/ne_info.go @@ -491,47 +491,49 @@ func (r NeInfo) NeConfOAMReadSync(neType, neId string) (map[string]any, error) { } // UPF和SMF 全小写的key - if _, ok := oamData["httpmanagecfg"]; ok { - content := map[string]any{} - // 网元HTTP服务 - // if v, ok := oamData["httpmanagecfg"]; ok { - // item := v.(map[string]any) - // } - // 对网管HTTP配置 - if v, ok := oamData["oamconfig"]; ok { - item := v.(map[string]any) - if v, ok := item["iptype"]; ok && v != "" && v != nil { - ipType := v.(string) - if ipType == "ipv6" { - content["omcIP"] = item["ipv6"] - } - if ipType == "ipv4" { - content["omcIP"] = item["ipv4"] - } - } - content["oamEnable"] = item["enable"] - content["oamPort"] = item["port"] + // 网元HTTP服务 + if v, ok := oamData["httpmanagecfg"]; ok && v != nil { + item := v.(map[string]any) + if v, ok := item["iptype"]; ok && v != nil { + item["ipType"] = v + delete(item, "iptype") } - // 对网管SNMP配置 - if v, ok := oamData["snmpconfig"]; ok { - item := v.(map[string]any) - content["snmpEnable"] = item["enable"] - content["snmpPort"] = item["port"] - } - // 对网管KPI上报配置 - if v, ok := oamData["kpiconfig"]; ok { - item := v.(map[string]any) - content["kpiEnable"] = item["enable"] - content["kpiTimer"] = item["timer"] - } - - oamData := r.neConfOAMData() + oamData["httpManageCfg"] = item + delete(oamData, "httpmanagecfg") + r.neConfOAMWirte(neType, neId, oamData, false) + } + // 对网管HTTP配置 + if v, ok := oamData["oamconfig"]; ok && v != nil { + item := v.(map[string]any) + if v, ok := item["iptype"]; ok && v != nil { + item["ipType"] = v + delete(item, "iptype") + } + if v, ok := item["neconfig"]; ok && v != nil { + item["neConfig"] = v + delete(item, "neconfig") + } + oamData["oamConfig"] = item + delete(oamData, "oamconfig") + r.neConfOAMWirte(neType, neId, oamData, false) + } + // 对网管SNMP配置 + if v, ok := oamData["snmpconfig"]; ok && v != nil { + item := v.(map[string]any) + if v, ok := item["iptype"]; ok && v != nil { + item["ipType"] = v + delete(item, "iptype") + } + oamData["snmpConfig"] = item + delete(oamData, "snmpconfig") + r.neConfOAMWirte(neType, neId, oamData, false) + } + // 对网管KPI上报配置 + if v, ok := oamData["kpiconfig"]; ok && v != nil { + item := v.(map[string]any) + oamData["kpiConfig"] = item + delete(oamData, "kpiconfig") r.neConfOAMWirte(neType, neId, oamData, false) - r.NeConfOAMWirteSync(model.NeInfo{ - NeType: neType, - NeId: neId, - }, content, false) - return r.neConfOAMRead(neType, neId, false) } // NSSF和MME 配置KPIconfig名不一致时 @@ -695,101 +697,117 @@ func (r NeInfo) NeConfOAMWirteSync(neInfo model.NeInfo, content map[string]any, return fmt.Errorf("error read OAM file info") } // 网元HTTP服务 - if v, ok := oamData["httpManageCfg"]; ok { - item := v.(map[string]any) - 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 + httpManageCfg, ok := oamData["httpManageCfg"].(map[string]any) + if !ok { + neConfOAMData := r.neConfOAMData() + httpManageCfg = neConfOAMData["httpManageCfg"].(map[string]any) } + httpManageCfg["port"] = neInfo.Port + if strings.Contains(neInfo.IP, ":") { + httpManageCfg["ipType"] = "ipv6" + httpManageCfg["ipv6"] = neInfo.IP + } + if strings.Contains(neInfo.IP, ".") { + httpManageCfg["ipType"] = "ipv4" + httpManageCfg["ipv4"] = neInfo.IP + } + delete(httpManageCfg, "iptype") + delete(oamData, "httpmanagecfg") + oamData["httpManageCfg"] = httpManageCfg + // 对网管HTTP配置 - if v, ok := oamData["oamConfig"]; ok { - item := v.(map[string]any) - 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, - } - - // 公共参数指定的OMC - 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 v, ok := content["omcIP"]; ok && v != "" && v != nil { - omcIP := v.(string) - 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 + oamConfig, ok := oamData["oamConfig"].(map[string]any) + if !ok { + neConfOAMData := r.neConfOAMData() + oamConfig = neConfOAMData["oamConfig"].(map[string]any) } + delete(oamConfig, "neconfig") + oamConfig["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, + } + // 公共参数指定的OMC + if omcIP, ok := r.Para5GData["OMC_IP"]; ok && omcIP != "" { + if strings.Contains(omcIP, ":") { + oamConfig["ipType"] = "ipv6" + oamConfig["ipv6"] = omcIP + } + if strings.Contains(omcIP, ".") { + oamConfig["ipType"] = "ipv4" + oamConfig["ipv4"] = omcIP + } + } + // 传入的变更 + if v, ok := content["omcIP"]; ok && v != "" && v != nil { + omcIP := v.(string) + if strings.Contains(omcIP, ":") { + oamConfig["ipType"] = "ipv6" + oamConfig["ipv6"] = omcIP + } + if strings.Contains(omcIP, ".") { + oamConfig["ipType"] = "ipv4" + oamConfig["ipv4"] = omcIP + } + } + delete(oamConfig, "iptype") + if oamEnable, ok := content["oamEnable"]; ok && oamEnable != nil { + oamConfig["enable"] = parse.Boolean(oamEnable) + } + if oamPort, ok := content["oamPort"]; ok && oamPort != nil { + oamConfig["port"] = parse.Number(oamPort) + } + delete(oamData, "oamconfig") + oamData["oamConfig"] = oamConfig + // 对网管SNMP配置 - if v, ok := oamData["snmpConfig"]; ok { - item := v.(map[string]any) - 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 + snmpConfig, ok := oamData["snmpConfig"].(map[string]any) + if !ok { + neConfOAMData := r.neConfOAMData() + snmpConfig = neConfOAMData["snmpConfig"].(map[string]any) } + if strings.Contains(neInfo.IP, ":") { + snmpConfig["ipType"] = "ipv6" + snmpConfig["ipv6"] = neInfo.IP + } + if strings.Contains(neInfo.IP, ".") { + snmpConfig["ipType"] = "ipv4" + snmpConfig["ipv4"] = neInfo.IP + } + delete(snmpConfig, "iptype") + if snmpEnable, ok := content["snmpEnable"]; ok && snmpEnable != nil { + snmpConfig["enable"] = parse.Boolean(snmpEnable) + } + if snmpPort, ok := content["snmpPort"]; ok && snmpPort != nil { + snmpConfig["port"] = parse.Number(snmpPort) + } + delete(oamData, "snmpconfig") + oamData["snmpConfig"] = snmpConfig + // 对网管KPI上报配置 - if v, ok := oamData["kpiConfig"]; ok { - item := v.(map[string]any) - if neInfo.NeType == "UPF" { - item["timer"] = 5 - } else { - item["timer"] = 60 - } - - 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 + kpiConfig, ok := oamData["kpiConfig"].(map[string]any) + if !ok { + neConfOAMData := r.neConfOAMData() + kpiConfig = neConfOAMData["kpiConfig"].(map[string]any) } + if neInfo.NeType == "UPF" { + kpiConfig["timer"] = 5 + } else { + kpiConfig["timer"] = 60 + } + if kpiEnable, ok := content["kpiEnable"]; ok && kpiEnable != nil { + kpiConfig["enable"] = parse.Boolean(kpiEnable) + } + if kpiTimer, ok := content["kpiTimer"]; ok && kpiTimer != nil { + kpiConfig["timer"] = parse.Number(kpiTimer) + } + delete(oamData, "kpiconfig") + oamData["kpiConfig"] = kpiConfig + if err := r.neConfOAMWirte(neInfo.NeType, neInfo.NeId, oamData, sync); err != nil { return fmt.Errorf("error wirte OAM file info") }