X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=engine-d%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fholmes%2Fdsa%2Fdmaappolling%2FDMaaPResponseUtil.java;h=394dc082d5a7d9c3baaa0ab88b5cb35c57311b52;hb=97afdabeb7d1f2095f3fa170f0f78fb366c91644;hp=e7d666977e5bdc58c382630ac2bef1ba9d994207;hpb=553c09f2e8691b6d1301470538c3a00571894356;p=holmes%2Fengine-management.git diff --git a/engine-d/src/main/java/org/onap/holmes/dsa/dmaappolling/DMaaPResponseUtil.java b/engine-d/src/main/java/org/onap/holmes/dsa/dmaappolling/DMaaPResponseUtil.java index e7d6669..394dc08 100644 --- a/engine-d/src/main/java/org/onap/holmes/dsa/dmaappolling/DMaaPResponseUtil.java +++ b/engine-d/src/main/java/org/onap/holmes/dsa/dmaappolling/DMaaPResponseUtil.java @@ -18,10 +18,14 @@ package org.onap.holmes.dsa.dmaappolling; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import org.jvnet.hk2.annotations.Service; -import org.onap.holmes.common.api.stat.AlarmAdditionalField; import org.onap.holmes.common.api.stat.VesAlarm; +import org.onap.holmes.common.api.stat.AlarmAdditionalField; +import com.google.gson.Gson; +import java.util.Map; +import java.util.TimeZone; import java.util.Collections; +import java.util.HashMap; import java.util.List; import static org.onap.holmes.common.utils.GsonUtil.*; @@ -52,7 +56,9 @@ public class DMaaPResponseUtil { vesAlarm.setEventName(getAsString(commonEventHeaderJson, "eventName")); vesAlarm.setAlarmIsCleared(vesAlarm.getEventName().endsWith("Cleared") ? 1 : 0); vesAlarm.setEventType(getAsString(commonEventHeaderJson, "eventType")); - vesAlarm.setInternalHeaderFields(getAsString(commonEventHeaderJson, "internalHeaderFields")); + if (commonEventHeaderJson.has("internalHeaderFields")) { + vesAlarm.setInternalHeaderFields(commonEventHeaderJson.getAsJsonObject("internalHeaderFields").toString()); + } vesAlarm.setLastEpochMicrosec(getAsLong(commonEventHeaderJson, "lastEpochMicrosec")); vesAlarm.setNfcNamingCode(getAsString(commonEventHeaderJson, "nfcNamingCode")); vesAlarm.setNfNamingCode(getAsString(commonEventHeaderJson, "nfNamingCode")); @@ -63,19 +69,41 @@ public class DMaaPResponseUtil { vesAlarm.setSourceId(getAsString(commonEventHeaderJson, "sourceId")); vesAlarm.setSourceName(getAsString(commonEventHeaderJson, "sourceName")); vesAlarm.setStartEpochMicrosec(getAsLong(commonEventHeaderJson, "startEpochMicrosec")); - vesAlarm.setVersion(getAsLong(commonEventHeaderJson, "version")); + vesAlarm.setVersion(getAsString(commonEventHeaderJson, "version")); + vesAlarm.setNfVendorName(getAsString(commonEventHeaderJson, "nfVendorName")); + if (commonEventHeaderJson.has("timeZoneOffset")) { + TimeZone timeZone = TimeZone.getTimeZone(getAsString(commonEventHeaderJson, "timeZoneOffset")); + vesAlarm.setTimeZoneOffset(timeZone); + } + if (commonEventHeaderJson.has("vesEventListenerVersion")) { + vesAlarm.setVesEventListenerVersion(getAsString(commonEventHeaderJson, "vesEventListenerVersion")); + } } private void convertFaultFieldsJsonToEvent(JsonObject faultFieldsJson, VesAlarm vesAlarm) { - vesAlarm.setAlarmAdditionalInformation(getListElementByNode(faultFieldsJson, "alarmAdditionalInformation")); vesAlarm.setAlarmCondition(getAsString(faultFieldsJson, "alarmCondition")); vesAlarm.setAlarmInterfaceA(getAsString(faultFieldsJson, "alarmInterfaceA")); vesAlarm.setEventCategory(getAsString(faultFieldsJson, "eventCategory")); vesAlarm.setEventSeverity(getAsString(faultFieldsJson, "eventSeverity")); vesAlarm.setEventSourceType(getAsString(faultFieldsJson, "eventSourceType")); - vesAlarm.setFaultFieldsVersion(getAsLong(faultFieldsJson, "faultFieldsVersion")); + vesAlarm.setFaultFieldsVersion(getAsString(faultFieldsJson, "faultFieldsVersion")); vesAlarm.setSpecificProblem(getAsString(faultFieldsJson, "specificProblem")); vesAlarm.setVfStatus(getAsString(faultFieldsJson, "vfStatus")); + //Support VES Specificatin 5.4 + if ("2.0".equals(vesAlarm.getFaultFieldsVersion())) { + List alarmAdditionalFieldList = getListElementByNode(faultFieldsJson, "alarmAdditionalInformation"); + Map alarmAdditionalInformation = new HashMap(); + for (AlarmAdditionalField field : alarmAdditionalFieldList) { + alarmAdditionalInformation.put(field.getName(), field.getValue()); + } + vesAlarm.setAlarmAdditionalInformation(alarmAdditionalInformation); + } //Support VES Specification 7.1 + else if (faultFieldsJson.has("alarmAdditionalInformation")) { + JsonObject alarmAddInfo = JsonParser.parseString(faultFieldsJson.get("alarmAdditionalInformation").toString()).getAsJsonObject(); + Gson gson = new Gson(); + Map map = gson.fromJson(alarmAddInfo, Map.class); + vesAlarm.setAlarmAdditionalInformation(map); + } } private List getListElementByNode(JsonObject jsonNode, String name) {