From c69d68d5669e45c969fd1293aa76c78d55a95dca Mon Sep 17 00:00:00 2001 From: Joanna Jeremicz Date: Fri, 8 Mar 2019 09:48:09 +0100 Subject: Add AdditionalFields in PNF_Ready event Enhance the PNF_Ready event with AdditionalFields contents and remove IP information Change-Id: Iacef7e11dd104868440984a0540b2ccd31c8b036 Issue-ID: DCAEGEN2-1312 Signed-off-by: Joanna Jeremicz --- .../services/prh/model/ConsumerDmaapModel.java | 10 ++--- .../services/prh/model/JsonBodyBuilderImpl.java | 18 ++++++-- .../services/prh/model/CommonFunctionsTest.java | 49 +++++++++++----------- 3 files changed, 43 insertions(+), 34 deletions(-) (limited to 'prh-commons/src') diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/ConsumerDmaapModel.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/ConsumerDmaapModel.java index 9abbc3b4..d8eefec1 100644 --- a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/ConsumerDmaapModel.java +++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/ConsumerDmaapModel.java @@ -20,6 +20,7 @@ package org.onap.dcaegen2.services.prh.model; +import com.google.gson.JsonObject; import com.google.gson.annotations.SerializedName; import org.immutables.gson.Gson; import org.immutables.value.Value; @@ -37,12 +38,6 @@ public interface ConsumerDmaapModel extends AaiModel, DmaapModel { @SerializedName(value = "correlationId", alternate = "correlationId") String getCorrelationId(); - @SerializedName(value = "ipaddress-v4-oam", alternate = "ipaddress-v4-oam") - String getIpv4(); - - @SerializedName(value = "ipaddress-v6-oam", alternate = "ipaddress-v6-oam") - String getIpv6(); - @SerializedName(value = "serial-number", alternate = "serial-number") String getSerialNumber(); @@ -60,4 +55,7 @@ public interface ConsumerDmaapModel extends AaiModel, DmaapModel { @SerializedName(value = "sw-version", alternate = "sw-version") String getSwVersion(); + + @SerializedName(value = "additionalFields", alternate = "additionalFields") + JsonObject getAdditionalFields(); } diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/JsonBodyBuilderImpl.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/JsonBodyBuilderImpl.java index fd628834..f04168c2 100644 --- a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/JsonBodyBuilderImpl.java +++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/JsonBodyBuilderImpl.java @@ -21,6 +21,8 @@ package org.onap.dcaegen2.services.prh.model; import com.google.gson.GsonBuilder; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; import com.google.gson.TypeAdapterFactory; import org.onap.dcaegen2.services.sdk.rest.services.model.JsonBodyBuilder; @@ -29,6 +31,7 @@ import java.util.ServiceLoader; public class JsonBodyBuilderImpl implements JsonBodyBuilder { + public static final String ADDITIONAL_FIELDS = "additionalFields"; /** * Method for serialization object by GSON. @@ -39,9 +42,7 @@ public class JsonBodyBuilderImpl implements JsonBodyBuilder public String createJsonBody(ConsumerDmaapModel consumerDmaapModel) { GsonBuilder gsonBuilder = new GsonBuilder(); ServiceLoader.load(TypeAdapterFactory.class).forEach(gsonBuilder::registerTypeAdapterFactory); - return gsonBuilder.create().toJson(ImmutableConsumerDmaapModel.builder() - .ipv4(consumerDmaapModel.getIpv4()) - .ipv6(consumerDmaapModel.getIpv6()) + return filterOutAdditionalFieldsIfEmpty(gsonBuilder.create().toJson(ImmutableConsumerDmaapModel.builder() .correlationId(consumerDmaapModel.getCorrelationId()) .serialNumber(consumerDmaapModel.getSerialNumber()) .equipVendor(consumerDmaapModel.getEquipVendor()) @@ -49,6 +50,15 @@ public class JsonBodyBuilderImpl implements JsonBodyBuilder .equipType(consumerDmaapModel.getEquipType()) .nfRole(consumerDmaapModel.getNfRole()) .swVersion(consumerDmaapModel.getSwVersion()) - .build()); + .additionalFields(consumerDmaapModel.getAdditionalFields()) + .build())); + } + + private String filterOutAdditionalFieldsIfEmpty(String json) { + JsonObject jsonObject = new JsonParser().parse(json).getAsJsonObject(); + if(jsonObject.get(ADDITIONAL_FIELDS).equals(new JsonObject())) { + jsonObject.remove(ADDITIONAL_FIELDS); + } + return jsonObject.toString(); } } \ No newline at end of file diff --git a/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/model/CommonFunctionsTest.java b/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/model/CommonFunctionsTest.java index 5e259a64..6b2ddf56 100644 --- a/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/model/CommonFunctionsTest.java +++ b/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/model/CommonFunctionsTest.java @@ -22,6 +22,8 @@ package org.onap.dcaegen2.services.prh.model; import static org.junit.jupiter.api.Assertions.assertEquals; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; import org.junit.jupiter.api.Test; class CommonFunctionsTest { @@ -29,59 +31,58 @@ class CommonFunctionsTest { @Test void createJsonBody_shouldReturnJsonInString() { + JsonObject jsonObject = new JsonParser().parse("{\n" + + " \"attachmentPoint\": \"bla-bla-30-3\",\n" + + " \"cvlan\": \"678\",\n" + + " \"svlan\": \"1005\"\n" + + " }").getAsJsonObject(); + ConsumerDmaapModel model = ImmutableConsumerDmaapModel.builder() .correlationId("NOKnhfsadhff") - .ipv4("256.22.33.155") - .ipv6("200J:0db8:85a3:0000:0000:8a2e:0370:7334") .serialNumber("1234") .equipVendor("NOKIA") .equipModel("3310") .equipType("cell") .nfRole("role") .swVersion("1.2.3") + .additionalFields(jsonObject) .build(); - String expectedResult = "{" + "\"correlationId\":\"NOKnhfsadhff\"," - + "\"ipaddress-v4-oam\":\"256.22.33.155\"," - + "\"ipaddress-v6-oam\":\"200J:0db8:85a3:0000:0000:8a2e:0370:7334\"," + "\"serial-number\":\"1234\"," + "\"equip-vendor\":\"NOKIA\"," + "\"equip-model\":\"3310\"," + "\"equip-type\":\"cell\"," + "\"nf-role\":\"role\"," - + "\"sw-version\":\"1.2.3\"" + + "\"sw-version\":\"1.2.3\"," + + "\"additionalFields\":{\"attachmentPoint\":\"bla-bla-30-3\",\"cvlan\":\"678\",\"svlan\":\"1005\"}" + "}"; assertEquals(expectedResult, new JsonBodyBuilderImpl().createJsonBody(model)); } @Test - void createJsonBodyWithEmptyAdditionalFields_shouldReturnJsonInString() { + void createJsonBodyWithEmptyOptionalPnfRegistrationFields_shouldReturnJsonInString() { ConsumerDmaapModel model = ImmutableConsumerDmaapModel.builder() .correlationId("NOKnhfsadhff") - .ipv4("256.22.33.155") - .ipv6("200J:0db8:85a3:0000:0000:8a2e:0370:7334") - .serialNumber("1234") - .equipVendor("NOKIA") - .equipModel("3310") - .equipType("cell") - .nfRole("role") - .swVersion("1.2.3") + .serialNumber("") + .equipVendor("") + .equipModel("") + .equipType("") + .nfRole("") + .swVersion("") + .additionalFields(new JsonObject()) .build(); - String expectedResult = "{" + "\"correlationId\":\"NOKnhfsadhff\"," - + "\"ipaddress-v4-oam\":\"256.22.33.155\"," - + "\"ipaddress-v6-oam\":\"200J:0db8:85a3:0000:0000:8a2e:0370:7334\"," - + "\"serial-number\":\"1234\"," - + "\"equip-vendor\":\"NOKIA\"," - + "\"equip-model\":\"3310\"," - + "\"equip-type\":\"cell\"," - + "\"nf-role\":\"role\"," - + "\"sw-version\":\"1.2.3\"" + + "\"serial-number\":\"\"," + + "\"equip-vendor\":\"\"," + + "\"equip-model\":\"\"," + + "\"equip-type\":\"\"," + + "\"nf-role\":\"\"," + + "\"sw-version\":\"\"" + "}"; assertEquals(expectedResult, new JsonBodyBuilderImpl().createJsonBody(model)); -- cgit 1.2.3-korg