From 70d46fec37f2a731d38bf2b580bf94bc58640df3 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Wed, 20 Mar 2024 15:23:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8F=82=E6=95=B0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E7=BD=91=E5=85=83=E8=8E=B7=E5=8F=96=E6=95=B0=E6=8D=AE=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- features/cm/param.go | 125 ++++++++++--------------------------------- 1 file changed, 28 insertions(+), 97 deletions(-) diff --git a/features/cm/param.go b/features/cm/param.go index 679bd25c..848844bf 100644 --- a/features/cm/param.go +++ b/features/cm/param.go @@ -3,7 +3,7 @@ package cm import ( "strings" - "be.ems/lib/dborm" + "be.ems/lib/core/utils/ctx" "be.ems/lib/global" "be.ems/lib/log" "be.ems/lib/services" @@ -14,7 +14,8 @@ import ( "io" "net/http" - tokenConst "be.ems/src/framework/constants/token" + neService "be.ems/src/modules/network_element/service" + "github.com/go-resty/resty/v2" "github.com/gorilla/mux" ) @@ -29,54 +30,20 @@ var ( func GetParamConfigFromNF(w http.ResponseWriter, r *http.Request) { log.Debug("GetParamConfigFromNF processing... ") - // data := make([]map[string]interface{}, 1) - var response services.DataResponse + neId := ctx.GetQuery(r, "ne_id") vars := mux.Vars(r) neType := vars["elementTypeValue"] - if neType == "" { + if neType == "" || neId == "" { log.Error("elementTypeValue is empty") services.ResponseNotFound404UriNotExist(w, r) return } - token, err := services.CheckFrontValidRequest(w, r) - if err != nil { - log.Error("Request error:", err) - return - } + neInfo := neService.NewNeInfoImpl.SelectNeInfoByNeTypeAndNeID(neType, neId) - restHostPort := fmt.Sprintf("http://127.0.0.1:%d", config.GetYamlConfig().Rest[0].Port) - getNeInfoPattern := fmt.Sprintf(config.DefaultUriPrefix+"/databaseManagement/v1/%s/ne_info", config.GetYamlConfig().Database.Name) - getNeInfoURI := restHostPort + getNeInfoPattern - neId := services.GetUriParamString(r, "ne_id", ",", true, true) - if neId == "" { - getNeInfoURI = getNeInfoURI + fmt.Sprintf("?WHERE=status+in+('0','3')+and+ne_type='%s'", neType) - } else { - getNeInfoURI = getNeInfoURI + fmt.Sprintf("?WHERE=status+in+('0','3')+and+ne_type='%v'+and+ne_id+in+%v", neType, neId) - } - log.Debug("getNeInfoURI:", getNeInfoURI) - - client := resty.New() - resp, err := client.R(). - EnableTrace(). - SetHeaders(map[string]string{tokenConst.HEADER_KEY: r.Header.Get(tokenConst.HEADER_KEY)}). - SetHeaders(map[string]string{"accessToken": token}). - SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}). - SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}). - Get(getNeInfoURI) - if err != nil { - log.Error("Failed to Get:", err) - services.ResponseInternalServerError500ProcessError(w, err) - return - } - log.Trace("NE info:", string(resp.Body())) - - // var neList []dborm.NeInfo - neList, _ := dborm.XormParseResult(resp.Body()) - - if len(neList) >= 1 { - s := neList[0] - requestURI2NF := fmt.Sprintf("http://%s:%v%s", s.Ip, s.Port, r.RequestURI) + var response services.DataResponse + if neInfo.NeId == neId { + requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.IP, neInfo.Port, r.RequestURI) log.Debug("requestURI2NF:", requestURI2NF) resp, err := client.R(). @@ -100,30 +67,24 @@ func GetParamConfigFromNF(w http.ResponseWriter, r *http.Request) { func PostParamConfigToNF(w http.ResponseWriter, r *http.Request) { log.Debug("PostParamConfigToNF processing... ") - _, err := services.CheckFrontValidRequest(w, r) - if err != nil { - log.Error("Request error:", err) - return - } - + neId := ctx.GetQuery(r, "ne_id") vars := mux.Vars(r) neType := vars["elementTypeValue"] - if neType == "" { + if neType == "" || neId == "" { log.Error("elementTypeValue is empty") services.ResponseNotFound404UriNotExist(w, r) return } - neId := services.GetUriParamString(r, "ne_id", ",", false, false) - // no, _ := strconv.ParseInt(neId, 10, 64) - neInfo, err := dborm.XormGetNeInfo(neType, neId) - if err != nil { - log.Error("dborm.XormGetNeInfo is failed:", err) + neInfo := neService.NewNeInfoImpl.SelectNeInfoByNeTypeAndNeID(neType, neId) + + if neInfo.NeId != neId { + log.Error("neId is empty") services.ResponseInternalServerError500DatabaseOperationFailed(w) return } - requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.Ip, neInfo.Port, r.RequestURI) + requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.IP, neInfo.Port, r.RequestURI) log.Debug("requestURI2NF: POST ", requestURI2NF) body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen)) //io.LimitReader限制大小 @@ -152,12 +113,6 @@ func PostParamConfigToNF(w http.ResponseWriter, r *http.Request) { func PutParamConfigToNF(w http.ResponseWriter, r *http.Request) { log.Debug("PutParamConfigToNF processing... ") - _, err := services.CheckFrontValidRequest(w, r) - if err != nil { - log.Error("Request error:", err) - return - } - vars := mux.Vars(r) neType := vars["elementTypeValue"] if neType == "" { @@ -172,16 +127,16 @@ func PutParamConfigToNF(w http.ResponseWriter, r *http.Request) { return } - neId := services.GetUriParamString(r, "ne_id", ",", false, false) - // no, _ := strconv.ParseInt(neId, 10, 64) - neInfo, err := dborm.XormGetNeInfo(neType, neId) - if err != nil { - log.Error("dborm.XormGetNeInfo is failed:", err) + neId := ctx.GetQuery(r, "ne_id") + neInfo := neService.NewNeInfoImpl.SelectNeInfoByNeTypeAndNeID(neType, neId) + + if neInfo.NeId != neId { + log.Error("neId is empty") services.ResponseInternalServerError500DatabaseOperationFailed(w) return } - requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.Ip, neInfo.Port, r.RequestURI) + requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.IP, neInfo.Port, r.RequestURI) log.Debug("requestURI2NF: PUT ", requestURI2NF) body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen)) //io.LimitReader限制大小 @@ -211,36 +166,12 @@ func PutParamConfigToNF(w http.ResponseWriter, r *http.Request) { // // 目前没配置,返回204 func PutOMCNeConfig(w http.ResponseWriter, r *http.Request) { - // vars := mux.Vars(r) - // neType := vars["elementTypeValue"] - // if neType == "" { - // log.Error("elementTypeValue is empty") - // services.ResponseNotFound404UriNotExist(w, r) - // return - // } - // body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen)) - // if err != nil { - // log.Error("Failed to io.ReadAll:", err) - // services.ResponseNotFound404UriNotExist(w, r) - // return - // } - - // neInfo := new(dborm.NeInfo) - // _ = json.Unmarshal(body, neInfo) - // neInfo.NeType = strings.ToUpper(neType) - services.ResponseStatusOK204NoContent(w) } func DeleteParamConfigToNF(w http.ResponseWriter, r *http.Request) { log.Debug("DeleteParamConfigToNF processing... ") - _, err := services.CheckFrontValidRequest(w, r) - if err != nil { - log.Error("Request error:", err) - return - } - vars := mux.Vars(r) neType := vars["elementTypeValue"] if neType == "" { @@ -248,17 +179,17 @@ func DeleteParamConfigToNF(w http.ResponseWriter, r *http.Request) { services.ResponseNotFound404UriNotExist(w, r) return } - neId := services.GetUriParamString(r, "ne_id", ",", false, false) - // no, _ := strconv.ParseInt(neId, 10, 64) - neInfo, err := dborm.XormGetNeInfo(neType, neId) - if err != nil { - log.Error("dborm.XormGetNeInfo is failed:", err) + neId := ctx.GetQuery(r, "ne_id") + neInfo := neService.NewNeInfoImpl.SelectNeInfoByNeTypeAndNeID(neType, neId) + + if neInfo.NeId != neId { + log.Error("neId is empty") services.ResponseInternalServerError500DatabaseOperationFailed(w) return } - requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.Ip, neInfo.Port, r.RequestURI) + requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.IP, neInfo.Port, r.RequestURI) log.Debug("requestURI2NF: DELETE ", requestURI2NF) client := resty.New()