From ffa43ab10964ed034e90cb8cc6c49335ec67c3d8 Mon Sep 17 00:00:00 2001 From: simonzhangsz <15231584+simonzhangsz@user.noreply.gitee.com> Date: Fri, 6 Dec 2024 20:33:25 +0800 Subject: [PATCH 1/9] fix: export log empty issue --- restagent/etc/restconf.yaml | 2 +- src/modules/system/controller/sys_log_operate.go | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/restagent/etc/restconf.yaml b/restagent/etc/restconf.yaml index 5664e573..1bef93f4 100644 --- a/restagent/etc/restconf.yaml +++ b/restagent/etc/restconf.yaml @@ -41,7 +41,7 @@ database: password: "1000omc@kp!" host: "127.0.0.1" port: 33066 - name: tenants_db + name: "tenants_db" connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True backup: d:/omc.git/be.ems/restagent/database diff --git a/src/modules/system/controller/sys_log_operate.go b/src/modules/system/controller/sys_log_operate.go index 1bfabd00..331d3a4f 100644 --- a/src/modules/system/controller/sys_log_operate.go +++ b/src/modules/system/controller/sys_log_operate.go @@ -113,7 +113,13 @@ func (s *SysLogOperateController) Export(c *gin.Context) { querys := ctx.BodyJSONMap(c) querys["pageNum"] = 1 querys["pageSize"] = 10000 - dataScopeSQL := ctx.LoginUserToDataScopeSQL(c, "d", "u") + // multi-tenancy, only filter user setting tenant_id + userName := ctx.LoginUserToUserName(c) + if s.IsTenancyUser(userName) { + querys["operName"] = userName + } + // dataScopeSQL := ctx.LoginUserToDataScopeSQL(c, "d", "u") + dataScopeSQL := "" data := s.SysLogOperateService.SelectSysLogOperatePage(querys, dataScopeSQL) if parse.Number(data["total"]) == 0 { // 导出数据记录为空 @@ -221,8 +227,5 @@ func (s *SysLogOperateController) Export(c *gin.Context) { func (s *SysLogOperateController) IsTenancyUser(userName string) bool { var tenantID []int64 dborm.DefaultDB().Table("sys_user").Where("user_name=?", userName).Cols("tenant_id").Find(&tenantID) - if len(tenantID) > 0 { - return true - } - return false + return (len(tenantID) > 0) } From 1f87c7a57cc2806a16bf8e35c211bb13e44f9d01 Mon Sep 17 00:00:00 2001 From: simonzhangsz <15231584+simonzhangsz@user.noreply.gitee.com> Date: Sat, 7 Dec 2024 11:41:31 +0800 Subject: [PATCH 2/9] fix: log export issue multi-tenant --- src/modules/system/controller/sys_log_operate.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/modules/system/controller/sys_log_operate.go b/src/modules/system/controller/sys_log_operate.go index 331d3a4f..49fb0ae9 100644 --- a/src/modules/system/controller/sys_log_operate.go +++ b/src/modules/system/controller/sys_log_operate.go @@ -45,11 +45,12 @@ func (s *SysLogOperateController) List(c *gin.Context) { // multi-tenancy, only filter user setting tenant_id userName := ctx.LoginUserToUserName(c) + dataScopeSQL := "" if s.IsTenancyUser(userName) { querys["operName"] = userName + } else { + dataScopeSQL = ctx.LoginUserToDataScopeSQL(c, "d", "u") } - // data := s.SysLogOperateService.SelectSysLogOperatePage(querys) - dataScopeSQL := "" // ctx.LoginUserToDataScopeSQL(c, "d", "u") data := s.SysLogOperateService.SelectSysLogOperatePage(querys, dataScopeSQL) rows := data["rows"].([]model.SysLogOperate) @@ -113,13 +114,15 @@ func (s *SysLogOperateController) Export(c *gin.Context) { querys := ctx.BodyJSONMap(c) querys["pageNum"] = 1 querys["pageSize"] = 10000 + // multi-tenancy, only filter user setting tenant_id userName := ctx.LoginUserToUserName(c) + dataScopeSQL := "" if s.IsTenancyUser(userName) { querys["operName"] = userName + } else { + dataScopeSQL = ctx.LoginUserToDataScopeSQL(c, "d", "u") } - // dataScopeSQL := ctx.LoginUserToDataScopeSQL(c, "d", "u") - dataScopeSQL := "" data := s.SysLogOperateService.SelectSysLogOperatePage(querys, dataScopeSQL) if parse.Number(data["total"]) == 0 { // 导出数据记录为空 From 154c11137fcd57a793770d73b60e7b096e19b9c7 Mon Sep 17 00:00:00 2001 From: simonzhangsz <15231584+simonzhangsz@user.noreply.gitee.com> Date: Sat, 7 Dec 2024 13:40:06 +0800 Subject: [PATCH 3/9] release 2.2412.1 --- captrace/makefile | 2 +- crontask/makefile | 2 +- data2html/makefile | 2 +- makefile | 2 +- mkpkg.sh | 2 +- restagent/makefile | 2 +- src/framework/config/config/config.default.yaml | 2 +- sshsvc/makefile | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/captrace/makefile b/captrace/makefile index 4fe600be..caaaeef1 100644 --- a/captrace/makefile +++ b/captrace/makefile @@ -1,7 +1,7 @@ # Makefile for rest agent project PROJECT = OMC -VERSION = 2.2411.2 +VERSION = 2.2412.1 PLATFORM = amd64 ARMPLATFORM = aarch64 BUILDDIR = ../../build diff --git a/crontask/makefile b/crontask/makefile index def98974..abd48c5d 100644 --- a/crontask/makefile +++ b/crontask/makefile @@ -1,7 +1,7 @@ # Makefile for OMC-OMC-crontask project PROJECT = OMC -VERSION = 2.2411.2 +VERSION = 2.2412.1 LIBDIR = be.ems/lib BINNAME = crontask diff --git a/data2html/makefile b/data2html/makefile index a0bcaf07..518290b6 100644 --- a/data2html/makefile +++ b/data2html/makefile @@ -1,7 +1,7 @@ # Makefile for rest agent project PROJECT = OMC -VERSION = 2.2411.2 +VERSION = 2.2412.1 RelDate = `date +%Y%m%d` Release = $(RelDate) RelVer = $(VERSION)-$(RelDate) diff --git a/makefile b/makefile index 69a2a4d1..2d8e3a97 100644 --- a/makefile +++ b/makefile @@ -3,7 +3,7 @@ ProjectL = omc ProjectU = OMC PROJECT = $(ProjectL) -VERSION = 2.2411.2 +VERSION = 2.2412.1 RelDate = `date +%Y%m%d` Release = $(RelDate) RelVer = $(VERSION)-$(RelDate) diff --git a/mkpkg.sh b/mkpkg.sh index aeca9633..a455d1c0 100755 --- a/mkpkg.sh +++ b/mkpkg.sh @@ -2,7 +2,7 @@ ProcList="restagent crontask sshsvc captrace data2html" ProjectL=omc -VERSION=2.2411.2 +VERSION=2.2412.1 RelDate=`date +%Y%m%d` Release=${RelDate} RelVer=${VERSION}-${RelDate} diff --git a/restagent/makefile b/restagent/makefile index 9c0cbf26..b61249b3 100644 --- a/restagent/makefile +++ b/restagent/makefile @@ -1,7 +1,7 @@ # Makefile for rest agent project PROJECT = OMC -VERSION = 2.2411.2 +VERSION = 2.2412.1 PLATFORM = amd64 ARMPLATFORM = aarch64 BUILDDIR = ../../build diff --git a/src/framework/config/config/config.default.yaml b/src/framework/config/config/config.default.yaml index 1af12215..1aa9ef56 100644 --- a/src/framework/config/config/config.default.yaml +++ b/src/framework/config/config/config.default.yaml @@ -1,7 +1,7 @@ # 项目信息 framework: name: "OMC" - version: "2.2411.2" + version: "2.2412.1" # 应用服务配置 server: diff --git a/sshsvc/makefile b/sshsvc/makefile index 303d5908..8486993a 100644 --- a/sshsvc/makefile +++ b/sshsvc/makefile @@ -1,7 +1,7 @@ # Makefile for OMC-OMC-crontask project PROJECT = OMC -VERSION = 2.2411.2 +VERSION = 2.2412.1 LIBDIR = be.ems/lib BINNAME = sshsvc From 40c7aa8d1138c7bd2cdb319118179e483f034f97 Mon Sep 17 00:00:00 2001 From: simonzhangsz <15231584+simonzhangsz@user.noreply.gitee.com> Date: Sat, 7 Dec 2024 15:07:57 +0800 Subject: [PATCH 4/9] =?UTF-8?q?fix:=20UDM=E7=AD=BE=E7=BA=A6=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E6=B7=BB=E5=8A=A0msisdn=E5=92=8Cstart=5Fmsisdn?= =?UTF-8?q?=E8=AF=86=E5=88=AB=E5=AF=BC=E8=87=B4=E6=95=B0=E6=8D=AE=E4=B8=80?= =?UTF-8?q?=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/network_data/controller/udm_sub.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/modules/network_data/controller/udm_sub.go b/src/modules/network_data/controller/udm_sub.go index 2272e9a5..ce47dee4 100644 --- a/src/modules/network_data/controller/udm_sub.go +++ b/src/modules/network_data/controller/udm_sub.go @@ -203,6 +203,8 @@ func (s *UDMSubController) Adds(c *gin.Context) { if body.StaticIp != "" { cmd += fmt.Sprintf(",static_ip=%s", body.StaticIp) } + omemsisdn := fmt.Sprintf(",msisdn=%s,", body.MSISDN) + cmd = strings.Replace(cmd, omemsisdn, ",", 1) data, err := telnet.ConvertToStr(telnetClient, cmd) if err != nil { c.JSON(200, result.ErrMsg(err.Error())) From 188f0aff426bf1581c4be5ff85a3fbeb9929aa3e Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Mon, 9 Dec 2024 16:58:49 +0800 Subject: [PATCH 5/9] =?UTF-8?q?fix:=20=E7=BD=91=E5=85=83=E5=A4=87=E4=BB=BD?= =?UTF-8?q?SMSC=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/network_element/service/ne_config_backup.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/modules/network_element/service/ne_config_backup.go b/src/modules/network_element/service/ne_config_backup.go index 9c2d6ba8..80cfffb9 100644 --- a/src/modules/network_element/service/ne_config_backup.go +++ b/src/modules/network_element/service/ne_config_backup.go @@ -120,6 +120,9 @@ func (r *NeConfigBackup) NeConfigLocalToNe(neInfo model.NeInfo, localFile string sshClient.RunCMD(fmt.Sprintf("sudo mkdir -p /usr/local/etc/iwf && sudo cp -rf %s/iwf/* /usr/local/etc/iwf && sudo chmod 755 /usr/local/etc/iwf/*.yaml", neDirTemp)) } else if neTypeLower == "omc" { sshClient.RunCMD(fmt.Sprintf("sudo mkdir -p /usr/local/omc/etc && sudo cp -rf %s/* /usr/local/omc/etc && sudo chmod 755 /usr/local/omc/etc/*.{yaml,conf}", neDirTemp)) + } else if neTypeLower == "smsc" { + chmodFile := "sudo chmod 755 /usr/local/etc/smsc/{*sys.conf,*conf.txt,conf/is41_operation.conf}" + sshClient.RunCMD(fmt.Sprintf("sudo mkdir -p /usr/local/etc/smsc/conf && sudo cp -rf %s/* /usr/local/etc/smsc && %s", neDirTemp, chmodFile)) } else { neEtcPath := fmt.Sprintf("/usr/local/etc/%s", neTypeLower) chmodFile := fmt.Sprintf("sudo chmod 755 %s/*.yaml", neEtcPath) @@ -175,6 +178,9 @@ func (r *NeConfigBackup) NeConfigNeToLocal(neInfo model.NeInfo) (string, error) sshClient.RunCMD(fmt.Sprintf("mkdir -p %s/iwf && sudo cp -rf /usr/local/etc/iwf/*.yaml %s/iwf", neDirTemp, neDirTemp)) } else if neTypeLower == "omc" { sshClient.RunCMD(fmt.Sprintf("mkdir -p %s && sudo cp -rf /usr/local/omc/etc/*.{yaml,conf} %s", neDirTemp, neDirTemp)) + } else if neTypeLower == "smsc" { + sshClient.RunCMD(fmt.Sprintf("mkdir -p %s && sudo cp -rf /usr/local/etc/smsc/{*.yaml,*.conf,*conf.txt} %s", neDirTemp, neDirTemp)) + sshClient.RunCMD(fmt.Sprintf("sudo cp -rf /usr/local/etc/smsc/conf %s/conf", neDirTemp)) } else { nePath := fmt.Sprintf("/usr/local/etc/%s/*.yaml", neTypeLower) if neTypeLower == "mme" { From 95ead2fccb341b295ed72c70f0f4aad4fbab817f Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Mon, 9 Dec 2024 17:01:11 +0800 Subject: [PATCH 6/9] =?UTF-8?q?fix:=20Para5G=E5=8F=82=E6=95=B0UPF=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=BD=91=E5=8D=A1=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../network_element/service/ne_info.go | 51 +++++++------------ .../network_element/service/ne_version.go | 17 ++++--- 2 files changed, 30 insertions(+), 38 deletions(-) diff --git a/src/modules/network_element/service/ne_info.go b/src/modules/network_element/service/ne_info.go index 7947b594..244c5981 100644 --- a/src/modules/network_element/service/ne_info.go +++ b/src/modules/network_element/service/ne_info.go @@ -52,22 +52,6 @@ func (r *NeInfo) SelectNeInfoByNeTypeAndNeID(neType, neID string) model.NeInfo { return neInfo } -// SelectNeInfoByNeType 通过ne_typed查询网元信息 -func (r *NeInfo) SelectNeInfoByNeType(neType string) []model.NeInfo { - var neInfos []model.NeInfo - key := fmt.Sprintf("%s%s", cachekey.NE_KEY, strings.ToUpper(neType)) - jsonStr, _ := redis.Get("", key) - if len(jsonStr) > 7 { - err := json.Unmarshal([]byte(jsonStr), &neInfos) - if err != nil { - neInfos = []model.NeInfo{} - } - } else { - neInfos = r.SelectList(model.NeInfo{NeType: neType}, false, false) - } - return neInfos -} - // RefreshByNeTypeAndNeID 通过ne_type和ne_id刷新redis中的缓存 func (r *NeInfo) RefreshByNeTypeAndNeID(neType, neID string) model.NeInfo { var neInfo model.NeInfo @@ -926,22 +910,25 @@ func (r *NeInfo) neConfPara5GDataConvert(content map[string]any) map[string]stri "DNN_IMS": basic["dnn_ims"].(string), // external - "N2_IP": external["amfn2_ip"].(string), - "UE_POOL": external["ue_pool"].(string), - "UE_IP": ueIP, - "UE_MASK": ueMask, - "UE_CIDR": ueCicr, - "UPF_TYPE": external["upf_type"].(string), // StandardUPF LightUPF - "N3_IP": n3IP, - "N3_MASK": n3Mask, - "N3_GW": external["upfn3_gw"].(string), - "N3_PCI": external["upfn3_pci"].(string), - "N3_MAC": external["upfn3_mac"].(string), - "N6_IP": n6IP, - "N6_MASK": n6Mask, - "N6_GW": external["upfn6_gw"].(string), - "N6_PCI": external["upfn6_pci"].(string), - "N6_MAC": external["upfn6_mac"].(string), + "N2_IP": external["amfn2_ip"].(string), + "UE_POOL": external["ue_pool"].(string), // 轻量版才用配置 + "UE_IP": ueIP, + "UE_MASK": ueMask, + "UE_CIDR": ueCicr, + "UPF_TYPE": external["upf_type"].(string), // 类型 StandardUPF LightUPF + "UPF_DRIVER_TYPE": external["upf_driver_type"].(string), // 网卡驱动 vmxnet3 host dpdk + "N3_IP": n3IP, + "N3_MASK": n3Mask, + "N3_GW": external["upfn3_gw"].(string), + "N3_PCI": external["upfn3_pci"].(string), + "N3_MAC": external["upfn3_mac"].(string), + "N3_NIC_NAME": external["upfn3_card_name"].(string), // 网卡名 eth0 + "N6_IP": n6IP, + "N6_MASK": n6Mask, + "N6_GW": external["upfn6_gw"].(string), + "N6_PCI": external["upfn6_pci"].(string), + "N6_MAC": external["upfn6_mac"].(string), + "N6_NIC_NAME": external["upfn6_card_name"].(string), // 网卡名 eth0 "SIP_IP": external["ims_sip_ip"].(string), diff --git a/src/modules/network_element/service/ne_version.go b/src/modules/network_element/service/ne_version.go index 84763967..4c87cfb8 100644 --- a/src/modules/network_element/service/ne_version.go +++ b/src/modules/network_element/service/ne_version.go @@ -239,7 +239,7 @@ func (r *NeVersion) operateCommand(action, neType string, neFilePaths []string) pkgCmdStr := fmt.Sprintf("sudo dpkg -i %s", strings.Join(neFilePaths, " ")) fileExt := filepath.Ext(strings.ToLower(neFilePaths[0])) if strings.HasSuffix(fileExt, "rpm") { - pkgCmdStr = fmt.Sprintf("sudo rpm -Uvh %s", strings.Join(neFilePaths, " ")) + pkgCmdStr = fmt.Sprintf("sudo rpm -Uvh --reinstall %s", strings.Join(neFilePaths, " ")) } // 组合命令输入 @@ -257,7 +257,7 @@ func (r *NeVersion) operateCommand(action, neType string, neFilePaths []string) // 升级软件包 pkgCmdStr = fmt.Sprintf("sudo M_PARAM=upgrade dpkg -i %s", strings.Join(neFilePaths, " ")) if strings.HasSuffix(fileExt, "rpm") { - pkgCmdStr = fmt.Sprintf("sudo M_PARAM=upgrade rpm -Uvh %s", strings.Join(neFilePaths, " ")) + pkgCmdStr = fmt.Sprintf("sudo M_PARAM=upgrade rpm -Uvh --reinstall %s", strings.Join(neFilePaths, " ")) } omcStrArr = append(omcStrArr, pkgCmdStr) } @@ -428,9 +428,6 @@ func (r *NeVersion) operateCommand(action, neType string, neFilePaths []string) 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/localhost/%s/g\" /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["UPF_IP"])) - // UE - 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"])) // N3 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"])) @@ -439,6 +436,10 @@ func (r *NeVersion) operateCommand(action, neType string, neFilePaths []string) 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", para5GData["N3_MAC"])) // 标准版 N6 if para5GData["UPF_TYPE"] == "StandardUPF" { + cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: \"N3\"/,/driverType: .*/s/driverType: .*/driverType: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["UPF_DRIVER_TYPE"])) + cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: \"N3\"/,/systemNetworkCardName: .*/s/systemNetworkCardName: .*/systemNetworkCardName: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["N3_NIC_NAME"])) + cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: \"N6\"/,/driverType: .*/s/driverType: .*/driverType: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["UPF_DRIVER_TYPE"])) + cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: \"N6\"/,/systemNetworkCardName: .*/s/systemNetworkCardName: .*/systemNetworkCardName: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["N6_NIC_NAME"])) 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\"/,/gatewayIpv4: 192.168.1.254/s/gatewayIpv4: 192.168.1.254/gatewayIpv4: %s/' /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["N6_GW"])) @@ -451,7 +452,10 @@ func (r *NeVersion) operateCommand(action, neType string, neFilePaths []string) if para5GData["UPF_TYPE"] == "LightUPF" { 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") + cmdStrArr = append(cmdStrArr, "sudo sed -i 's/driverType: .*/driverType: \"\"/g' /usr/local/etc/upf/upfForwarder_1.yaml \n") + // UE + 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("grep -qxF '%s upf' /etc/hosts || echo '%s upf' | sudo tee -a /etc/hosts \n", para5GData["UPF_IP"], para5GData["UPF_IP"])) cmdStrArr = append(cmdStrArr, fmt.Sprintf("grep -qxF '%s upfn3' /etc/hosts || echo '%s upfn3' | sudo tee -a /etc/hosts \n", para5GData["N3_IP"], para5GData["N3_IP"])) @@ -657,6 +661,7 @@ 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") From 2d4a9c3a0f590c981296c2a63f19d6f88a27d2fb Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Tue, 10 Dec 2024 18:02:02 +0800 Subject: [PATCH 7/9] =?UTF-8?q?feat:=20=E7=BD=91=E5=85=83=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E9=80=9A=E8=BF=87neType=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../network_element/service/ne_info.go | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/modules/network_element/service/ne_info.go b/src/modules/network_element/service/ne_info.go index 244c5981..e01f5109 100644 --- a/src/modules/network_element/service/ne_info.go +++ b/src/modules/network_element/service/ne_info.go @@ -79,6 +79,28 @@ func (r *NeInfo) ClearNeCacheByNeType(neType string) bool { return delOk } +// SelectNeInfoByNeType 通过ne_type查询网元信息 +func (r *NeInfo) SelectNeInfoByNeType(neType string) []model.NeInfo { + neInfo := make([]model.NeInfo, 0) + key := fmt.Sprintf("%s%s:*", cachekey.NE_KEY, strings.ToUpper(neType)) + jsonStr, _ := redis.Get("", key) + if len(jsonStr) > 7 { + err := json.Unmarshal([]byte(jsonStr), &neInfo) + if err != nil { + return neInfo + } + } else { + neInfo = r.neInfoRepository.SelectList(model.NeInfo{NeType: neType}) + for _, v := range neInfo { + key := fmt.Sprintf("%s%s:%s", cachekey.NE_KEY, strings.ToUpper(v.NeType), v.NeId) + redis.Del("", key) + values, _ := json.Marshal(v) + redis.Set("", key, string(values)) + } + } + return neInfo +} + // SelectNeInfoByRmuid 通过rmUID查询网元信息 func (r *NeInfo) SelectNeInfoByRmuid(rmUid string) model.NeInfo { var neInfo model.NeInfo From 84dc678b8b22db8e2bff1790947e233e19c10d37 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Tue, 10 Dec 2024 18:02:19 +0800 Subject: [PATCH 8/9] =?UTF-8?q?fix:=20=E7=BD=91=E5=85=83=E5=AE=89=E8=A3=85?= =?UTF-8?q?redis=E4=BE=9D=E8=B5=96=E5=8C=85bind=E4=B8=BA0.0.0.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../network_element/service/ne_version.go | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/modules/network_element/service/ne_version.go b/src/modules/network_element/service/ne_version.go index 4c87cfb8..31aa4ad9 100644 --- a/src/modules/network_element/service/ne_version.go +++ b/src/modules/network_element/service/ne_version.go @@ -434,17 +434,29 @@ func (r *NeVersion) operateCommand(action, neType string, neFilePaths []string) 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\"/,/interfacePCI: \"0000:00:00.0\"/s/interfacePCI: \"0000:00:00.0\"/interfacePCI: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["N3_PCI"])) 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", para5GData["N3_MAC"])) + 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/,/interfacePCI: \"0000:00:00.0\"/s/interfacePCI: \"0000:00:00.0\"/interfacePCI: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["N3_PCI"])) + 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", para5GData["N3_MAC"])) // 标准版 N6 if para5GData["UPF_TYPE"] == "StandardUPF" { + 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: \"N3\"/,/driverType: .*/s/driverType: .*/driverType: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["UPF_DRIVER_TYPE"])) cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: \"N3\"/,/systemNetworkCardName: .*/s/systemNetworkCardName: .*/systemNetworkCardName: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["N3_NIC_NAME"])) cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: \"N6\"/,/driverType: .*/s/driverType: .*/driverType: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["UPF_DRIVER_TYPE"])) cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: \"N6\"/,/systemNetworkCardName: .*/s/systemNetworkCardName: .*/systemNetworkCardName: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["N6_NIC_NAME"])) - 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\"/,/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\"/,/interfacePCI: \"0000:00:00.0\"/s/interfacePCI: \"0000:00:00.0\"/interfacePCI: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["N6_PCI"])) 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", para5GData["N6_MAC"])) + cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: N3/,/driverType: .*/s/driverType: .*/driverType: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["UPF_DRIVER_TYPE"])) + cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: N3/,/systemNetworkCardName: .*/s/systemNetworkCardName: .*/systemNetworkCardName: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["N3_NIC_NAME"])) + cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: N6/,/driverType: .*/s/driverType: .*/driverType: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["UPF_DRIVER_TYPE"])) + cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i '/- interfaceType: N6/,/systemNetworkCardName: .*/s/systemNetworkCardName: .*/systemNetworkCardName: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["N6_NIC_NAME"])) + 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/,/interfacePCI: \"0000:00:00.0\"/s/interfacePCI: \"0000:00:00.0\"/interfacePCI: \"%s\"/' /usr/local/etc/upf/upfForwarder_1.yaml \n", para5GData["N6_PCI"])) + 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", para5GData["N6_MAC"])) // 路由 cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo ip route add '%s/%s' via '%s' \n", para5GData["UE_IP"], para5GData["UE_CIDR"], para5GData["N6_IP"])) } @@ -454,6 +466,8 @@ func (r *NeVersion) operateCommand(action, neType string, neFilePaths []string) 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: .*/driverType: \"\"/g' /usr/local/etc/upf/upfForwarder_1.yaml \n") // UE + 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 '/- 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"])) } @@ -543,14 +557,14 @@ func (r *NeVersion) operateCommand(action, neType string, neFilePaths []string) if strings.Contains(pkgCmdStr, "adb") { para5GData := NewNeInfo.Para5GData cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/adb/default/adb.conf /usr/local/etc/adb/adb.conf \n") - cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/bind 127.0.0.1/bind 127.0.0.1 %s/g\" /usr/local/etc/adb/adb.conf \n", para5GData["DB_IP"])) + cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/bind 127.0.0.1/bind %s/g\" /usr/local/etc/adb/adb.conf \n", para5GData["DB_IP"])) cmdStrArr = append(cmdStrArr, "sudo service adb restart \n") } // kvdb if strings.Contains(pkgCmdStr, "kvdb") { para5GData := NewNeInfo.Para5GData cmdStrArr = append(cmdStrArr, "sudo cp /usr/local/etc/kvdb/default/kvdb.conf /usr/local/etc/kvdb/kvdb.conf \n") - cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/bind 127.0.0.1/bind 127.0.0.1 %s/g\" /usr/local/etc/kvdb/kvdb.conf \n", para5GData["DB_IP"])) + cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo sed -i \"s/bind 127.0.0.1/bind %s/g\" /usr/local/etc/kvdb/kvdb.conf \n", para5GData["DB_IP"])) cmdStrArr = append(cmdStrArr, "sudo service kvdb restart \n") } } From c9596f3385e436e26f89433170dd9b2afc4dc6ae Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Wed, 11 Dec 2024 15:43:54 +0800 Subject: [PATCH 9/9] =?UTF-8?q?fix:=20UDM=E7=AD=BE=E7=BA=A6cag=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E5=85=81=E8=AE=B8=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/network_data/controller/udm_sub.go | 5 +---- src/modules/network_data/service/udm_sub.go | 5 ++--- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/modules/network_data/controller/udm_sub.go b/src/modules/network_data/controller/udm_sub.go index ce47dee4..837100e9 100644 --- a/src/modules/network_data/controller/udm_sub.go +++ b/src/modules/network_data/controller/udm_sub.go @@ -199,10 +199,7 @@ func (s *UDMSubController) Adds(c *gin.Context) { // 发送MML cmd := fmt.Sprintf("baa udmuser:start_imsi=%s,start_msisdn=%s,sub_num=%s,", body.IMSI, body.MSISDN, num) cmd += s.udmSubService.ParseCommandParams(body) - // static_ip指给4G UE分配的静态IP,没有可不带此字段名,批量添加IP会自动递增 - if body.StaticIp != "" { - cmd += fmt.Sprintf(",static_ip=%s", body.StaticIp) - } + // 去除msisdn参数,避免重复 omemsisdn := fmt.Sprintf(",msisdn=%s,", body.MSISDN) cmd = strings.Replace(cmd, omemsisdn, ",", 1) data, err := telnet.ConvertToStr(telnetClient, cmd) diff --git a/src/modules/network_data/service/udm_sub.go b/src/modules/network_data/service/udm_sub.go index ce97cf72..3c2713b0 100644 --- a/src/modules/network_data/service/udm_sub.go +++ b/src/modules/network_data/service/udm_sub.go @@ -337,6 +337,7 @@ func (r *UDMSubUser) ParseCommandParams(item model.UDMSubUser) string { if item.ApnContext != "" { conditions = append(conditions, fmt.Sprintf("apn_context=%s", item.ApnContext)) } + // static_ip指给4G UE分配的静态IP,没有可不带此字段名,批量添加IP会自动递增 if item.StaticIp != "" { conditions = append(conditions, fmt.Sprintf("static_ip=%s", item.StaticIp)) } @@ -348,8 +349,6 @@ func (r *UDMSubUser) ParseCommandParams(item model.UDMSubUser) string { if item.SmData != "" { conditions = append(conditions, fmt.Sprintf("sm_data=%s", item.SmData)) } - if item.Cag != "" { - conditions = append(conditions, fmt.Sprintf("cag=%s", item.Cag)) - } + conditions = append(conditions, fmt.Sprintf("cag=%s", item.Cag)) return strings.Join(conditions, ",") }