diff --git a/src/modules/network_element/controller/ne_version.go b/src/modules/network_element/controller/ne_version.go index d18a8bb1..94bc2d80 100644 --- a/src/modules/network_element/controller/ne_version.go +++ b/src/modules/network_element/controller/ne_version.go @@ -1,13 +1,9 @@ package controller import ( - "strings" - "be.ems/src/framework/i18n" "be.ems/src/framework/utils/ctx" - "be.ems/src/framework/utils/parse" "be.ems/src/framework/vo/result" - "be.ems/src/modules/network_element/model" neService "be.ems/src/modules/network_element/service" "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/binding" @@ -57,100 +53,6 @@ func (s *NeVersionController) Info(c *gin.Context) { c.JSON(200, result.OkData(neVersion)) } -// 网元版本信息新增 -// -// POST / -func (s *NeVersionController) Add(c *gin.Context) { - language := ctx.AcceptLanguage(c) - var body model.NeVersion - err := c.ShouldBindBodyWith(&body, binding.JSON) - if err != nil || body.ID != "" { - c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) - return - } - - // 检查属性值唯一 - uniqueInfo := s.neVersionService.CheckUniqueTypeAndID(body.NeType, body.NeId, "") - if !uniqueInfo { - // 网元版本操作【%s】失败,网元类型信息已存在 - msg := i18n.TTemplate(language, "neVersion.errKeyExists", map[string]any{"name": body.NeType}) - c.JSON(200, result.ErrMsg(msg)) - return - } - - body.CreateBy = ctx.LoginUserToUserName(c) - insertId := s.neVersionService.Insert(body) - if insertId != "" { - c.JSON(200, result.Ok(nil)) - return - } - c.JSON(200, result.Err(nil)) -} - -// 网元版本信息修改 -// -// PUT / -func (s *NeVersionController) Edit(c *gin.Context) { - language := ctx.AcceptLanguage(c) - var body model.NeVersion - err := c.ShouldBindBodyWith(&body, binding.JSON) - if err != nil || body.ID == "" { - c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) - return - } - - // 检查属性值唯一 - uniqueInfo := s.neVersionService.CheckUniqueTypeAndID(body.NeType, body.NeId, body.ID) - if !uniqueInfo { - // 网元版本操作【%s】失败,网元类型信息已存在 - msg := i18n.TTemplate(language, "neVersion.errKeyExists", map[string]any{"name": body.NeType}) - c.JSON(200, result.ErrMsg(msg)) - return - } - - // 检查是否存在 - neVersion := s.neVersionService.SelectById(body.ID) - if neVersion.ID != body.ID { - // 没有可访问网元版本数据! - c.JSON(200, result.ErrMsg(i18n.TKey(language, "neVersion.noData"))) - return - } - - body.UpdateBy = ctx.LoginUserToUserName(c) - rows := s.neVersionService.Update(body) - if rows > 0 { - c.JSON(200, result.Ok(nil)) - return - } - c.JSON(200, result.Err(nil)) -} - -// 网元版本信息删除 -// -// DELETE /:versionIds -func (s *NeVersionController) Remove(c *gin.Context) { - language := ctx.AcceptLanguage(c) - versionIds := c.Param("versionIds") - if versionIds == "" { - c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) - return - } - // 处理字符转id数组后去重 - ids := strings.Split(versionIds, ",") - uniqueIDs := parse.RemoveDuplicates(ids) - if len(uniqueIDs) <= 0 { - c.JSON(200, result.Err(nil)) - return - } - rows, err := s.neVersionService.DeleteByIds(uniqueIDs) - if err != nil { - c.JSON(200, result.ErrMsg(i18n.TKey(language, err.Error()))) - return - } - msg := i18n.TTemplate(language, "app.common.deleteSuccess", map[string]any{"num": rows}) - c.JSON(200, result.OkMsg(msg)) -} - // 网元版本操作 // // POST /operate diff --git a/src/modules/network_element/network_element.go b/src/modules/network_element/network_element.go index 07bfa740..e9d45cce 100644 --- a/src/modules/network_element/network_element.go +++ b/src/modules/network_element/network_element.go @@ -58,24 +58,6 @@ func Setup(router *gin.Engine) { middleware.PreAuthorize(nil), controller.NewNeInfo.ListAll, ) - neInfoGroup.GET("/configFile", - middleware.PreAuthorize(nil), - controller.NewNeInfo.ConfigFileRead, - ) - neInfoGroup.PUT("/configFile", - middleware.PreAuthorize(nil), - collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.neInfo", collectlogs.BUSINESS_TYPE_OTHER)), - controller.NewNeInfo.ConfigFileWrite, - ) - 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("/para5GFile", middleware.PreAuthorize(nil), controller.NewNeInfo.Para5GFileRead, @@ -197,21 +179,6 @@ func Setup(router *gin.Engine) { middleware.PreAuthorize(nil), controller.NewNeVersion.Info, ) - neVersionGroup.POST("", - middleware.PreAuthorize(nil), - collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.neVersion", collectlogs.BUSINESS_TYPE_INSERT)), - controller.NewNeVersion.Add, - ) - neVersionGroup.PUT("", - middleware.PreAuthorize(nil), - collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.neVersion", collectlogs.BUSINESS_TYPE_UPDATE)), - controller.NewNeVersion.Edit, - ) - neVersionGroup.DELETE("/:versionIds", - middleware.PreAuthorize(nil), - collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.neVersion", collectlogs.BUSINESS_TYPE_DELETE)), - controller.NewNeVersion.Remove, - ) neVersionGroup.POST("/operate", middleware.PreAuthorize(nil), collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.neVersion", collectlogs.BUSINESS_TYPE_OTHER)), @@ -250,11 +217,6 @@ func Setup(router *gin.Engine) { collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.neSoftware", collectlogs.BUSINESS_TYPE_OTHER)), controller.NewNeSoftware.NewNeVersion, ) - neSoftwareGroup.POST("/install", - middleware.PreAuthorize(nil), - collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.neSoftware", collectlogs.BUSINESS_TYPE_OTHER)), - controller.NewNeSoftware.Install, - ) } // 网元授权激活信息 @@ -268,21 +230,6 @@ func Setup(router *gin.Engine) { middleware.PreAuthorize(nil), controller.NewNeLicense.Info, ) - neLicenseGroup.POST("", - middleware.PreAuthorize(nil), - collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.neLicense", collectlogs.BUSINESS_TYPE_INSERT)), - controller.NewNeLicense.Add, - ) - neLicenseGroup.PUT("", - middleware.PreAuthorize(nil), - collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.neLicense", collectlogs.BUSINESS_TYPE_UPDATE)), - controller.NewNeLicense.Edit, - ) - neLicenseGroup.DELETE("/:licenseIds", - middleware.PreAuthorize(nil), - collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.neLicense", collectlogs.BUSINESS_TYPE_DELETE)), - controller.NewNeLicense.Remove, - ) neLicenseGroup.GET("/byTypeAndID", middleware.PreAuthorize(nil), controller.NewNeLicense.NeTypeAndID, @@ -416,4 +363,8 @@ func InitLoad() { // 启动时,清除缓存-网元类型 service.NewNeInfoImpl.ClearNeCacheByNeType("*") service.NewNeInfoImpl.SelectNeInfoByRmuid("") + // 启动时,网元公共参数数据记录到全局变量 + if para5GMap, err := service.NewNeInfoImpl.NeConfPara5GRead(); para5GMap != nil && err == nil { + service.NewNeInfoImpl.NeConfPara5GWirte(para5GMap, nil) + } } diff --git a/src/modules/network_element/repository/ne_version.go b/src/modules/network_element/repository/ne_version.go index c6805531..6da08cc8 100644 --- a/src/modules/network_element/repository/ne_version.go +++ b/src/modules/network_element/repository/ne_version.go @@ -21,7 +21,4 @@ type INeVersion interface { // DeleteByIds 批量删除信息 DeleteByIds(ids []string) int64 - - // CheckUniqueTypeAndID 校验网元类型和网元ID是否唯一 - CheckUniqueTypeAndID(neVersion model.NeVersion) string } diff --git a/src/modules/network_element/repository/ne_version.impl.go b/src/modules/network_element/repository/ne_version.impl.go index 0bcfe659..de883acb 100644 --- a/src/modules/network_element/repository/ne_version.impl.go +++ b/src/modules/network_element/repository/ne_version.impl.go @@ -1,7 +1,6 @@ package repository import ( - "fmt" "strings" "time" @@ -181,41 +180,6 @@ func (r *NeVersionImpl) SelectByIds(cmdIds []string) []model.NeVersion { return r.convertResultRows(results) } -// CheckUniqueTypeAndID 校验网元类型和网元ID是否唯一 -func (r *NeVersionImpl) CheckUniqueTypeAndID(neVersion model.NeVersion) string { - // 查询条件拼接 - var conditions []string - var params []any - if neVersion.NeType != "" { - conditions = append(conditions, "ne_type = ?") - params = append(params, neVersion.NeType) - } - if neVersion.NeId != "" { - conditions = append(conditions, "ne_id = ?") - params = append(params, neVersion.NeId) - } - - // 构建查询条件语句 - whereSql := "" - if len(conditions) > 0 { - whereSql += " where " + strings.Join(conditions, " and ") - } else { - return "" - } - - // 查询数据 - querySql := "select id as 'str' from ne_version " + whereSql + " limit 1" - results, err := datasource.RawDB("", querySql, params) - if err != nil { - logger.Errorf("query err %v", err) - return "" - } - if len(results) > 0 { - return fmt.Sprint(results[0]["str"]) - } - return "" -} - // Insert 新增信息 func (r *NeVersionImpl) Insert(neVersion model.NeVersion) string { // 参数拼接 diff --git a/src/modules/network_element/service/ne_version.go b/src/modules/network_element/service/ne_version.go index ed04f0ed..f92a81be 100644 --- a/src/modules/network_element/service/ne_version.go +++ b/src/modules/network_element/service/ne_version.go @@ -25,9 +25,6 @@ type INeVersion interface { // SelectByNeTypeAndNeID 通过网元类型和网元ID查询 SelectByNeTypeAndNeID(neType, neId string) model.NeVersion - // CheckUniqueTypeAndID 校验网元类型和网元ID是否唯一 - CheckUniqueTypeAndID(neType, neId, id string) bool - // Operate 操作版本上传到网元主机执行命令 // // action 安装行为:install upgrade rollback diff --git a/src/modules/network_element/service/ne_version.impl.go b/src/modules/network_element/service/ne_version.impl.go index 119154f3..4676790f 100644 --- a/src/modules/network_element/service/ne_version.impl.go +++ b/src/modules/network_element/service/ne_version.impl.go @@ -7,7 +7,6 @@ import ( "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" @@ -84,18 +83,6 @@ func (r *NeVersionImpl) SelectByNeTypeAndNeID(neType, neId string) model.NeVersi return model.NeVersion{} } -// CheckUniqueTypeAndID 校验网元类型和网元ID是否唯一 -func (r *NeVersionImpl) CheckUniqueTypeAndID(neType, neId, id string) bool { - uniqueId := r.neVersionRepository.CheckUniqueTypeAndID(model.NeVersion{ - NeType: neType, - NeId: neId, - }) - if uniqueId == id { - return true - } - return uniqueId == "" -} - // Operate 操作版本上传到网元主机执行命令 // // action 安装行为:install upgrade rollback @@ -143,7 +130,6 @@ func (r *NeVersionImpl) Operate(action string, neVersion model.NeVersion, preinp return "", fmt.Errorf("error uploading package") } - var para5GData map[string]string if action == "install" { // ========= 网元公共配置文件 start ========= para5GMap, err := NewNeInfoImpl.NeConfPara5GRead() @@ -153,7 +139,6 @@ func (r *NeVersionImpl) Operate(action string, neVersion model.NeVersion, preinp if err := NewNeInfoImpl.NeConfPara5GWirte(para5GMap, []string{fmt.Sprintf("%s@%s", neInfo.NeType, neInfo.NeId)}); err != nil { return "", fmt.Errorf("error wirte OAM file info") } - para5GData = NewNeInfoImpl.NeConfPara5GDataConvert(para5GMap) // ========= 网元公共配置文件 end =========== } @@ -185,6 +170,7 @@ func (r *NeVersionImpl) Operate(action string, neVersion model.NeVersion, preinp return "", fmt.Errorf("error file package not ims") } if action == "install" { + para5GData := NewNeInfoImpl.Para5GData cmdStrArr = append(cmdStrArr, pkgCmdStr+" \n") cmdStrArr = append(cmdStrArr, "sudo ims-stop || true && sudo ims-start \n") // 公网 PLMN地址 @@ -202,6 +188,7 @@ func (r *NeVersionImpl) Operate(action string, neVersion model.NeVersion, preinp } } else { if action == "install" { + para5GData := NewNeInfoImpl.Para5GData cmdStrArr = append(cmdStrArr, pkgCmdStr+" \n") // AMF配置修改 @@ -291,10 +278,10 @@ func (r *NeVersionImpl) Operate(action string, neVersion model.NeVersion, preinp 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/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: vmxnet3/driverType: \"\"/g' /usr/local/etc/upf/upfForwarder_1.yaml \n") } // NRF配置修改 @@ -425,51 +412,7 @@ func (r *NeVersionImpl) Operate(action string, neVersion model.NeVersion, preinp 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 { + if err := NewNeInfoImpl.NeConfOAMSync(neInfo, true); err != nil { return "", fmt.Errorf("error wirte OAM file info") } // ========= 网元OAM配置文件 end ===========