40 lines
1.1 KiB
Go
40 lines
1.1 KiB
Go
package fetchlink
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"strings"
|
|
|
|
"be.ems/src/framework/logger"
|
|
"be.ems/src/framework/utils/fetch"
|
|
"be.ems/src/modules/ne/model"
|
|
)
|
|
|
|
// AlarmHistory 告警历史记录
|
|
func AlarmHistory(neInfo model.NeInfo) ([]map[string]any, error) {
|
|
// 网元参数配置信息
|
|
neUrl := fmt.Sprintf("http://%s:%d/api/rest/faultManagement/v1/elementType/%s/objectType/alarms", neInfo.IPAddr, neInfo.Port, strings.ToLower(neInfo.NeType))
|
|
resBytes, err := fetch.Get(neUrl, nil, 60_000)
|
|
var resData []map[string]any
|
|
if err != nil {
|
|
errStr := err.Error()
|
|
logger.Warnf("AlarmHistory Get \"%s\"", neUrl)
|
|
if !(strings.HasPrefix(errStr, "201") || strings.HasPrefix(errStr, "202") || strings.HasPrefix(errStr, "204")) {
|
|
logger.Errorf("AlarmHistory %s", err.Error())
|
|
return nil, fmt.Errorf("NeService Alarm History Info API Error")
|
|
}
|
|
}
|
|
|
|
if len(resBytes) == 0 {
|
|
return resData, nil
|
|
}
|
|
|
|
// 序列化结果
|
|
err = json.Unmarshal(resBytes, &resData)
|
|
if err != nil {
|
|
logger.Errorf("AlarmHistory Unmarshal %s", err.Error())
|
|
return nil, err
|
|
}
|
|
return resData, nil
|
|
}
|