From 97afdabeb7d1f2095f3fa170f0f78fb366c91644 Mon Sep 17 00:00:00 2001 From: Venkata Molluru Date: Sat, 30 Oct 2021 08:51:05 +0000 Subject: Add support to 7.1 VES data-stream in-parallel to 5.4 Issue-ID: HOLMES-308 Signed-off-by: Venkata Molluru Change-Id: I2a45548659e63171d80fdaab85318f0890b94345 --- .../holmes/dsa/dmaappolling/DMaaPResponseUtil.java | 38 +++++++++++++++++++--- 1 file changed, 33 insertions(+), 5 deletions(-) (limited to 'engine-d/src/main/java/org/onap/holmes/dsa/dmaappolling/DMaaPResponseUtil.java') 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) { -- cgit 1.2.3-korg