From fb59dfa42879e5124613ddae58797766b8cb8f7b Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Fri, 1 Mar 2024 19:02:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=BD=91=E5=85=83=E7=9B=B4=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3-=E7=BD=91=E5=85=83=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=AF=B9=E7=AB=AF=E7=BD=91=E7=AE=A1=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/framework/utils/fetch/fetch.go | 32 ++++++++--------- .../network_element/service/ne_direct_link.go | 36 ++++++++++++++++++- 2 files changed, 51 insertions(+), 17 deletions(-) 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 +}