summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTait,Trevor(rt0435) <rtait@amdocs.com>2018-11-04 16:30:21 -0500
committerTait,Trevor(rt0435) <rtait@amdocs.com>2018-11-04 16:30:44 -0500
commit3f5ba3e09c2056a83e7376c24b7c44ac3e6d32dd (patch)
tree3d2ca1183a550085f10b817d6d98834166972b45
parent23b36e3c69f25d8322afb79d5e6bace519db7cd3 (diff)
Attributes for GENERIC-RESOURCE-API and VNF-API
Extract Attributes for GENERIC-RESOURCE-API and VNF-API Issue-ID: LOG-797 Change-Id: I6ae2727bd85069fc89d65c0083167ca69b343895 Signed-off-by: Tait,Trevor(rt0435) <rtait@amdocs.com>
-rw-r--r--config/sdncgenericresource.spec204
-rw-r--r--config/vnflist.spec38
-rw-r--r--src/main/java/org/onap/pomba/contextbuilder/sdnc/handlers/VnfApiHandler.java1
-rw-r--r--src/main/java/org/onap/pomba/contextbuilder/sdnc/model/Image.java92
-rw-r--r--src/main/java/org/onap/pomba/contextbuilder/sdnc/model/Pserver.java91
-rw-r--r--src/main/java/org/onap/pomba/contextbuilder/sdnc/model/VnfTopologyIdentifier.java66
-rw-r--r--src/main/java/org/onap/pomba/contextbuilder/sdnc/util/RestUtil.java38
-rw-r--r--src/test/java/org/onap/pomba/contextbuilder/sdnc/test/ImageTest.java49
-rw-r--r--src/test/java/org/onap/pomba/contextbuilder/sdnc/test/PserverTest.java50
-rw-r--r--src/test/java/org/onap/pomba/contextbuilder/sdnc/test/VnfTopologyIdentifierTest.java31
-rw-r--r--src/test/java/org/onap/pomba/contextbuilder/sdnc/test/VnfTopologyInformationTest.java2
-rw-r--r--src/test/resources/junit/vnfApiResponse.json10
12 files changed, 549 insertions, 123 deletions
diff --git a/config/sdncgenericresource.spec b/config/sdncgenericresource.spec
index 652afb9..a3883e4 100644
--- a/config/sdncgenericresource.spec
+++ b/config/sdncgenericresource.spec
@@ -1,94 +1,110 @@
-[
- // Use https://jolt-demo.appspot.com/#inception to develop/test
- // any changes to this file
-
- {
- // This section converts the GENERIC-RESOURCES-API response from sdnc
- // to org.onap.pomba.common.datatypes.ModelContext
- "operation": "shift",
- "spec": {
- "service": {
- "*": {
- "service-data": {
- "service-topology": {
- "service-topology-identifier": {
- "service-instance-id": "service.uuid",
- "service-instance-name": "service.name"
- },
- "onap-model-information": {
- "model-invariant-uuid": "service.invariantUUID"
- }
- },
- "vnfs": {
- "vnf": {
- "*": {
- "vnf-data": {
- "vnf-topology": {
- "onap-model-information": {
- "model-uuid": "vfList[&4].uuid",
- "model-invariant-uuid": "vfList[&4].invariantUUID"
- },
- "vnf-topology-identifier-structure": {
- "vnf-type": "vfList[&4].type",
- "vnf-name": "vfList[&4].name"
- }
- },
- "vf-modules": {
- "vf-module": {
- "*": {
- "vf-module-data": {
- "vf-module-topology": {
- "vf-module-topology-identifier": {
- "vf-module-name": "vfList[&8].vfModuleList[&4].name"
- },
- "onap-model-information": {
- "model-uuid": "vfList[&8].vfModuleList[&4].uuid",
- "model-invariant-uuid": "vfList[&8].vfModuleList[&4].invariantUUID"
- },
- "vf-module-assignments": {
- "vms": {
- "vm": {
- "*": {
- "vm-names": {
- "vm-name": {
- "@(2,vm-type)": "vfList[&13].vfModuleList[&9].vmList[&3].nfNamingCode",
- "*": "vfList[&13].vfModuleList[&9].vmList[&3].name"
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- },
- "networks": {
- "network": {
- "*": {
- "network-data": {
- "network-topology": {
- "onap-model-information": {
- "model-uuid": "vfList[0].vfModuleList[0].networkList[&4].uuid",
- "model-invariant-uuid": "vfList[0].vfModuleList[0].networkList[&4].invariantUUID"
- },
- "network-topology-identifier-structure": {
- "network-type": "vfList[0].vfModuleList[0].networkList[&4].type",
- "network-name": "vfList[0].vfModuleList[0].networkList[&4].name"
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- ]
+[
+ // Use https://jolt-demo.appspot.com/#inception to develop/test
+ // any changes to this file
+
+ {
+ // This section converts the GENERIC-RESOURCES-API response from sdnc
+ // to org.onap.pomba.common.datatypes.ModelContext
+ "operation": "shift",
+ "spec": {
+ "service": {
+ "*": {
+ "service-data": {
+ "service-topology": {
+ "service-topology-identifier": {
+ "service-instance-id": "service.uuid",
+ "service-instance-name": "service.name"
+ },
+ "onap-model-information": {
+ "model-invariant-uuid": "service.invariantUUID"
+ }
+ },
+ "vnfs": {
+ "vnf": {
+ "*": {
+ "vnf-data": {
+ "vnf-topology": {
+ "onap-model-information": {
+ "model-uuid": "vfList[&4].uuid",
+ "model-invariant-uuid": "vfList[&4].invariantUUID"
+ },
+ "vnf-topology-identifier-structure": {
+ "vnf-type": "vfList[&4].type",
+ "vnf-name": "vfList[&4].name"
+ }
+ },
+ "vf-modules": {
+ "vf-module": {
+ "*": {
+ "vf-module-data": {
+ "vf-module-topology": {
+ "vf-module-topology-identifier": {
+ "vf-module-name": "vfList[&8].vfModuleList[&4].name"
+ },
+ "onap-model-information": {
+ "model-uuid": "vfList[&8].vfModuleList[&4].uuid",
+ "model-invariant-uuid": "vfList[&8].vfModuleList[&4].invariantUUID"
+ },
+ "vf-module-assignments": {
+ "vms": {
+ "vm": {
+ "*": {
+ "vm-type": "vfList[&11].vfModuleList[&7].vmList[&1].nfNamingCode",
+ "vm-names": {
+ "vm-name": {
+ "*": "vfList[&13].vfModuleList[&9].vmList[&3].name"
+ }
+ },
+ "inMaint": {
+ "#lockedBoolean": "vfList[&12].vfModuleList[&8].vmList[&2].attributeList[0].name",
+ "@(1,inMaint)": "vfList[&12].vfModuleList[&8].vmList[&2].attributeList[0].value"
+ },
+ "prov-status": {
+ "#provStatus": "vfList[&12].vfModuleList[&8].vmList[&2].attributeList[1].name",
+ "@(1,prov-status)": "vfList[&12].vfModuleList[&8].vmList[&2].attributeList[1].value"
+ },
+ "pserver": {
+ "#hostName": "vfList[&12].vfModuleList[&8].vmList[&2].attributeList[2].name",
+ "hostname": "vfList[&12].vfModuleList[&8].vmList[&2].attributeList[2].value"
+ },
+ "image": {
+ "#imageId": "vfList[&12].vfModuleList[&8].vmList[&2].attributeList[3].name",
+ "image-name": "vfList[&12].vfModuleList[&8].vmList[&2].attributeList[3].value"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "networks": {
+ "network": {
+ "*": {
+ "network-data": {
+ "network-topology": {
+ "onap-model-information": {
+ "model-uuid": "vfList[0].vfModuleList[0].networkList[&4].uuid",
+ "model-invariant-uuid": "vfList[0].vfModuleList[0].networkList[&4].invariantUUID"
+ },
+ "network-topology-identifier-structure": {
+ "network-type": "vfList[0].vfModuleList[0].networkList[&4].type",
+ "network-name": "vfList[0].vfModuleList[0].networkList[&4].name"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ ]
diff --git a/config/vnflist.spec b/config/vnflist.spec
index 49c2434..ae55a5f 100644
--- a/config/vnflist.spec
+++ b/config/vnflist.spec
@@ -1,19 +1,19 @@
-[
- // Use https://jolt-demo.appspot.com/#inception to develop/test
- // any changes to this file
-
- {
- // This section converts aai response for GET VNF-API from SDNC
- // to org.onap.pomba.common.datatypes.VF
- "operation": "shift",
- "spec": {
- "vnfs": {
- "vnf-list": {
- "*": {
- "*": "vnf-list[&1].&"
- }
- }
- }
- }
- }
- ]
+[
+ // Use https://jolt-demo.appspot.com/#inception to develop/test
+ // any changes to this file
+
+ {
+ // This section converts aai response for GET VNF-API from SDNC
+ // to org.onap.pomba.common.datatypes.VF
+ "operation": "shift",
+ "spec": {
+ "vnfs": {
+ "vnf-list": {
+ "*": {
+ "*": "vnf-list[&1].&"
+ }
+ }
+ }
+ }
+ }
+ ]
diff --git a/src/main/java/org/onap/pomba/contextbuilder/sdnc/handlers/VnfApiHandler.java b/src/main/java/org/onap/pomba/contextbuilder/sdnc/handlers/VnfApiHandler.java
index e16ec40..c7d3971 100644
--- a/src/main/java/org/onap/pomba/contextbuilder/sdnc/handlers/VnfApiHandler.java
+++ b/src/main/java/org/onap/pomba/contextbuilder/sdnc/handlers/VnfApiHandler.java
@@ -23,7 +23,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.ws.rs.client.Client;
-import javax.ws.rs.core.MediaType;
import org.apache.camel.Exchange;
import org.json.JSONArray;
import org.json.JSONException;
diff --git a/src/main/java/org/onap/pomba/contextbuilder/sdnc/model/Image.java b/src/main/java/org/onap/pomba/contextbuilder/sdnc/model/Image.java
new file mode 100644
index 0000000..5ad0529
--- /dev/null
+++ b/src/main/java/org/onap/pomba/contextbuilder/sdnc/model/Image.java
@@ -0,0 +1,92 @@
+/*
+ * ============LICENSE_START===================================================
+ * Copyright (c) 2018 Amdocs
+ * ============================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=====================================================
+ */
+
+package org.onap.pomba.contextbuilder.sdnc.model;
+
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+
+public class Image {
+
+ @SerializedName("image-name")
+ @Expose
+ private String imageName;
+
+ private final static String NULL_STR = "<null>";
+
+ /**
+ * No args constructor for use in serialization
+ *
+ */
+ public Image() {
+ }
+
+ /**
+ *
+ * @param imageName
+ */
+ public Image(String imageName) {
+ super();
+ this.imageName = imageName;
+ }
+
+ public String getImageName() {
+ return imageName;
+ }
+
+ public void setImageName(String imageName) {
+ this.imageName = imageName;
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(Image.class.getName()).append('@').append(Integer.toHexString(System.identityHashCode(this))).append('[');
+ sb.append("imageName");
+ sb.append('=');
+ sb.append(((this.imageName == null)?NULL_STR:this.imageName));
+ sb.append(',');
+ if (sb.charAt((sb.length()- 1)) == ',') {
+ sb.setCharAt((sb.length()- 1), ']');
+ } else {
+ sb.append(']');
+ }
+ return sb.toString();
+ }
+
+ @Override
+ public int hashCode() {
+ int result = 1;
+ result = ((result* 31)+((this.imageName == null)? 0 :this.imageName.hashCode()));
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (other == this) {
+ return true;
+ }
+ if (!(other instanceof Image)) {
+ return false;
+ }
+ Image rhs = ((Image) other);
+ return ((this.imageName == rhs.imageName)||((this.imageName!= null)&&this.imageName.equals(rhs.imageName)));
+ }
+
+}
diff --git a/src/main/java/org/onap/pomba/contextbuilder/sdnc/model/Pserver.java b/src/main/java/org/onap/pomba/contextbuilder/sdnc/model/Pserver.java
new file mode 100644
index 0000000..1c7a832
--- /dev/null
+++ b/src/main/java/org/onap/pomba/contextbuilder/sdnc/model/Pserver.java
@@ -0,0 +1,91 @@
+/*
+ * ============LICENSE_START===================================================
+ * Copyright (c) 2018 Amdocs
+ * ============================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=====================================================
+ */
+
+package org.onap.pomba.contextbuilder.sdnc.model;
+
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+
+public class Pserver {
+ @SerializedName("hostname")
+ @Expose
+ private String hostname;
+
+ private final static String NULL_STR = "<null>";
+
+ /**
+ * No args constructor for use in serialization
+ *
+ */
+ public Pserver() {
+ }
+
+ /**
+ *
+ * @param hostname
+ */
+ public Pserver(String hostname) {
+ super();
+ this.hostname = hostname;
+ }
+
+ public String getHostname() {
+ return hostname;
+ }
+
+ public void setHostname(String hostname) {
+ this.hostname = hostname;
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(Pserver.class.getName()).append('@').append(Integer.toHexString(System.identityHashCode(this))).append('[');
+ sb.append("hostname");
+ sb.append('=');
+ sb.append(((this.hostname == null)?NULL_STR:this.hostname));
+ sb.append(',');
+ if (sb.charAt((sb.length()- 1)) == ',') {
+ sb.setCharAt((sb.length()- 1), ']');
+ } else {
+ sb.append(']');
+ }
+ return sb.toString();
+ }
+
+ @Override
+ public int hashCode() {
+ int result = 1;
+ result = ((result* 31)+((this.hostname == null)? 0 :this.hostname.hashCode()));
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (other == this) {
+ return true;
+ }
+ if (!(other instanceof Pserver)) {
+ return false;
+ }
+ Pserver rhs = ((Pserver) other);
+ return ((this.hostname == rhs.hostname)||((this.hostname!= null)&&this.hostname.equals(rhs.hostname)));
+ }
+
+}
diff --git a/src/main/java/org/onap/pomba/contextbuilder/sdnc/model/VnfTopologyIdentifier.java b/src/main/java/org/onap/pomba/contextbuilder/sdnc/model/VnfTopologyIdentifier.java
index 8dbf0c8..de22373 100644
--- a/src/main/java/org/onap/pomba/contextbuilder/sdnc/model/VnfTopologyIdentifier.java
+++ b/src/main/java/org/onap/pomba/contextbuilder/sdnc/model/VnfTopologyIdentifier.java
@@ -38,6 +38,20 @@ public class VnfTopologyIdentifier {
@SerializedName("vnf-type")
@Expose
private String vnfType;
+ @SerializedName("inMaint")
+ @Expose
+ private String inMaint;
+ @SerializedName("prov-status")
+ @Expose
+ private String provStatus;
+ @SerializedName("pserver")
+ @Expose
+ private Pserver pserver;
+ @SerializedName("image")
+ @Expose
+ private Image image;
+
+
private final static String NULL_STR = "<null>";
@@ -56,13 +70,17 @@ public class VnfTopologyIdentifier {
* @param vnfType
* @param genericVnfType
*/
- public VnfTopologyIdentifier(String genericVnfType, String serviceType, String vnfName, String genericVnfName, String vnfType) {
+ public VnfTopologyIdentifier(String genericVnfType, String serviceType, String vnfName, String genericVnfName, String vnfType, String inMaint, String provStatus, Pserver pserver, Image image) {
super();
this.genericVnfType = genericVnfType;
this.serviceType = serviceType;
this.vnfName = vnfName;
this.genericVnfName = genericVnfName;
this.vnfType = vnfType;
+ this.inMaint = inMaint;
+ this.provStatus = provStatus;
+ this.pserver = pserver;
+ this.image = image;
}
public String getGenericVnfType() {
@@ -105,6 +123,39 @@ public class VnfTopologyIdentifier {
this.vnfType = vnfType;
}
+ public String getInMaint() {
+ return inMaint;
+ }
+
+ public void setInMaint(String inMaint) {
+ this.inMaint = inMaint;
+ }
+
+ public String getProvStatus() {
+ return provStatus;
+ }
+
+ public void setProvStatus(String provStatus) {
+ this.provStatus = provStatus;
+ }
+
+ public Pserver getPserver() {
+ return pserver;
+ }
+
+ public void setPserver(Pserver pserver) {
+ this.pserver = pserver;
+ }
+
+ public Image getImage() {
+ return image;
+ }
+
+ public void setImage(Image image) {
+ this.image = image;
+ }
+
+
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
@@ -129,6 +180,15 @@ public class VnfTopologyIdentifier {
sb.append('=');
sb.append(((this.vnfType == null)?NULL_STR:this.vnfType));
sb.append(',');
+ sb.append("inMaint");
+ sb.append('=');
+ sb.append(((this.inMaint == null)?NULL_STR:this.inMaint));
+ sb.append(',');
+ sb.append("provStatus");
+ sb.append('=');
+ sb.append(((this.provStatus == null)?NULL_STR:this.provStatus));
+ sb.append(',');
+
if (sb.charAt((sb.length()- 1)) == ',') {
sb.setCharAt((sb.length()- 1), ']');
} else {
@@ -145,6 +205,10 @@ public class VnfTopologyIdentifier {
result = ((result* 31)+((this.genericVnfName == null)? 0 :this.genericVnfName.hashCode()));
result = ((result* 31)+((this.vnfType == null)? 0 :this.vnfType.hashCode()));
result = ((result* 31)+((this.genericVnfType == null)? 0 :this.genericVnfType.hashCode()));
+ result = ((result* 31)+((this.inMaint == null)? 0 :this.inMaint.hashCode()));
+ result = ((result* 31)+((this.provStatus == null)? 0 :this.provStatus.hashCode()));
+ result = ((result* 31)+((this.pserver == null)? 0 :this.pserver.hashCode()));
+ result = ((result* 31)+((this.image == null)? 0 :this.image.hashCode()));
return result;
}
diff --git a/src/main/java/org/onap/pomba/contextbuilder/sdnc/util/RestUtil.java b/src/main/java/org/onap/pomba/contextbuilder/sdnc/util/RestUtil.java
index 4575230..ad91155 100644
--- a/src/main/java/org/onap/pomba/contextbuilder/sdnc/util/RestUtil.java
+++ b/src/main/java/org/onap/pomba/contextbuilder/sdnc/util/RestUtil.java
@@ -43,6 +43,8 @@ import org.json.JSONException;
import org.json.JSONObject;
import org.onap.aai.restclient.client.OperationResult;
import org.onap.aai.restclient.client.RestClient;
+import org.onap.pomba.common.datatypes.Attribute;
+import org.onap.pomba.common.datatypes.Attribute.Name;
import org.onap.pomba.common.datatypes.ModelContext;
import org.onap.pomba.common.datatypes.Service;
import org.onap.pomba.common.datatypes.VF;
@@ -202,8 +204,8 @@ public class RestUtil {
}
- public static ModelContext transformGenericResource(String sdncResponse, String specPath) {
- List<Object> jsonSpec = JsonUtils.filepathToList(specPath);
+ public static ModelContext transformGenericResource(String sdncResponse, String SPEC_PATH) {
+ List<Object> jsonSpec = JsonUtils.filepathToList(SPEC_PATH);
Object jsonInput = JsonUtils.jsonToObject(sdncResponse);
Chainr chainr = Chainr.fromSpec(jsonSpec);
Object transObject = chainr.transform(jsonInput);
@@ -249,6 +251,38 @@ public class RestUtil {
if (vf.getType().contentEquals("null")) {
vf.setType(vnfTopologyId.getGenericVnfType());
}
+ if (vf.getAttributes().isEmpty()) {
+ if ((null != vnfTopologyId.getInMaint()) && !(vnfTopologyId.getInMaint().isEmpty())) {
+ Attribute lockedBoolean = new Attribute();
+ lockedBoolean.setName(Name.lockedBoolean);
+ lockedBoolean.setValue(vnfTopologyId.getInMaint());
+ vf.addAttribute(lockedBoolean);
+ }
+ if ((null != vnfTopologyId.getProvStatus()) && !(vnfTopologyId.getProvStatus().isEmpty())) {
+ Attribute provStatus = new Attribute();
+ // attribute.setName(Name.provStatus);
+ provStatus.setValue(vnfTopologyId.getProvStatus());
+ vf.addAttribute(provStatus);
+ }
+ if (null != vnfTopologyId.getPserver()) {
+ if ((null != vnfTopologyId.getPserver().getHostname()) && !(vnfTopologyId.getPserver().getHostname().isEmpty())) {
+ Attribute hostname = new Attribute();
+ hostname.setName(Name.hostName);
+ hostname.setValue(vnfTopologyId.getPserver().getHostname());
+ vf.addAttribute(hostname);
+
+ }
+ }
+ if (null != vnfTopologyId.getImage()) {
+ if ((null != vnfTopologyId.getImage().getImageName()) && !(vnfTopologyId.getImage().getImageName().isEmpty())) {
+ Attribute imageName = new Attribute();
+ imageName.setName(Name.imageId);
+ imageName.setValue(vnfTopologyId.getImage().getImageName());
+ vf.addAttribute(imageName);
+
+ }
+ }
+ }
}
}
} catch (Exception e) {
diff --git a/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/ImageTest.java b/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/ImageTest.java
new file mode 100644
index 0000000..daa3dd7
--- /dev/null
+++ b/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/ImageTest.java
@@ -0,0 +1,49 @@
+package org.onap.pomba.contextbuilder.sdnc.test;
+/*
+ * ============LICENSE_START===================================================
+ * Copyright (c) 2018 Amdocs
+ * ============================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=====================================================
+ */
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+import org.onap.pomba.contextbuilder.sdnc.model.Image;
+
+public class ImageTest {
+ @Test
+ public void testImageWithParameters() {
+ Image image = new Image("imageName");
+ assertEquals("imageName", image.getImageName());
+ }
+
+ @Test
+ public void testImage() {
+ Image image = new Image();
+ image.setImageName("imageName");
+ assertEquals("imageName", image.getImageName());
+ String imageString = image.toString();
+ assertTrue(imageString.contains("imageName"));
+ }
+
+ @Test
+ public void testImageIsEqual() {
+ Image image1 = new Image("imageName");
+ assertTrue(image1.equals(image1));
+ assertTrue(image1.hashCode() == -878349659);
+ }
+
+}
diff --git a/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/PserverTest.java b/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/PserverTest.java
new file mode 100644
index 0000000..4212334
--- /dev/null
+++ b/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/PserverTest.java
@@ -0,0 +1,50 @@
+/*
+ * ============LICENSE_START===================================================
+ * Copyright (c) 2018 Amdocs
+ * ============================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=====================================================
+ */
+
+package org.onap.pomba.contextbuilder.sdnc.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+import org.onap.pomba.contextbuilder.sdnc.model.Pserver;
+
+public class PserverTest {
+ @Test
+ public void testPserverWithParameters() {
+ Pserver pserver = new Pserver("hostname");
+ assertEquals("hostname", pserver.getHostname());
+ }
+
+ @Test
+ public void testPserver() {
+ Pserver pserver = new Pserver();
+ pserver.setHostname("hostname");
+ assertEquals("hostname", pserver.getHostname());
+ String pserverString = pserver.toString();
+ assertTrue(pserverString.contains("hostname"));
+ }
+
+ @Test
+ public void testPserverIsEqual() {
+ Pserver pserver1 = new Pserver("hostname");
+ assertTrue(pserver1.equals(pserver1));
+ assertTrue(pserver1.hashCode() == -299803566);
+ }
+
+}
diff --git a/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/VnfTopologyIdentifierTest.java b/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/VnfTopologyIdentifierTest.java
index a4a36f3..a311286 100644
--- a/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/VnfTopologyIdentifierTest.java
+++ b/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/VnfTopologyIdentifierTest.java
@@ -22,6 +22,8 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
+import org.onap.pomba.contextbuilder.sdnc.model.Image;
+import org.onap.pomba.contextbuilder.sdnc.model.Pserver;
import org.onap.pomba.contextbuilder.sdnc.model.VnfTopologyIdentifier;
public class VnfTopologyIdentifierTest {
@@ -31,12 +33,21 @@ public class VnfTopologyIdentifierTest {
"serviceType",
"vnfName",
"genericVnfName",
- "vnfType");
+ "vnfType",
+ "inMaint",
+ "provStatus",
+ new Pserver(),
+ new Image());
assertEquals("genericVnfType", vnfTopologyIdentifier.getGenericVnfType());
assertEquals("serviceType", vnfTopologyIdentifier.getServiceType());
assertEquals("vnfName", vnfTopologyIdentifier.getVnfName());
assertEquals("genericVnfName", vnfTopologyIdentifier.getGenericVnfName());
assertEquals("vnfType", vnfTopologyIdentifier.getVnfType());
+ assertEquals("inMaint", vnfTopologyIdentifier.getInMaint());
+ assertEquals("provStatus", vnfTopologyIdentifier.getProvStatus());
+ assertEquals(new Pserver(), vnfTopologyIdentifier.getPserver());
+ assertEquals(new Image(), vnfTopologyIdentifier.getImage());
+
}
@Test
@@ -47,15 +58,23 @@ public class VnfTopologyIdentifierTest {
vnfTopologyIdentifier.setVnfName("vnfName");
vnfTopologyIdentifier.setGenericVnfName("genericVnfName");
vnfTopologyIdentifier.setVnfType("vnfType");
+ vnfTopologyIdentifier.setInMaint("inMaint");
+ vnfTopologyIdentifier.setProvStatus("provStatus");
+ vnfTopologyIdentifier.setPserver(new Pserver());
+ vnfTopologyIdentifier.setImage(new Image());
assertEquals("genericVnfType", vnfTopologyIdentifier.getGenericVnfType());
assertEquals("serviceType", vnfTopologyIdentifier.getServiceType());
assertEquals("vnfName", vnfTopologyIdentifier.getVnfName());
assertEquals("genericVnfName", vnfTopologyIdentifier.getGenericVnfName());
assertEquals("vnfType", vnfTopologyIdentifier.getVnfType());
+ assertEquals("inMaint", vnfTopologyIdentifier.getInMaint());
+ assertEquals("provStatus", vnfTopologyIdentifier.getProvStatus());
+ assertEquals(new Pserver(), vnfTopologyIdentifier.getPserver());
+ assertEquals(new Image(), vnfTopologyIdentifier.getImage());
String vnfTopologyIdentifierString = vnfTopologyIdentifier.toString();
assertTrue(vnfTopologyIdentifierString
.contains("[genericVnfType=genericVnfType,serviceType=serviceType,vnfName=vnfName,"
- + "genericVnfName=genericVnfName,vnfType=vnfType]"));
+ + "genericVnfName=genericVnfName,vnfType=vnfType,inMaint=inMaint,provStatus=provStatus]"));
}
@Test
@@ -64,9 +83,13 @@ public class VnfTopologyIdentifierTest {
"serviceType1",
"vnfName1",
"genericVnfName1",
- "vnfType1");
+ "vnfType1",
+ "inMaint",
+ "provStatus",
+ new Pserver(),
+ new Image());
assertTrue(vnfTopologyIdentifier1.equals(vnfTopologyIdentifier1));
- assertTrue(vnfTopologyIdentifier1.hashCode() == 1705030683);
+ assertTrue(vnfTopologyIdentifier1.hashCode() == -1409805056);
}
}
diff --git a/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/VnfTopologyInformationTest.java b/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/VnfTopologyInformationTest.java
index f33d5c4..340e11c 100644
--- a/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/VnfTopologyInformationTest.java
+++ b/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/VnfTopologyInformationTest.java
@@ -56,7 +56,7 @@ public class VnfTopologyInformationTest {
new VnfAssignments(),
new ArrayList<VnfParameter>());
assertTrue(vnfTopologyInformation1.equals(vnfTopologyInformation1));
- assertTrue(vnfTopologyInformation1.hashCode() == 917116897);
+ assertTrue(vnfTopologyInformation1.hashCode() == -1767338143);
}
}
diff --git a/src/test/resources/junit/vnfApiResponse.json b/src/test/resources/junit/vnfApiResponse.json
index e3828a0..e1e4e51 100644
--- a/src/test/resources/junit/vnfApiResponse.json
+++ b/src/test/resources/junit/vnfApiResponse.json
@@ -147,7 +147,15 @@
"vnf-type": "VshakenIst09042018..base_alb..module-3",
"generic-vnf-name": "zdyh3bsflb0001v_01",
"generic-vnf-type": "vShaken_DNS_ns592n/vSHAKEN_IST_09042018 0",
- "vnf-name": "zdyh3bsflb0001v_base_module_01"
+ "vnf-name": "zdyh3bsflb0001v_base_module_01",
+ "inMaint":"no",
+ "pserver":{
+ "hostname": "somerandomserver.ottawa.com"
+ },
+ "image":{
+ "image-name": "cfad8f38-3d4c-4aec-8bd4-f83ad605acbe"
+ },
+ "prov-status": "Available"
}
},
"service-information": {