X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=rules%2Fccvnp-rule.drl;h=c7efd02c6e1d1ee61b677bd2a869ede76a511540;hb=a51fe4e844a8b1857da873a719c22562bed016da;hp=afc4c06c0c8569180975fcc35f180a31914bd58b;hpb=448a62b47b193dd8a658b6d7c0ddf52dbfe2589b;p=holmes%2Frule-management.git diff --git a/rules/ccvnp-rule.drl b/rules/ccvnp-rule.drl index afc4c06..c7efd02 100644 --- a/rules/ccvnp-rule.drl +++ b/rules/ccvnp-rule.drl @@ -72,14 +72,18 @@ function Map getAdditionalResourceInfo(String networkId, String Map ret = new HashMap(); - StringBuilder sb = new StringBuilder(); + StringBuilder sbn = new StringBuilder(); + StringBuilder sbi = new StringBuilder(); for(int i = 0; i < instances.size(); ++i) { JSONObject o = instances.getJSONObject(i); String name = o.getString("service-instance-name"); - ret.put(name + ".input-parameters", o.getString("input-parameters")); - sb.append(name).append(","); + String id = o.getString("service-instance-id"); + ret.put(id + ".input-parameters", o.getString("input-parameters")); + sbn.append(name).append(","); + sbi.append(id).append(","); } - ret.put("service-instance.service-instance-name", sb.substring(0, sb.length() -1).toString()); + ret.put("service-instance.service-instance-name", sbn.substring(0, sbn.length() -1).toString()); + ret.put("service-instance.service-instance-id", sbi.substring(0, sbi.length() -1).toString()); ret.put("vserver.vserver-name", "TBD"); ret.put("globalSubscriberId", instances.getJSONObject(0).getString("globalSubscriberId")); ret.put("serviceType", instances.getJSONObject(0).getString("serviceType")); @@ -115,33 +119,40 @@ rule "Update AAI Information" when $a: VesAlarm(eventName.indexOf("Fault_Route_Status") != -1) then - updateAaiStatus ( - getAdditionalField($a, "networkId"), - getAdditionalField($a, "node"), - getAdditionalField($a, "tp-id"), - getLogicLink($a), - getAdditionalField($a, "oper-status") - ); + updateAaiStatus ( + getAdditionalField($a, "networkId"), + getAdditionalField($a, "node"), + getAdditionalField($a, "tp-id"), + getLogicLink($a), + getAdditionalField($a, "oper-status") + ); end rule "Set Up Correlation" no-loop true salience 200 when - $a: VesAlarm($id: eventId, $start: startEpochMicrosec, eventName.indexOf("Fault_Route_Status") != -1) - $b: VesAlarm(eventId != $id, eventName.indexOf("Fault_Route_Status") != -1, Math.abs(startEpochMicrosec - $start) < 60000) + $a: VesAlarm($id: eventId, + $start: startEpochMicrosec, + eventName.indexOf("Fault_Route_Status") != -1) + $b: VesAlarm(eventId != $id, + eventName.indexOf("Fault_Route_Status") != -1, + Math.abs(startEpochMicrosec - $start) < 60000) then - if (isCorrelated($a, $b)){ - // If any of the alarms have been marked as root, a policy message has ever been created and sent. Do NOT send it again. - if ($a.getRootFlag() != 1 && $b.getRootFlag() != 1) { - PolicyMsg msg = createPolicyMsg($a); - DmaapService dmaapService = ServiceLocatorHolder.getLocator().getService(DmaapService.class); - dmaapService.publishPolicyMsg(msg, "unauthenticated.DCAE_CL_OUTPUT"); - } - $a.setRootFlag(1); - $b.setRootFlag(1); - update($a); - update($b); + if ("down".equalsIgnoreCase(getAdditionalField($a, "oper-status")) + && "down".equalsIgnoreCase(getAdditionalField($b, "oper-status"))) { + if (isCorrelated($a, $b)){ + // If any of the alarms have been marked as root, a policy message has ever been created and sent. Do NOT send it again. + if ($a.getRootFlag() != 1 && $b.getRootFlag() != 1) { + PolicyMsg msg = createPolicyMsg($a); + DmaapService dmaapService = ServiceLocatorHolder.getLocator().getService(DmaapService.class); + dmaapService.publishPolicyMsg(msg, "unauthenticated.DCAE_CL_OUTPUT"); + } + $a.setRootFlag(1); + $b.setRootFlag(1); + update($a); + update($b); + } } end @@ -149,14 +160,16 @@ rule "Clear Alarms" no-loop true salience 100 when - $a: VesAlarm(alarmIsCleared == 1, eventName.indexOf("Fault_Route_Status") != -1) + $a: VesAlarm(eventName.indexOf("Fault_Route_Status") != -1) then - if (DmaapService.alarmUniqueRequestID.containsKey($a.getEventId())) { - DmaapService.alarmUniqueRequestID.remove($a.getEventId()); + if ("up".equalsIgnoreCase(getAdditionalField($a, "oper-status"))) { + if (DmaapService.alarmUniqueRequestID.containsKey($a.getEventId())) { + DmaapService.alarmUniqueRequestID.remove($a.getEventId()); + } + + //TODO: send alarm clearing message to Policy - for now it's not needed. + //... + + retract($a); } - - //TODO: send alarm clearing message to Policy - for now it's not needed. - //... - - retract($a); end \ No newline at end of file