fix: dead cycle do with sync alarm

This commit is contained in:
2023-10-24 18:03:54 +08:00
parent a37382ba85
commit bcec4e13ae

View File

@@ -455,13 +455,23 @@ func GetAlarmFromNF(w http.ResponseWriter, r *http.Request) {
log.Error("Request error:", err)
return
}
vars := mux.Vars(r)
neType := vars["elementTypeValue"]
neTypeLower := strings.ToLower(neType)
// Get alarms from OMC return 204
if neTypeLower == strings.ToLower(config.GetYamlConfig().OMC.NeType) {
log.Infof("Return no content alarms from %s", neType)
services.ResponseStatusOK204NoContent(w)
return
}
//var neInfo *dborm.NeInfo
var nes []dborm.NeInfo
_, err = dborm.XormGetAllNeInfo(&nes)
if err != nil {
log.Error("Failed to get all ne info:", err)
services.ResponseInternalServerError500DatabaseOperationFailed(w)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
@@ -514,7 +524,7 @@ func GetAlarmFromNF(w http.ResponseWriter, r *http.Request) {
exist, err := session.Table("alarm").
Where("ne_type=? and ne_id=? and alarm_id=? and alarm_status=1", alarmData.NeType, alarmData.NeId, alarmData.AlarmId).
Exist()
if err == nil || exist == false {
if err == nil || !exist {
log.Info("Not found active alarm: ne_id=%s, alarm_id=%s", alarmData.NeId, alarmData.AlarmId)
continue
}
@@ -523,7 +533,7 @@ func GetAlarmFromNF(w http.ResponseWriter, r *http.Request) {
tm, _ := time.Parse(time.RFC3339, alarmData.EventTime)
log.Debugf("EventTime:%s tm:%d tm-datetime:%s", alarmData.EventTime, tm, tm.Local().Format(time.DateTime))
alarmData.ClearTime.Time = tm
if IsNeedToAckAlarm(valueJson, &alarmData) == true {
if IsNeedToAckAlarm(valueJson, &alarmData) {
SetAlarmAckInfo(valueJson, &alarmData)
log.Debug("alarmData:", alarmData)
affected, err := session.
@@ -578,7 +588,7 @@ func GetAlarmFromNF(w http.ResponseWriter, r *http.Request) {
}
log.Debugf("neType=%s, neId=%s, eventTime=%s, severity=%s", alarmData.NeType, alarmData.NeId, alarmData.EventTime, severity)
if has == true && severity > alarmData.OrigSeverity {
if has && severity > alarmData.OrigSeverity {
// update exist record
_, err := session.Table("alarm").
Where("ne_type=? and ne_id=? and event_time=?", alarmData.NeType, alarmData.NeId, alarmData.EventTime).
@@ -597,7 +607,7 @@ func GetAlarmFromNF(w http.ResponseWriter, r *http.Request) {
Where("alarm_id=? and ne_type=? and ne_id=? and alarm_status=1",
alarmData.AlarmId, alarmData.NeType, alarmData.NeId).
Exist()
if err == nil && has == true {
if err == nil && has {
log.Warn("Exist the same alarm")
continue
}
@@ -617,7 +627,7 @@ func GetAlarmFromNF(w http.ResponseWriter, r *http.Request) {
log.Debugf("neType=%s, neId=%s, currentSeq=%s, activeAlarmNum=%d",
alarmData.NeType, alarmData.NeId, currentSeq, activeAlarmNum)
if has == true {
if has {
seq, _ := strconv.Atoi(currentSeq)
alarmData.AlarmSeq = seq + 1
if alarmData.AlarmSeq > global.MaxInt32Number {
@@ -642,7 +652,7 @@ func GetAlarmFromNF(w http.ResponseWriter, r *http.Request) {
}
log.Debugf("neType=%s, neId=%s, eventTime=%s, severity=%s", alarmData.NeType, alarmData.NeId, alarmData.EventTime, severity)
if has == false || severity == alarmData.OrigSeverity {
if !has || severity == alarmData.OrigSeverity {
alarmData.PerceivedSeverity = alarmData.OrigSeverity
} else if severity > alarmData.OrigSeverity {
alarmData.PerceivedSeverity = alarmData.OrigSeverity
@@ -661,7 +671,7 @@ func GetAlarmFromNF(w http.ResponseWriter, r *http.Request) {
alarmData.ObjectUid = alarmData.NeId
alarmData.ObjectType = "VNFM"
alarmData.EventTime = global.GetFmtTimeString(time.RFC3339, alarmData.EventTime, time.DateTime)
if IsNeedToAckAlarm(valueJson, &alarmData) == true {
if IsNeedToAckAlarm(valueJson, &alarmData) {
SetAlarmAckInfo(valueJson, &alarmData)
}
log.Trace("alarmData:", alarmData)