Remove alarms from DB when they are cleared
[holmes/engine-management.git] / engine-d / src / main / java / org / onap / holmes / engine / manager / DroolsEngine.java
index 3740f18..dcc40fd 100644 (file)
@@ -223,16 +223,22 @@ public class DroolsEngine {
         }\r
     }\r
 \r
-    public void putRaisedIntoStream(VesAlarm raiseAlarm) {\r
-        FactHandle factHandle = this.kieSession.getFactHandle(raiseAlarm);\r
+    public void putRaisedIntoStream(VesAlarm alarm) {\r
+        FactHandle factHandle = this.kieSession.getFactHandle(alarm);\r
         if (factHandle != null) {\r
             Object obj = this.kieSession.getObject(factHandle);\r
             if (obj != null && obj instanceof VesAlarm) {\r
-                raiseAlarm.setRootFlag(((VesAlarm) obj).getRootFlag());\r
+                alarm.setRootFlag(((VesAlarm) obj).getRootFlag());\r
             }\r
             this.kieSession.delete(factHandle);\r
+            \r
+            if (alarm.getAlarmIsCleared() == 1) {\r
+                alarmInfoDao.deleteClearedAlarm(convertVesAlarm2AlarmInfo(alarm));\r
+            }\r
+        } else {\r
+            this.kieSession.insert(alarm);\r
         }\r
-        this.kieSession.insert(raiseAlarm);\r
+\r
         this.kieSession.fireAllRules();\r
 \r
     }\r
@@ -294,4 +300,18 @@ public class DroolsEngine {
         return vesAlarm;\r
     }\r
 \r
+    private AlarmInfo convertVesAlarm2AlarmInfo(VesAlarm vesAlarm){\r
+        AlarmInfo alarmInfo = new AlarmInfo();\r
+        alarmInfo.setEventId(vesAlarm.getEventId());\r
+        alarmInfo.setEventName(vesAlarm.getEventName());\r
+        alarmInfo.setStartEpochMicroSec(vesAlarm.getStartEpochMicrosec());\r
+        alarmInfo.setLastEpochMicroSec(vesAlarm.getLastEpochMicrosec());\r
+        alarmInfo.setSourceId(vesAlarm.getSourceId());\r
+        alarmInfo.setSourceName(vesAlarm.getSourceName());\r
+        alarmInfo.setAlarmIsCleared(vesAlarm.getAlarmIsCleared());\r
+        alarmInfo.setRootFlag(vesAlarm.getRootFlag());\r
+\r
+        return alarmInfo;\r
+    }\r
+\r
 }\r