diff --git a/src/modules/network_element/fetch_link/amf.go b/src/modules/network_element/fetch_link/amf.go index ae4d44ef..65cce3bf 100644 --- a/src/modules/network_element/fetch_link/amf.go +++ b/src/modules/network_element/fetch_link/amf.go @@ -12,14 +12,14 @@ import ( // AMFNbInfoList AMF基站信息 // -// 查询参数 {"nbId":"7"} +// 查询参数 {"id":"7"} // // 返回结果 [] func AMFNbInfoList(neInfo model.NeInfo, data map[string]string) ([]map[string]any, error) { neUrl := fmt.Sprintf("http://%s:%d/api/rest/ueManagement/v1/elementType/amf/objectType/nbInfo", neInfo.IP, neInfo.Port) // 查询参数拼接 query := []string{} - if v, ok := data["nbId"]; ok && v != "" { + if v, ok := data["id"]; ok && v != "" { query = append(query, fmt.Sprintf("nbId=%s", v)) } if len(query) > 0 { @@ -44,7 +44,47 @@ func AMFNbInfoList(neInfo model.NeInfo, data map[string]string) ([]map[string]an // 固定返回字段,方便前端解析 if v, ok := resData["data"]; ok && v != nil { - return v.([]map[string]any), nil + if arr := v.([]any); len(arr) > 0 { + result := make([]map[string]any, len(arr)) + for i, item := range arr { + result[i] = item.(map[string]any) + } + return result, nil + } + } + return []map[string]any{}, nil +} + +// AMFGnbStateList AMF基站状态信息,对比配置项gnbList +// +// 返回结果 [] +func AMFGnbStateList(neInfo model.NeInfo) ([]map[string]any, error) { + neUrl := fmt.Sprintf("http://%s:%d/api/rest/ueManagement/v1/elementType/amf/objectType/nbState", neInfo.IP, neInfo.Port) + resBytes, err := fetch.Get(neUrl, nil, 60_000) + if err != nil { + errStr := err.Error() + logger.Warnf("AMFNbInfoList Get \"%s\"", neUrl) + logger.Errorf("AMFNbInfoList %s", errStr) + return nil, fmt.Errorf("NeService AMF API Error") + } + + // 序列化结果 {"data":[{"name": "Gnb","address": "192.168.8.1","state": "INACTIVE"}]} + var resData map[string]any + err = json.Unmarshal(resBytes, &resData) + if err != nil { + logger.Errorf("AMFNbInfoList Unmarshal %s", err.Error()) + return nil, err + } + + // 固定返回字段,方便前端解析 + if v, ok := resData["data"]; ok && v != nil { + if arr := v.([]any); len(arr) > 0 { + result := make([]map[string]any, len(arr)) + for i, item := range arr { + result[i] = item.(map[string]any) + } + return result, nil + } } return []map[string]any{}, nil } diff --git a/src/modules/network_element/fetch_link/ims.go b/src/modules/network_element/fetch_link/ims.go index 2139ab6d..015da592 100644 --- a/src/modules/network_element/fetch_link/ims.go +++ b/src/modules/network_element/fetch_link/ims.go @@ -88,7 +88,13 @@ func IMSUeSessionList(neInfo model.NeInfo, data map[string]string) ([]map[string // 固定返回字段,方便前端解析 if v, ok := resData["data"]; ok && v != nil { - return v.([]map[string]any), nil + if arr := v.([]any); len(arr) > 0 { + result := make([]map[string]any, len(arr)) + for i, item := range arr { + result[i] = item.(map[string]any) + } + return result, nil + } } return []map[string]any{}, nil } diff --git a/src/modules/network_element/fetch_link/mme.go b/src/modules/network_element/fetch_link/mme.go index a7383f35..741f48d3 100644 --- a/src/modules/network_element/fetch_link/mme.go +++ b/src/modules/network_element/fetch_link/mme.go @@ -12,14 +12,14 @@ import ( // MMENbInfoList AMF基站信息 // -// 查询参数 {"nbId":"7"} +// 查询参数 {"id":"7"} // // 返回结果 [] func MMENbInfoList(neInfo model.NeInfo, data map[string]string) ([]map[string]any, error) { neUrl := fmt.Sprintf("http://%s:%d/api/rest/ueManagement/v1/elementType/mme/objectType/nbInfo", neInfo.IP, neInfo.Port) // 查询参数拼接 query := []string{} - if v, ok := data["nbId"]; ok && v != "" { + if v, ok := data["id"]; ok && v != "" { query = append(query, fmt.Sprintf("nbId=%s", v)) } if len(query) > 0 { @@ -44,7 +44,13 @@ func MMENbInfoList(neInfo model.NeInfo, data map[string]string) ([]map[string]an // 固定返回字段,方便前端解析 if v, ok := resData["data"]; ok && v != nil { - return v.([]map[string]any), nil + if arr := v.([]any); len(arr) > 0 { + result := make([]map[string]any, len(arr)) + for i, item := range arr { + result[i] = item.(map[string]any) + } + return result, nil + } } return []map[string]any{}, nil }