From ac9e9393658021f9647030187145935d6d1683e0 Mon Sep 17 00:00:00 2001 From: simonzhangsz Date: Thu, 28 Nov 2024 19:34:03 +0800 Subject: [PATCH] fix: get state only support omc or all elementTypeValue --- features/state/getstate.go | 95 ++++++++++++++++++++++---------------- 1 file changed, 54 insertions(+), 41 deletions(-) diff --git a/features/state/getstate.go b/features/state/getstate.go index 9a79e508..61cb7811 100644 --- a/features/state/getstate.go +++ b/features/state/getstate.go @@ -762,14 +762,14 @@ func GetStateFromNF(w http.ResponseWriter, r *http.Request) { SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}). Get(requestURI2NF) if err != nil { - log.Error("Get system state from NF is failed:", err) + log.Error("Fail to get state:", err) + errorMessage := services.ErrorMessage{ ErrorCode: "1", ErrorInfo: "Internal server error, NF connnect refused", } - result["error"] = errorMessage - SN, Version, _ := dborm.XormGetNEStateInfo(ne.NeType, ne.NeId) - result["serialNum"] = SN - result["version"] = Version + systemState := make(map[string]interface{}) + systemState["error"] = errorMessage + result["systemState"] = systemState } else { systemState := make(map[string]interface{}) _ = json.Unmarshal(resp.Body(), &systemState) @@ -786,49 +786,62 @@ func GetStateFromNF(w http.ResponseWriter, r *http.Request) { response.Data = data services.ResponseWithJson(w, http.StatusOK, response) return - } - - if neType == "omc" { + } else if neType == "omc" { emsState := GetEMSState("127.0.0.1") services.ResponseWithJson(w, http.StatusOK, emsState) return } - var neList []dborm.NeInfo - err := dborm.XormGetNeInfoByNeType(neType, &neList) - if err != nil { - log.Error("Failed to dborm.XormGetNeInfoByNeType:", err) - services.ResponseInternalServerError500ProcessError(w, err) - return - } - data := make([]map[string]interface{}, 0) - for _, ne := range neList { - hostUri := fmt.Sprintf("http://%s:%v", ne.Ip, ne.Port) - requestURI2NF := fmt.Sprintf("%s/api/rest/systemManagement/v1/elementType/%s/objectType/systemState", - hostUri, strings.ToLower(ne.NeType)) - log.Debug("requestURI2NF:", requestURI2NF) + // only support omc and all elementType + err := fmt.Errorf("only support omc or all elementTypeValue") + log.Error("Fail to get state:", err) + services.ResponseInternalServerError500ProcessError(w, err) - resp, err := client.R(). - EnableTrace(). - SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}). - SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}). - Get(requestURI2NF) - if err != nil { - log.Error("Get system state from NF is failed:", err) - } else { - systemState := make(map[string]interface{}) - _ = json.Unmarshal(resp.Body(), &systemState) - data = append(data, systemState) - } - } + // var neList []dborm.NeInfo + // err := dborm.XormGetNeInfoByNeType(neType, &neList) + // if err != nil { + // log.Error("Failed to dborm.XormGetNeInfoByNeType:", err) + // services.ResponseInternalServerError500ProcessError(w, err) + // return + // } + // var omcList []dborm.NeInfo + // err = dborm.XormGetNeInfoByNeType("omc", &omcList) + // if err != nil { + // log.Error("Failed to omc ne list:", err) + // services.ResponseInternalServerError500ProcessError(w, err) + // return + // } + // for i, ne := range neList { - if len(data) == 1 { - services.ResponseWithJson(w, http.StatusOK, data[0]) - return - } - var response Response - response.Data = data - services.ResponseWithJson(w, http.StatusOK, response) + // } + // data := make([]map[string]interface{}, 0) + // for _, ne := range neList { + // hostUri := fmt.Sprintf("http://%s:%v", ne.Ip, ne.Port) + // requestURI2NF := fmt.Sprintf("%s/api/rest/systemManagement/v1/elementType/%s/objectType/systemState", + // hostUri, strings.ToLower(ne.NeType)) + // log.Debug("requestURI2NF:", requestURI2NF) + + // resp, err := client.R(). + // EnableTrace(). + // SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}). + // SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}). + // Get(requestURI2NF) + // if err != nil { + // log.Error("Get system state from NF is failed:", err) + // } else { + // systemState := make(map[string]interface{}) + // _ = json.Unmarshal(resp.Body(), &systemState) + // data = append(data, systemState) + // } + // } + + // if len(data) == 1 { + // services.ResponseWithJson(w, http.StatusOK, data[0]) + // return + // } + // var response Response + // response.Data = data + // services.ResponseWithJson(w, http.StatusOK, response) } // GetStateFromNF 旧函数