1 package org.onap.holmes.mdonsPnf;
\r
4 import org.onap.holmes.common.api.stat.VesAlarm;
\r
5 import org.onap.holmes.common.api.stat.AlarmAdditionalField;
\r
6 import org.onap.holmes.common.aai.AaiQueryMdons;
\r
7 import org.onap.holmes.common.exception.CorrelationException;
\r
8 import org.onap.holmes.common.dmaap.entity.PolicyMsg;
\r
9 import org.onap.holmes.common.dmaap.DmaapService;
\r
10 import org.onap.holmes.common.utils.DroolsLog;
\r
11 import org.onap.holmes.common.utils.SpringContextUtil;
\r
12 import org.onap.holmes.common.dmaap.store.UniqueRequestIdCache;
\r
15 import java.util.List;
\r
16 import java.util.Map;
\r
17 import java.util.ArrayList;
\r
18 import java.util.HashMap;
\r
19 import java.util.UUID;
\r
21 function Map<String, String> processAlarm(String sourceId) {
\r
22 AaiQueryMdons mdons = AaiQueryMdons.newInstance();
\r
23 DroolsLog.printInfo("Alarm pnf id " + sourceId);
\r
24 String pnfName = mdons.getPnfNameFromPnfId(sourceId);
\r
25 DroolsLog.printInfo("Pnf name from AAI" + pnfName);
\r
26 mdons.updatePnfOperationalStatus(pnfName, "down");
\r
27 Map<String, String> accessMap = mdons.processPnf(pnfName);
\r
28 DroolsLog.printInfo("Access List from AAI" + accessMap.toString());
\r
29 mdons.updateLinksForAccessService(accessMap);
\r
33 function void processAlarmCleared(String sourceId) {
\r
34 AaiQueryMdons mdons = AaiQueryMdons.newInstance();
\r
35 DroolsLog.printInfo("Alarm pnf id " + sourceId);
\r
36 String pnfName = mdons.getPnfNameFromPnfId(sourceId);
\r
37 DroolsLog.printInfo("Pnf name from AAI" + pnfName);
\r
38 mdons.updatePnfOperationalStatus(pnfName, "up");
\r
41 function PolicyMsg createPolicyMsg(VesAlarm alarm, String serviceInstanceId, String serviceName) {
\r
42 PolicyMsg m = new PolicyMsg();
\r
43 m.setPolicyVersion("1.0.0");
\r
44 m.setVersion("0.0.1");
\r
45 m.setPolicyName("mdons");
\r
46 m.setPolicyScope("service=OTNService,type=SampleType,closedLoopControlName=ControlLoop-MDONS-2179b738-fd36-4843-a71a-a8c24c70c66b");
\r
47 m.setClosedLoopControlName("ControlLoop-MDONS-2179b738-fd36-4843-a71a-a8c24c70c66b");
\r
48 m.setRequestID(UUID.randomUUID().toString());
\r
49 m.setClosedLoopAlarmStart(alarm.getStartEpochMicrosec());
\r
50 m.setClosedLoopAlarmEnd(alarm.getLastEpochMicrosec());
\r
51 m.setTarget("vserver.vserver-name");
\r
52 m.setAai(getAaiObjectPolicy(serviceName, serviceInstanceId));
\r
54 SpringContextUtil.getBean(UniqueRequestIdCache.class).put(alarm.getEventId(), m.getRequestID());
\r
58 function Map<String, Object> getAaiObjectPolicy(String serviceName, String serviceInstanceId){
\r
59 Map<String, Object> aaiMap = new HashMap<String, Object>();
\r
60 aaiMap.put("service-name", serviceName);
\r
61 aaiMap.put("request-id" , serviceInstanceId);
\r
62 aaiMap.put("service-type" , "MDONS_OTN");
\r
66 rule "Process Alarms MSA"
\r
70 $a: VesAlarm(sourceId.contains("OWBSPDRNE"),
\r
71 rootFlag != 1, eventSeverity.equals("MAJOR"))
\r
73 DroolsLog.printInfo("MSA Alarm: ID for alarm raised=" + $a.getEventId() + ", Event Name=" + $a.getSourceId());
\r
74 Map<String, String> map = processAlarm($a.getSourceId() + "-XPDR1");
\r
75 for(Map.Entry<String,String> entry : map.entrySet()){
\r
76 PolicyMsg msg = createPolicyMsg($a, entry.getKey(), entry.getValue());
\r
77 DmaapService dmaapService = SpringContextUtil.getBean(DmaapService.class);
\r
78 dmaapService.publishPolicyMsg(msg, "dcae_cl_out");
\r
79 DroolsLog.printInfo("Published to policy=" + msg.toString());
\r
86 rule "Process Alarms TAPI"
\r
90 $a: VesAlarm(eventId.contains("FW950074SDN"),
\r
91 rootFlag != 1, eventSeverity.equals("MINOR"))
\r
93 DroolsLog.printInfo("TAPI Alarm: ID for alarm raised=" + $a.getEventId() + ", Event Name=" + $a.getSourceId());
\r
94 Map<String, String> map = processAlarm($a.getEventId());
\r
95 for(Map.Entry<String,String> entry : map.entrySet()){
\r
96 PolicyMsg msg = createPolicyMsg($a, entry.getKey(), entry.getValue());
\r
97 DmaapService dmaapService = SpringContextUtil.getBean(DmaapService.class);
\r
98 dmaapService.publishPolicyMsg(msg, "dcae_cl_out");
\r
99 DroolsLog.printInfo("Published to policy=" + msg.toString());
\r
106 rule "Process Alarms cleared MSA"
\r
110 $a: VesAlarm(sourceId.contains("OWBSPDRNE"),
\r
111 rootFlag != 1, eventSeverity.equals("NORMAL"))
\r
113 DroolsLog.printInfo("MSA Alarm: ID for Alarm cleared =" + $a.getEventId() + ", Event Name=" + $a.getSourceId());
\r
114 processAlarmCleared($a.getSourceId() + "-XPDR1");
\r
119 rule "Process Alarms cleared TAPI"
\r
123 $a: VesAlarm(eventId.contains("FW950074SDN"),
\r
124 rootFlag != 1, eventSeverity.equals("NORMAL"))
\r
126 DroolsLog.printInfo("TAPI Alarm: ID for Alarm cleared =" + $a.getEventId() + ", Event Name=" + $a.getSourceId());
\r
127 processAlarmCleared($a.getEventId());
\r