package service import ( "encoding/json" "fmt" "strings" "time" "ems.agt/src/framework/logger" "ems.agt/src/framework/utils/fetch" "ems.agt/src/modules/network_element/model" ) // 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 { logger.Warnf("NeState %s", err.Error()) return nil, err } // 序列化结果 var resData map[string]any err = json.Unmarshal(resBytes, &resData) if err != nil { logger.Warnf("NeState Unmarshal %s", err.Error()) return nil, err } return map[string]any{ "neType": neInfo.NeType, "neId": neInfo.NeId, "neName": neInfo.NeName, "neIP": neInfo.IP, "refreshTime": time.Now().UnixMilli(), // 获取时间 "version": resData["version"], "capability": resData["capability"], "sn": resData["serialNum"], "expire": resData["expiryDate"], "cpu": resData["cpuUsage"], "mem": resData["memUsage"], }, nil }