X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=holmes-actions%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fholmes%2Fcommon%2Fdmaap%2FDmaapService.java;h=240f09b09c0056d2142fb60a23fd5ddbac9ea2fe;hb=37630177bc70661ce86cb12e9af34e8c09893f4d;hp=f2fd3a100e073d13bf132b976892112d51bfca46;hpb=e53f898dc82f4a8b9172b6a4e7ec017500bee7ca;p=holmes%2Fcommon.git diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/dmaap/DmaapService.java b/holmes-actions/src/main/java/org/onap/holmes/common/dmaap/DmaapService.java index f2fd3a1..240f09b 100644 --- a/holmes-actions/src/main/java/org/onap/holmes/common/dmaap/DmaapService.java +++ b/holmes-actions/src/main/java/org/onap/holmes/common/dmaap/DmaapService.java @@ -15,7 +15,6 @@ */ package org.onap.holmes.common.dmaap; -import com.fasterxml.jackson.core.JsonProcessingException; import java.util.Optional; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; @@ -31,7 +30,7 @@ import org.onap.holmes.common.dcae.DcaeConfigurationsCache; import org.onap.holmes.common.dmaap.entity.PolicyMsg; import org.onap.holmes.common.dmaap.entity.PolicyMsg.EVENT_STATUS; import org.onap.holmes.common.exception.CorrelationException; -import org.onap.holmes.common.utils.JacksonUtil; +import org.onap.holmes.common.utils.GsonUtil; @Slf4j @Service @@ -48,11 +47,9 @@ public class DmaapService { publisher.setUrl(DcaeConfigurationsCache.getPubSecInfo(dmaapConfigKey).getDmaapInfo() .getTopicUrl()); publisher.publish(policyMsg); - log.info("send policyMsg: " + JacksonUtil.beanToJson(policyMsg)); + log.info("send policyMsg: " + GsonUtil.beanToJson(policyMsg)); } catch (CorrelationException e) { log.error("Failed to publish the control loop event to DMaaP", e); - } catch (JsonProcessingException e) { - log.info("Failed to convert the control loop event to json"); } catch (NullPointerException e) { log.error("DMaaP configurations do not exist!"); } @@ -61,19 +58,29 @@ public class DmaapService { public PolicyMsg getPolicyMsg(VesAlarm rootAlarm, VesAlarm childAlarm, String packgeName) { return Optional.ofNullable(getVmEntity(rootAlarm.getSourceId(), rootAlarm.getSourceName())) .map(vmEntity -> getEnrichedPolicyMsg(vmEntity, rootAlarm, childAlarm, packgeName)) - .orElse(getDefaultPolicyMsg(rootAlarm.getSourceName())); + .orElse(getDefaultPolicyMsg(rootAlarm, packgeName)); } private PolicyMsg getEnrichedPolicyMsg(VmEntity vmEntity, VesAlarm rootAlarm, VesAlarm childAlarm, String packageName) { PolicyMsg policyMsg = new PolicyMsg(); - policyMsg.setRequestID(getUniqueRequestId(rootAlarm, policyMsg)); + policyMsg.setRequestID(getUniqueRequestId(rootAlarm)); if (rootAlarm.getAlarmIsCleared() == PolicyMassgeConstant.POLICY_MESSAGE_ONSET) { enrichVnfInfo(vmEntity, childAlarm, policyMsg); policyMsg.setClosedLoopEventStatus(EVENT_STATUS.ONSET); - policyMsg.getAai().put("vserver.in-maint", String.valueOf(vmEntity.getInMaint())); - policyMsg.getAai().put("vserver.is-closed-loop-disabled", - String.valueOf(vmEntity.getClosedLoopDisable())); + try { + policyMsg.getAai().put("vserver.in-maint", Boolean.valueOf(vmEntity.getInMaint()).booleanValue()); + } catch (Exception e) { + log.error("Failed to parse the field \"in-maint\". A boolean string (\"true\"/\"false\")" + + " is expected but the actual value is " + vmEntity.getInMaint() + ".", e); + } + try { + policyMsg.getAai().put("vserver.is-closed-loop-disabled", + Boolean.valueOf(vmEntity.getClosedLoopDisable()).booleanValue()); + } catch (Exception e) { + log.error("Failed to parse the field \"is-closed-loop-disabled\". A boolean string (\"true\"/\"false\")" + + " is expected but the actual value is " + vmEntity.getClosedLoopDisable() + ".", e); + } policyMsg.getAai().put("vserver.prov-status", vmEntity.getProvStatus()); policyMsg.getAai().put("vserver.resource-version", vmEntity.getResourceVersion()); } else { @@ -90,15 +97,22 @@ public class DmaapService { return policyMsg; } - private PolicyMsg getDefaultPolicyMsg(String sourceName) { + private PolicyMsg getDefaultPolicyMsg(VesAlarm rootAlarm, String packageName) { PolicyMsg policyMsg = new PolicyMsg(); - policyMsg.setTarget("vserver.vserver-id"); + policyMsg.setRequestID(getUniqueRequestId(rootAlarm)); + policyMsg.setClosedLoopControlName(loopControlNames.get(packageName)); + policyMsg.setClosedLoopAlarmStart(rootAlarm.getStartEpochMicrosec()); + policyMsg.setTarget("vserver.vserver-name"); policyMsg.setTargetType("VM"); - policyMsg.getAai().put("vserver.vserver-name", sourceName); + policyMsg.getAai().put("vserver.vserver-name", rootAlarm.getSourceName()); + if (rootAlarm.getAlarmIsCleared() == PolicyMassgeConstant.POLICY_MESSAGE_ABATED) { + policyMsg.setClosedLoopAlarmEnd(rootAlarm.getLastEpochMicrosec()); + policyMsg.setClosedLoopEventStatus(EVENT_STATUS.ABATED); + } return policyMsg; } - private String getUniqueRequestId(VesAlarm rootAlarm, PolicyMsg policyMsg) { + private String getUniqueRequestId(VesAlarm rootAlarm) { String alarmUniqueKey = ""; if (rootAlarm.getAlarmIsCleared() == PolicyMassgeConstant.POLICY_MESSAGE_ABATED) { alarmUniqueKey =