X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=manager%2Fcmd%2Fmanager.go;h=fb30ba7c3cdd26a474869b69b9098f28834f2ce0;hb=fe07bd1ea2f550225a209f1393fbaf14fe0a46a2;hp=9a4218706f3f417770dc30700d4c50d092ed3155;hpb=541eb50ea18ab50528420dfe724fa3d12dc24914;p=ric-plt%2Falarm-go.git diff --git a/manager/cmd/manager.go b/manager/cmd/manager.go index 9a42187..fb30ba7 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 {