X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=manager%2Fcmd%2Fmanager.go;h=8b4ac748337c598a14c132fd67f81c23ff66420a;hb=478720e4a200ea2d635800813abf0b14290f8f32;hp=397cd3e472e8bc12abf2f366d85bfb1496912eb8;hpb=54a3a4f89cf7de393be1ab28281a804e1b2c863e;p=ric-plt%2Falarm-go.git diff --git a/manager/cmd/manager.go b/manager/cmd/manager.go index 397cd3e..8b4ac74 100755 --- a/manager/cmd/manager.go +++ b/manager/cmd/manager.go @@ -82,11 +82,18 @@ func (a *AlarmManager) ProcessAlarm(m *alarm.AlarmMessage) (*alert.PostAlertsOK, // Suppress duplicate alarms idx, found := a.IsMatchFound(m.Alarm) - if found && m.AlarmAction != alarm.AlarmActionClear { + if found && m.AlarmAction == alarm.AlarmActionRaise { app.Logger.Info("Duplicate alarm found, suppressing ...") - return nil, nil + if m.PerceivedSeverity == a.activeAlarms[idx].PerceivedSeverity { + // Duplicate with same severity found + return nil, nil + } else { + // Remove duplicate with different severity + a.activeAlarms = a.RemoveAlarm(a.activeAlarms, idx, "active") + } } + // Clear alarm if found from active alarm list if m.AlarmAction == alarm.AlarmActionClear { if found {