diff --git a/src/framework/utils/fetch/fetch.go b/src/framework/utils/fetch/fetch.go index 21504402..ee84324d 100644 --- a/src/framework/utils/fetch/fetch.go +++ b/src/framework/utils/fetch/fetch.go @@ -72,15 +72,15 @@ func Post(url string, data url.Values, headers map[string]string) ([]byte, error } defer resp.Body.Close() - if resp.StatusCode != http.StatusOK { - return nil, errors.New(resp.Status) - } - body, err := io.ReadAll(resp.Body) if err != nil { return nil, err } + if resp.StatusCode != http.StatusOK { + return body, errors.New(resp.Status) + } + return body, nil } @@ -110,15 +110,15 @@ func PostJSON(url string, data any, headers map[string]string) ([]byte, error) { } defer resp.Body.Close() - if resp.StatusCode != http.StatusOK { - return nil, errors.New(resp.Status) - } - body, err := io.ReadAll(resp.Body) if err != nil { return nil, err } + if resp.StatusCode != http.StatusOK { + return body, errors.New(resp.Status) + } + return body, nil } @@ -199,15 +199,15 @@ func PutJSON(url string, data any, headers map[string]string) ([]byte, error) { } defer resp.Body.Close() - if resp.StatusCode != http.StatusOK { - return nil, errors.New(resp.Status) - } - body, err := io.ReadAll(resp.Body) if err != nil { return nil, err } + if resp.StatusCode != http.StatusOK { + return body, errors.New(resp.Status) + } + return body, nil } @@ -230,14 +230,14 @@ func Delete(url string, headers map[string]string) ([]byte, error) { } defer resp.Body.Close() - if resp.StatusCode != http.StatusOK { - return nil, errors.New(resp.Status) - } - body, err := io.ReadAll(resp.Body) if err != nil { return nil, err } + if resp.StatusCode != http.StatusOK { + return body, errors.New(resp.Status) + } + return body, nil } diff --git a/src/modules/network_element/service/ne_direct_link.go b/src/modules/network_element/service/ne_direct_link.go index 596fd9a2..89d69a85 100644 --- a/src/modules/network_element/service/ne_direct_link.go +++ b/src/modules/network_element/service/ne_direct_link.go @@ -13,7 +13,7 @@ import ( // NeState 获取网元端服务状态 func NeState(neInfo model.NeInfo) (map[string]any, error) { - // 网元直连 + // 网元状态 neUrl := fmt.Sprintf("http://%s:%d/api/rest/systemManagement/v1/elementType/%s/objectType/systemState", neInfo.IP, neInfo.Port, strings.ToLower(neInfo.NeType)) resBytes, err := fetch.Get(neUrl, nil, 200) if err != nil { @@ -44,3 +44,37 @@ func NeState(neInfo model.NeInfo) (map[string]any, error) { "disk": resData["diskSpace"], }, nil } + +// NeConfigOMC 网元配置对端网管信息 +func NeConfigOMC(neInfo model.NeInfo) (map[string]any, error) { + // 网元配置对端网管信息 + neUrl := fmt.Sprintf("http://%s:%d/api/rest/systemManagement/v1/elementType/%s/objectType/config/omcNeConfig", neInfo.IP, neInfo.Port, strings.ToLower(neInfo.NeType)) + resBytes, err := fetch.PutJSON(neUrl, map[string]any{ + "neId": neInfo.NeId, + "neName": neInfo.NeName, + "port": neInfo.Port, + "province": neInfo.Province, + "pvFlag": neInfo.PvFlag, + "rmUID": neInfo.RmUID, + "vendorName": neInfo.VendorName, + "dn": neInfo.Dn, + }, nil) + var resData map[string]any + if err != nil { + status := err.Error() + if strings.HasPrefix(status, "204") { + return resData, nil + } + logger.Warnf("NeConfigOMC %s", status) + return nil, err + } + + // 序列化结果 + err = json.Unmarshal(resBytes, &resData) + if err != nil { + logger.Warnf("NeConfigOMC Unmarshal %s", err.Error()) + return nil, err + } + + return resData, nil +}