From be36287ac8e5a8d28ad744cf5271e5889355ba58 Mon Sep 17 00:00:00 2001 From: "Tait,Trevor(rt0435)" Date: Tue, 4 Dec 2018 14:22:23 -0500 Subject: Use SSL client for Micro Service Update POMBA Network Discovery Context Builder to use HTTPS when talking to Network Discovery Micro Service. Also cleaned up some method and variable names that are incompatible with ONAP. Issue-ID: LOG-878 Change-Id: Id9a6fc3608daa1fce164a0d24b87f4464c3a76bc Signed-off-by: Tait,Trevor(rt0435) --- config/application.properties | 4 +- .../networkdiscovery/JerseyConfiguration.java | 56 ++- .../networkdiscovery/NdctxbConfiguration.java | 2 - .../service/SpringServiceImpl.java | 5 +- .../NetworkDiscoveryContextBuilderTest.java | 33 +- src/test/resources/SD_response.json | 557 --------------------- src/test/resources/junit/SD_response.json | 557 +++++++++++++++++++++ 7 files changed, 625 insertions(+), 589 deletions(-) delete mode 100644 src/test/resources/SD_response.json create mode 100644 src/test/resources/junit/SD_response.json diff --git a/config/application.properties b/config/application.properties index b9b8601..af0ffa0 100644 --- a/config/application.properties +++ b/config/application.properties @@ -36,8 +36,8 @@ serviceDecomposition.password=OBF:1u2a1toa1w8v1tok1u30 # Network Discovery Micro Service REST Client Configuration networkDiscoveryMicroService.host=10.147.112.148 -networkDiscoveryMicroService.port=8080 -networkDiscoveryMicroService.httpProtocol=http +networkDiscoveryMicroService.port=8443 +networkDiscoveryMicroService.httpProtocol=https networkDiscoveryMicroService.networkDiscoveryPath=/network-discovery/v1/network/resource # Wait for Network Discovery MicroService response in milliseconds networkDiscoveryMicroService.responseTimeOutInMilliseconds=60000 diff --git a/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/JerseyConfiguration.java b/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/JerseyConfiguration.java index df7c8a8..2bec9ad 100644 --- a/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/JerseyConfiguration.java +++ b/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/JerseyConfiguration.java @@ -17,12 +17,25 @@ */ package org.onap.pomba.contextbuilder.networkdiscovery; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.MapperFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; +import java.security.cert.X509Certificate; import java.util.logging.Logger; - +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSession; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; import javax.ws.rs.ApplicationPath; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; - import org.glassfish.jersey.client.ClientConfig; import org.glassfish.jersey.logging.LoggingFeature; import org.glassfish.jersey.server.ResourceConfig; @@ -33,12 +46,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.MapperFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; - @Component @ApplicationPath("/") public class JerseyConfiguration extends ResourceConfig { @@ -66,4 +73,37 @@ public class JerseyConfiguration extends ResourceConfig { public Client jerseyClient() { return ClientBuilder.newClient(new ClientConfig()); } + + @Bean + public Client jerseySslClient() throws NoSuchAlgorithmException, KeyManagementException { + + ClientConfig clientConfig = new ClientConfig(); + TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { + public X509Certificate[] getAcceptedIssuers() { + return null; + } + + public void checkClientTrusted(X509Certificate[] certs, String authType) { + } + + public void checkServerTrusted(X509Certificate[] certs, String authType) { + } + } }; + + SSLContext sc = SSLContext.getInstance("TLS"); + sc.init(null, trustAllCerts, new SecureRandom()); + HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); + + ClientBuilder.newClient(clientConfig); + + return ClientBuilder.newBuilder() + .sslContext(sc) + .hostnameVerifier(new HostnameVerifier() { + public boolean verify(String s, SSLSession sslSession) { + return true; + } + }) + .withConfig(clientConfig).build(); + } + } diff --git a/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/NdctxbConfiguration.java b/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/NdctxbConfiguration.java index 7781d1a..a600db5 100644 --- a/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/NdctxbConfiguration.java +++ b/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/NdctxbConfiguration.java @@ -18,13 +18,11 @@ package org.onap.pomba.contextbuilder.networkdiscovery; -import java.net.InetAddress; import java.util.Arrays; import java.util.Base64; import java.util.HashMap; import java.util.Map; import java.util.stream.StreamSupport; - import org.eclipse.jetty.util.security.Password; import org.onap.pomba.contextbuilder.networkdiscovery.exception.DiscoveryException; import org.slf4j.Logger; diff --git a/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/service/SpringServiceImpl.java b/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/service/SpringServiceImpl.java index d6010c4..58d13b7 100644 --- a/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/service/SpringServiceImpl.java +++ b/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/service/SpringServiceImpl.java @@ -152,6 +152,9 @@ public class SpringServiceImpl implements SpringService { @Autowired private Client jerseyClient; + @Autowired + private Client jerseySslClient; + private static final ReentrantLock lock = new ReentrantLock(); @Override @@ -543,7 +546,7 @@ public class SpringServiceImpl implements SpringService { callbackUrlStr, partner_name); try { - Response response = jerseyClient.target(networkDiscoveryUrl) + Response response = jerseySslClient.target(networkDiscoveryUrl) .queryParam(NETWORK_DISCOVERY_FIND_RESOURCE_BY_TYPE_REST_REQUEST_ID, requestId) .queryParam(NETWORK_DISCOVERY_FIND_RESOURCE_BY_TYPE_REST_RESOURCE_TYPE, resourceType) .queryParam(NETWORK_DISCOVERY_FIND_RESOURCE_BY_TYPE_REST_RESOURCE_ID, resourceId) diff --git a/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/unittest/service/NetworkDiscoveryContextBuilderTest.java b/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/unittest/service/NetworkDiscoveryContextBuilderTest.java index 1705bde..2c28ff3 100644 --- a/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/unittest/service/NetworkDiscoveryContextBuilderTest.java +++ b/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/unittest/service/NetworkDiscoveryContextBuilderTest.java @@ -21,11 +21,9 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; -import com.github.jknack.handlebars.internal.Files; import com.github.tomakehurst.wiremock.client.WireMock; import com.github.tomakehurst.wiremock.junit.WireMockRule; import com.github.tomakehurst.wiremock.matching.UrlPattern; -import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -67,6 +65,7 @@ import org.springframework.test.context.web.WebAppConfiguration; @SpringBootTest @TestPropertySource(properties = {"serviceDecomposition.host=localhost", "serviceDecomposition.port=3333", "networkDiscoveryMicroService.host=localhost", "networkDiscoveryMicroService.port=9808", + "networkDiscoveryMicroService.httpProtocol=http", "networkDiscoveryMicroService.responseTimeOutInMilliseconds=1000"}) public class NetworkDiscoveryContextBuilderTest { @@ -137,12 +136,8 @@ public class NetworkDiscoveryContextBuilderTest { public void testVerifyServiceDecomposition() throws Exception { String urlStr = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId; - - File file = new File(ClassLoader.getSystemResource("SD_response.json").getFile()); - String sdResonse = Files.read(file); - - this.serviceDecompositionRule.stubFor(get(urlStr).willReturn(okJson(sdResonse))); - addResponse_any("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule); + addResponse(urlStr, "junit/SD_response.json", serviceDecompositionRule); + addResponseAny("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule); Response response = this.restService.getContext(httpServletRequest, authorization, partnerName, transactionId, null, null, serviceInstanceId, null, null); assertEquals(Status.OK.getStatusCode(), response.getStatus()); @@ -153,7 +148,7 @@ public class NetworkDiscoveryContextBuilderTest { String serviceDecompUrl = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId; addResponse(serviceDecompUrl, "junit/serviceDecomposition-1.json", serviceDecompositionRule); - addResponse_any("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule); + addResponseAny("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule); Response response = this.restService.getContext(httpServletRequest, authorization, partnerName, transactionId, null, null, serviceInstanceId, null, null); @@ -191,7 +186,7 @@ public class NetworkDiscoveryContextBuilderTest { public void testVerifyNoPartnerNameWithFromAppId() throws Exception { String serviceDecompUrl = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId; addResponse(serviceDecompUrl, "junit/serviceDecomposition-1.json", serviceDecompositionRule); - addResponse_any("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule); + addResponseAny("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule); Response response = this.restService.getContext(httpServletRequest, authorization, null, transactionId, partnerName, null, serviceInstanceId, null, null); @@ -202,7 +197,7 @@ public class NetworkDiscoveryContextBuilderTest { public void testVerifyNoRequestIdNoTransactionId() throws Exception { String serviceDecompUrl = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId; addResponse(serviceDecompUrl, "junit/serviceDecomposition-1.json", serviceDecompositionRule); - addResponse_any("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule); + addResponseAny("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule); Response response = this.restService.getContext(httpServletRequest, authorization, partnerName, null, null, null, serviceInstanceId, null, null); @@ -213,7 +208,7 @@ public class NetworkDiscoveryContextBuilderTest { public void testVerifyNoPartnerNameNoFromAppId() throws Exception { String serviceDecompUrl = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId; addResponse(serviceDecompUrl, "junit/serviceDecomposition-1.json", serviceDecompositionRule); - addResponse_any("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule); + addResponseAny("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule); Response response = this.restService.getContext(httpServletRequest, authorization, null, transactionId, null, null, serviceInstanceId, null, null); @@ -224,7 +219,7 @@ public class NetworkDiscoveryContextBuilderTest { public void testVerifyNoRequestIdWithTransactionId() throws Exception { String serviceDecompUrl = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId; addResponse(serviceDecompUrl, "junit/serviceDecomposition-1.json", serviceDecompositionRule); - addResponse_any("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule); + addResponseAny("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule); Response response = this.restService.getContext(httpServletRequest, authorization, partnerName, null, null, transactionId, serviceInstanceId, null, null); @@ -236,7 +231,7 @@ public class NetworkDiscoveryContextBuilderTest { thisMock.stubFor(get(path).willReturn(okJson(payload))); } - private void addResponse_any(String classpathResource, WireMockRule thisMock) throws IOException { + private void addResponseAny(String classpathResource, WireMockRule thisMock) throws IOException { String payload = readFully(ClassLoader.getSystemResourceAsStream(classpathResource)); UrlPattern tPath = WireMock.anyUrl(); thisMock.stubFor(get(tPath).willReturn(okJson(payload))); @@ -327,15 +322,15 @@ public class NetworkDiscoveryContextBuilderTest { private void simulateNetworkDiscoveryInfoList() { String requestId2 = "2131__2"; - List related_request_list = new ArrayList<>(); - related_request_list.add(requestId); - related_request_list.add(requestId2); + List relatedRequestList = new ArrayList<>(); + relatedRequestList.add(requestId); + relatedRequestList.add(requestId2); NetworkDiscoveryRspInfo notif1 = new NetworkDiscoveryRspInfo(); notif1.setRequestId(requestId); notif1.setResourceType(resourceType); notif1.setResourceId(resourceId); - notif1.setRelatedRequestIdList(related_request_list); + notif1.setRelatedRequestIdList(relatedRequestList); NetworkDiscoveryInfoAccess networkDiscoveryInfoAccess = new NetworkDiscoveryInfoAccess(); networkDiscoveryInfoAccess.updateList(requestId, notif1); @@ -344,7 +339,7 @@ public class NetworkDiscoveryContextBuilderTest { notif2.setRequestId(requestId2); notif2.setResourceType(resourceType); notif2.setResourceId(resourceId); - notif2.setRelatedRequestIdList(related_request_list); + notif2.setRelatedRequestIdList(relatedRequestList); networkDiscoveryInfoAccess.updateList(requestId2, notif2); } diff --git a/src/test/resources/SD_response.json b/src/test/resources/SD_response.json deleted file mode 100644 index d4db960..0000000 --- a/src/test/resources/SD_response.json +++ /dev/null @@ -1,557 +0,0 @@ -{ - "relationship-list": { - "relationship": [ - { - "related-to": "generic-vnf", - "relationship-data": [ - { - "relationship-value": "6700c313-fbb7-4cf9-ac70-0293ec56df68", - "relationship-key": "generic-vnf.vnf-id" - } - ], - "related-link": "/aai/v13/network/generic-vnfs/generic-vnf/6700c313-fbb7-4cf9-ac70-0293ec56df68", - "related-to-property": [ - { - "property-key": "generic-vnf.vnf-name", - "property-value": "PacketGenerator-1" - } - ] - }, - { - "related-to": "generic-vnf", - "relationship-data": [ - { - "relationship-value": "6700c313-fbb7-4cf9-ac70-0293ec56df69", - "relationship-key": "generic-vnf.vnf-id" - } - ], - "related-link": "/aai/v13/network/generic-vnfs/generic-vnf/6700c313-fbb7-4cf9-ac70-0293ec56df69", - "related-to-property": [ - { - "property-key": "generic-vnf.vnf-name", - "property-value": "PacketGenerator-2" - } - ] - } - ] - }, - "model-version-id": "d3d6cf83-d03a-43cc-99ff-206d40bb9a72", - "service-instance-id": "c6456519-6acf-4adb-997c-3c363dd4caaf", - "resource-version": "1527637758480", - "generic-vnfs": [ - { - "nf-role": "", - "service-id": "8ea56b0d-459d-4668-b363-c9567432d8b7", - "relationship-list": { - "relationship": [ - { - "related-to": "service-instance", - "relationship-data": [ - { - "relationship-value": "Demonstration", - "relationship-key": "customer.global-customer-id" - }, - { - "relationship-value": "vFWCL", - "relationship-key": "service-subscription.service-type" - }, - { - "relationship-value": "c6456519-6acf-4adb-997c-3c363dd4caaf", - "relationship-key": "service-instance.service-instance-id" - } - ], - "related-link": "/aai/v11/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFWCL/service-instances/service-instance/c6456519-6acf-4adb-997c-3c363dd4caaf", - "related-to-property": [ - { - "property-key": "service-instance.service-instance-name", - "property-value": "Firewall1" - } - ] - }, - { - "related-to": "l3-network", - "relationship-data": [ - { - "relationship-value": "HNP1d77c-1094-41ec-b7f3-94bb30951870", - "relationship-key": "l3-network.network-id" - } - ], - "related-link": "/aai/v13/network/l3-networks/l3-network/HNP1d77c-1094-41ec-b7f3-94bb30951870", - "relationship-label": "org.onap.relationships.inventory.Uses", - "related-to-property": [ - { - "property-key": "l3-network.network-name", - "property-value": "HNPORTALOAM.OAM" - } - ] - }, - { - "related-to": "vserver", - "relationship-data": [ - { - "relationship-value": "CloudOwner", - "relationship-key": "cloud-region.cloud-owner" - }, - { - "relationship-value": "RegionOne", - "relationship-key": "cloud-region.cloud-region-id" - }, - { - "relationship-value": "b49b830686654191bb1e952a74b014ad", - "relationship-key": "tenant.tenant-id" - }, - { - "relationship-value": "25fb07ab-0478-465e-a021-6384ac299671", - "relationship-key": "vserver.vserver-id" - } - ], - "related-link": "/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/b49b830686654191bb1e952a74b014ad/vservers/vserver/25fb07ab-0478-465e-a021-6384ac299671" - }, - { - "related-to": "vserver", - "relationship-data": [ - { - "relationship-value": "CloudOwner", - "relationship-key": "cloud-region.cloud-owner" - }, - { - "relationship-value": "RegionOne", - "relationship-key": "cloud-region.cloud-region-id" - }, - { - "relationship-value": "b49b830686654191bb1e952a74b014ad", - "relationship-key": "tenant.tenant-id" - }, - { - "relationship-value": "25fb07ab-0478-465e-a021-6384ac299672", - "relationship-key": "vserver.vserver-id" - } - ], - "related-link": "/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/b49b830686654191bb1e952a74b014ad/vservers/vserver/25fb07ab-0478-465e-a021-6384ac299672" - } - ] - }, - "vnf-id": "6700c313-fbb7-4cf9-ac70-0293ec56df68", - "nf-type": "", - "l3-networks": [ - { - "network-role": "HNPORTALOAM.OAM", - "network-technology": "ovs", - "service-id": "V7611HNP-1222-48f1-8085-94aef0c6ef3d51870", - "network-id": "HNP1d77c-1222-41ec-b7f3-94bb30951870", - "neutron-network-id": "491c7cef-a3f4-4990-883e-b0af397466d0", - "is-external-network": false, - "is-bound-to-vpn": false, - "is-provider-network": false, - "network-type": "OVS_PROVIDER_VLAN", - "orchestration-status": "active", - "network-role-instance": 0, - "resource-version": "1526558298075", - "network-name": "HNPORTALOAM.OAM", - "is-shared-network": false - } - ], - "prov-status": "PREPROV", - "vnf-type": "vFW-vSINK-service/vPKG 0", - "orchestration-status": "Created", - "nf-naming-code": "", - "in-maint": false, - "nf-function": "", - "model-version-id": "a5565bf4-d55a-4964-8fbc-6a7674a2e676", - "vservers": [ - { - "relationship-list": { - "relationship": [ - { - "related-to": "generic-vnf", - "relationship-data": [ - { - "relationship-value": "8a9ddb25-2e79-449c-a40d-5011bac0da39", - "relationship-key": "generic-vnf.vnf-id" - } - ], - "related-link": "/aai/v11/network/generic-vnfs/generic-vnf/8a9ddb25-2e79-449c-a40d-5011bac0da39", - "related-to-property": [ - { - "property-key": "generic-vnf.vnf-name", - "property-value": "Firewall-1" - } - ] - }, - { - "related-to": "flavor", - "relationship-data": [ - { - "relationship-value": "CloudOwner", - "relationship-key": "cloud-region.cloud-owner" - }, - { - "relationship-value": "RegionOne", - "relationship-key": "cloud-region.cloud-region-id" - }, - { - "relationship-value": "764efb04-5a46-4806-a766-2bdd24559f39", - "relationship-key": "flavor.flavor-id" - } - ], - "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/flavors/flavor/764efb04-5a46-4806-a766-2bdd24559f39", - "related-to-property": [ - { - "property-key": "flavor.flavor-name", - "property-value": "m1.medium" - } - ] - }, - { - "related-to": "image", - "relationship-data": [ - { - "relationship-value": "CloudOwner", - "relationship-key": "cloud-region.cloud-owner" - }, - { - "relationship-value": "RegionOne", - "relationship-key": "cloud-region.cloud-region-id" - }, - { - "relationship-value": "42fd42f8-cf81-4f4c-a552-d4b124f83b0b", - "relationship-key": "image.image-id" - } - ], - "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/images/image/42fd42f8-cf81-4f4c-a552-d4b124f83b0b", - "related-to-property": [ - { - "property-key": "image.image-name", - "property-value": "unknown" - } - ] - } - ] - }, - "in-maint": false, - "resource-version": "1528481820321", - "vserver-name": "Firewall-0", - "prov-status": "ACTIVE", - "vserver-id": "25fb07ab-0478-465e-a021-6384ac299671", - "vserver-name2": "Firewall-0", - "vserver-selflink": "http://10.12.25.2:8774/v2.1/b49b830686654191bb1e952a74b014ad/servers/25fb07ab-0478-465e-a021-6384ac299671", - "is-closed-loop-disabled": false - }, - { - "relationship-list": { - "relationship": [ - { - "related-to": "generic-vnf", - "relationship-data": [ - { - "relationship-value": "8a9ddb25-2e79-449c-a40d-5011bac0da39", - "relationship-key": "generic-vnf.vnf-id" - } - ], - "related-link": "/aai/v11/network/generic-vnfs/generic-vnf/8a9ddb25-2e79-449c-a40d-5011bac0da39", - "related-to-property": [ - { - "property-key": "generic-vnf.vnf-name", - "property-value": "Firewall-1" - } - ] - }, - { - "related-to": "flavor", - "relationship-data": [ - { - "relationship-value": "CloudOwner", - "relationship-key": "cloud-region.cloud-owner" - }, - { - "relationship-value": "RegionOne", - "relationship-key": "cloud-region.cloud-region-id" - }, - { - "relationship-value": "764efb04-5a46-4806-a766-2bdd24559f39", - "relationship-key": "flavor.flavor-id" - } - ], - "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/flavors/flavor/764efb04-5a46-4806-a766-2bdd24559f39", - "related-to-property": [ - { - "property-key": "flavor.flavor-name", - "property-value": "m1.medium" - } - ] - }, - { - "related-to": "image", - "relationship-data": [ - { - "relationship-value": "CloudOwner", - "relationship-key": "cloud-region.cloud-owner" - }, - { - "relationship-value": "RegionOne", - "relationship-key": "cloud-region.cloud-region-id" - }, - { - "relationship-value": "42fd42f8-cf81-4f4c-a552-d4b124f83b0b", - "relationship-key": "image.image-id" - } - ], - "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/images/image/42fd42f8-cf81-4f4c-a552-d4b124f83b0b", - "related-to-property": [ - { - "property-key": "image.image-name", - "property-value": "unknown" - } - ] - } - ] - }, - "in-maint": false, - "resource-version": "1528481820321", - "vserver-name": "Firewall-0", - "prov-status": "ACTIVE", - "vserver-id": "25fb07ab-0478-465e-a021-6384ac299672", - "vserver-name2": "Firewall-0", - "vserver-selflink": "http://10.12.25.2:8774/v2.1/b49b830686654191bb1e952a74b014ad/servers/25fb07ab-0478-465e-a021-6384ac299672", - "is-closed-loop-disabled": false - } - ], - "resource-version": "1527638176989", - "model-customization-id": "4cc1e555-361f-4d69-ae21-9f371ea9f40c", - "vf-modules": { - "vf-module": [ - { - "vf-module-name": "vPacketGen-VNF-1128-3", - "model-version-id": "d6d4a002-a584-4640-bdce-a50e9bce552b", - "heat-stack-id": "vPacketGen-VNF-1128-3/df34f5d6-ed39-4184-b785-51c37cfa8ac2", - "resource-version": "1527641224058", - "model-customization-id": "49c8f521-e5ee-4095-bb87-4090166e49ab", - "is-base-vf-module": true, - "vf-module-id": "0f792076-f5b3-4251-9fcc-c4d5afae0eb1", - "module-index": 0, - "model-invariant-id": "2a8844a8-f5f7-46dd-a732-472c6972a28e", - "orchestration-status": "active" - } - ] - }, - "vserver": [ - { - "vserver-name": "Firewall-1", - "vserver-id": "25fb07ab-0478-465e-a021-6384ac299671", - "model-invariant-id": "0c5a20de-87ad-442c-9190-f38ab0a6bb7f" - } - ], - "model-invariant-id": "99f1fd3f-845c-48f5-a0ba-11fbde6ae557", - "vnf-name": "PacketGenerator-1", - "is-closed-loop-disabled": false - }, - { - "nf-role": "", - "service-id": "8ea56b0d-459d-4668-b363-c9567432d8b9", - "relationship-list": { - "relationship": [ - { - "related-to": "service-instance", - "relationship-data": [ - { - "relationship-value": "Demonstration", - "relationship-key": "customer.global-customer-id" - }, - { - "relationship-value": "vFWCL", - "relationship-key": "service-subscription.service-type" - }, - { - "relationship-value": "c6456519-6acf-4adb-997c-3c363dd4caaf", - "relationship-key": "service-instance.service-instance-id" - } - ], - "related-link": "/aai/v11/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFWCL/service-instances/service-instance/c6456519-6acf-4adb-997c-3c363dd4caaf", - "related-to-property": [ - { - "property-key": "service-instance.service-instance-name", - "property-value": "Firewall1" - } - ] - }, - { - "related-to": "l3-network", - "relationship-data": [ - { - "relationship-value": "HNP1d77c-1094-41ec-b7f3-94bb30951870", - "relationship-key": "l3-network.network-id" - } - ], - "related-link": "/aai/v13/network/l3-networks/l3-network/HNP1d77c-1094-41ec-b7f3-94bb30951871", - "relationship-label": "org.onap.relationships.inventory.Uses", - "related-to-property": [ - { - "property-key": "l3-network.network-name", - "property-value": "HNPORTALOAM.OAM" - } - ] - }, - { - "related-to": "vserver", - "relationship-data": [ - { - "relationship-value": "CloudOwner", - "relationship-key": "cloud-region.cloud-owner" - }, - { - "relationship-value": "RegionOne", - "relationship-key": "cloud-region.cloud-region-id" - }, - { - "relationship-value": "b49b830686654191bb1e952a74b014ad", - "relationship-key": "tenant.tenant-id" - }, - { - "relationship-value": "25fb07ab-0478-465e-a021-6384ac299671", - "relationship-key": "vserver.vserver-id" - } - ], - "related-link": "/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/b49b830686654191bb1e952a74b014ad/vservers/vserver/b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74b" - } - ] - }, - "vnf-id": "6700c313-fbb7-4cf9-ac70-0293ec56df69", - "nf-type": "", - "l3-networks": [ - { - "network-role": "HNPORTALOAM.OAM", - "network-technology": "ovs", - "service-id": "V7611HNP-1222-48f1-8085-94aef0c6ef3d51870", - "network-id": "HNP1d77c-1222-41ec-b7f3-94bb30951870", - "neutron-network-id": "491c7cef-a3f4-4990-883e-b0af397466d0", - "is-external-network": false, - "is-bound-to-vpn": false, - "is-provider-network": false, - "network-type": "OVS_PROVIDER_VLAN", - "orchestration-status": "active", - "network-role-instance": 0, - "resource-version": "1526558298075", - "network-name": "HNPORTALOAM.OAM", - "is-shared-network": false - } - ], - "prov-status": "PREPROV", - "vnf-type": "vFW-vSINK-service/vPKG 0", - "orchestration-status": "Created", - "nf-naming-code": "", - "in-maint": false, - "nf-function": "", - "model-version-id": "a5565bf4-d55a-4964-8fbc-6a7674a2e676", - "vservers": [ - { - "relationship-list": { - "relationship": [ - { - "related-to": "generic-vnf", - "relationship-data": [ - { - "relationship-value": "8a9ddb25-2e79-449c-a40d-5011bac0da39", - "relationship-key": "generic-vnf.vnf-id" - } - ], - "related-link": "/aai/v11/network/generic-vnfs/generic-vnf/8a9ddb25-2e79-449c-a40d-5011bac0da39", - "related-to-property": [ - { - "property-key": "generic-vnf.vnf-name", - "property-value": "Firewall-1" - } - ] - }, - { - "related-to": "flavor", - "relationship-data": [ - { - "relationship-value": "CloudOwner", - "relationship-key": "cloud-region.cloud-owner" - }, - { - "relationship-value": "RegionOne", - "relationship-key": "cloud-region.cloud-region-id" - }, - { - "relationship-value": "764efb04-5a46-4806-a766-2bdd24559f39", - "relationship-key": "flavor.flavor-id" - } - ], - "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/flavors/flavor/764efb04-5a46-4806-a766-2bdd24559f39", - "related-to-property": [ - { - "property-key": "flavor.flavor-name", - "property-value": "m1.medium" - } - ] - }, - { - "related-to": "image", - "relationship-data": [ - { - "relationship-value": "CloudOwner", - "relationship-key": "cloud-region.cloud-owner" - }, - { - "relationship-value": "RegionOne", - "relationship-key": "cloud-region.cloud-region-id" - }, - { - "relationship-value": "42fd42f8-cf81-4f4c-a552-d4b124f83b0b", - "relationship-key": "image.image-id" - } - ], - "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/images/image/42fd42f8-cf81-4f4c-a552-d4b124f83b0b", - "related-to-property": [ - { - "property-key": "image.image-name", - "property-value": "unknown" - } - ] - } - ] - }, - "in-maint": false, - "resource-version": "1528481820321", - "vserver-name": "Firewall-0", - "prov-status": "ACTIVE", - "vserver-id": "b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74b", - "vserver-name2": "Firewall-0", - "vserver-selflink": "http://10.12.25.2:8774/v2.1/b49b830686654191bb1e952a74b014ad/servers/25fb07ab-0478-465e-a021-6384ac299671", - "is-closed-loop-disabled": false - } - ], - "resource-version": "1527638176989", - "model-customization-id": "4cc1e555-361f-4d69-ae21-9f371ea9f40c", - "vf-modules": { - "vf-module": [ - { - "vf-module-name": "vPacketGen-VNF-1128-3", - "model-version-id": "d6d4a002-a584-4640-bdce-a50e9bce552b", - "heat-stack-id": "vPacketGen-VNF-1128-3/df34f5d6-ed39-4184-b785-51c37cfa8ac2", - "resource-version": "1527641224058", - "model-customization-id": "49c8f521-e5ee-4095-bb87-4090166e49ab", - "is-base-vf-module": true, - "vf-module-id": "0f792076-f5b3-4251-9fcc-c4d5afae0eb1", - "module-index": 0, - "model-invariant-id": "2a8844a8-f5f7-46dd-a732-472c6972a28e", - "orchestration-status": "active" - } - ] - }, - "vserver": [ - { - "vserver-name": "Firewall-1", - "vserver-id": "25fb07ab-0478-465e-a021-6384ac299672", - "model-invariant-id": "0c5a20de-87ad-442c-9190-f38ab0a6bb7f" - } - ], - "model-invariant-id": "99f1fd3f-845c-48f5-a0ba-11fbde6ae557", - "vnf-name": "PacketGenerator-2", - "is-closed-loop-disabled": false - } - ], - "model-invariant-id": "0c5a20de-87ad-442c-9190-f38ab0a6bb7f", - "service-instance-name": "Firewall1" -} \ No newline at end of file diff --git a/src/test/resources/junit/SD_response.json b/src/test/resources/junit/SD_response.json new file mode 100644 index 0000000..d4db960 --- /dev/null +++ b/src/test/resources/junit/SD_response.json @@ -0,0 +1,557 @@ +{ + "relationship-list": { + "relationship": [ + { + "related-to": "generic-vnf", + "relationship-data": [ + { + "relationship-value": "6700c313-fbb7-4cf9-ac70-0293ec56df68", + "relationship-key": "generic-vnf.vnf-id" + } + ], + "related-link": "/aai/v13/network/generic-vnfs/generic-vnf/6700c313-fbb7-4cf9-ac70-0293ec56df68", + "related-to-property": [ + { + "property-key": "generic-vnf.vnf-name", + "property-value": "PacketGenerator-1" + } + ] + }, + { + "related-to": "generic-vnf", + "relationship-data": [ + { + "relationship-value": "6700c313-fbb7-4cf9-ac70-0293ec56df69", + "relationship-key": "generic-vnf.vnf-id" + } + ], + "related-link": "/aai/v13/network/generic-vnfs/generic-vnf/6700c313-fbb7-4cf9-ac70-0293ec56df69", + "related-to-property": [ + { + "property-key": "generic-vnf.vnf-name", + "property-value": "PacketGenerator-2" + } + ] + } + ] + }, + "model-version-id": "d3d6cf83-d03a-43cc-99ff-206d40bb9a72", + "service-instance-id": "c6456519-6acf-4adb-997c-3c363dd4caaf", + "resource-version": "1527637758480", + "generic-vnfs": [ + { + "nf-role": "", + "service-id": "8ea56b0d-459d-4668-b363-c9567432d8b7", + "relationship-list": { + "relationship": [ + { + "related-to": "service-instance", + "relationship-data": [ + { + "relationship-value": "Demonstration", + "relationship-key": "customer.global-customer-id" + }, + { + "relationship-value": "vFWCL", + "relationship-key": "service-subscription.service-type" + }, + { + "relationship-value": "c6456519-6acf-4adb-997c-3c363dd4caaf", + "relationship-key": "service-instance.service-instance-id" + } + ], + "related-link": "/aai/v11/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFWCL/service-instances/service-instance/c6456519-6acf-4adb-997c-3c363dd4caaf", + "related-to-property": [ + { + "property-key": "service-instance.service-instance-name", + "property-value": "Firewall1" + } + ] + }, + { + "related-to": "l3-network", + "relationship-data": [ + { + "relationship-value": "HNP1d77c-1094-41ec-b7f3-94bb30951870", + "relationship-key": "l3-network.network-id" + } + ], + "related-link": "/aai/v13/network/l3-networks/l3-network/HNP1d77c-1094-41ec-b7f3-94bb30951870", + "relationship-label": "org.onap.relationships.inventory.Uses", + "related-to-property": [ + { + "property-key": "l3-network.network-name", + "property-value": "HNPORTALOAM.OAM" + } + ] + }, + { + "related-to": "vserver", + "relationship-data": [ + { + "relationship-value": "CloudOwner", + "relationship-key": "cloud-region.cloud-owner" + }, + { + "relationship-value": "RegionOne", + "relationship-key": "cloud-region.cloud-region-id" + }, + { + "relationship-value": "b49b830686654191bb1e952a74b014ad", + "relationship-key": "tenant.tenant-id" + }, + { + "relationship-value": "25fb07ab-0478-465e-a021-6384ac299671", + "relationship-key": "vserver.vserver-id" + } + ], + "related-link": "/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/b49b830686654191bb1e952a74b014ad/vservers/vserver/25fb07ab-0478-465e-a021-6384ac299671" + }, + { + "related-to": "vserver", + "relationship-data": [ + { + "relationship-value": "CloudOwner", + "relationship-key": "cloud-region.cloud-owner" + }, + { + "relationship-value": "RegionOne", + "relationship-key": "cloud-region.cloud-region-id" + }, + { + "relationship-value": "b49b830686654191bb1e952a74b014ad", + "relationship-key": "tenant.tenant-id" + }, + { + "relationship-value": "25fb07ab-0478-465e-a021-6384ac299672", + "relationship-key": "vserver.vserver-id" + } + ], + "related-link": "/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/b49b830686654191bb1e952a74b014ad/vservers/vserver/25fb07ab-0478-465e-a021-6384ac299672" + } + ] + }, + "vnf-id": "6700c313-fbb7-4cf9-ac70-0293ec56df68", + "nf-type": "", + "l3-networks": [ + { + "network-role": "HNPORTALOAM.OAM", + "network-technology": "ovs", + "service-id": "V7611HNP-1222-48f1-8085-94aef0c6ef3d51870", + "network-id": "HNP1d77c-1222-41ec-b7f3-94bb30951870", + "neutron-network-id": "491c7cef-a3f4-4990-883e-b0af397466d0", + "is-external-network": false, + "is-bound-to-vpn": false, + "is-provider-network": false, + "network-type": "OVS_PROVIDER_VLAN", + "orchestration-status": "active", + "network-role-instance": 0, + "resource-version": "1526558298075", + "network-name": "HNPORTALOAM.OAM", + "is-shared-network": false + } + ], + "prov-status": "PREPROV", + "vnf-type": "vFW-vSINK-service/vPKG 0", + "orchestration-status": "Created", + "nf-naming-code": "", + "in-maint": false, + "nf-function": "", + "model-version-id": "a5565bf4-d55a-4964-8fbc-6a7674a2e676", + "vservers": [ + { + "relationship-list": { + "relationship": [ + { + "related-to": "generic-vnf", + "relationship-data": [ + { + "relationship-value": "8a9ddb25-2e79-449c-a40d-5011bac0da39", + "relationship-key": "generic-vnf.vnf-id" + } + ], + "related-link": "/aai/v11/network/generic-vnfs/generic-vnf/8a9ddb25-2e79-449c-a40d-5011bac0da39", + "related-to-property": [ + { + "property-key": "generic-vnf.vnf-name", + "property-value": "Firewall-1" + } + ] + }, + { + "related-to": "flavor", + "relationship-data": [ + { + "relationship-value": "CloudOwner", + "relationship-key": "cloud-region.cloud-owner" + }, + { + "relationship-value": "RegionOne", + "relationship-key": "cloud-region.cloud-region-id" + }, + { + "relationship-value": "764efb04-5a46-4806-a766-2bdd24559f39", + "relationship-key": "flavor.flavor-id" + } + ], + "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/flavors/flavor/764efb04-5a46-4806-a766-2bdd24559f39", + "related-to-property": [ + { + "property-key": "flavor.flavor-name", + "property-value": "m1.medium" + } + ] + }, + { + "related-to": "image", + "relationship-data": [ + { + "relationship-value": "CloudOwner", + "relationship-key": "cloud-region.cloud-owner" + }, + { + "relationship-value": "RegionOne", + "relationship-key": "cloud-region.cloud-region-id" + }, + { + "relationship-value": "42fd42f8-cf81-4f4c-a552-d4b124f83b0b", + "relationship-key": "image.image-id" + } + ], + "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/images/image/42fd42f8-cf81-4f4c-a552-d4b124f83b0b", + "related-to-property": [ + { + "property-key": "image.image-name", + "property-value": "unknown" + } + ] + } + ] + }, + "in-maint": false, + "resource-version": "1528481820321", + "vserver-name": "Firewall-0", + "prov-status": "ACTIVE", + "vserver-id": "25fb07ab-0478-465e-a021-6384ac299671", + "vserver-name2": "Firewall-0", + "vserver-selflink": "http://10.12.25.2:8774/v2.1/b49b830686654191bb1e952a74b014ad/servers/25fb07ab-0478-465e-a021-6384ac299671", + "is-closed-loop-disabled": false + }, + { + "relationship-list": { + "relationship": [ + { + "related-to": "generic-vnf", + "relationship-data": [ + { + "relationship-value": "8a9ddb25-2e79-449c-a40d-5011bac0da39", + "relationship-key": "generic-vnf.vnf-id" + } + ], + "related-link": "/aai/v11/network/generic-vnfs/generic-vnf/8a9ddb25-2e79-449c-a40d-5011bac0da39", + "related-to-property": [ + { + "property-key": "generic-vnf.vnf-name", + "property-value": "Firewall-1" + } + ] + }, + { + "related-to": "flavor", + "relationship-data": [ + { + "relationship-value": "CloudOwner", + "relationship-key": "cloud-region.cloud-owner" + }, + { + "relationship-value": "RegionOne", + "relationship-key": "cloud-region.cloud-region-id" + }, + { + "relationship-value": "764efb04-5a46-4806-a766-2bdd24559f39", + "relationship-key": "flavor.flavor-id" + } + ], + "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/flavors/flavor/764efb04-5a46-4806-a766-2bdd24559f39", + "related-to-property": [ + { + "property-key": "flavor.flavor-name", + "property-value": "m1.medium" + } + ] + }, + { + "related-to": "image", + "relationship-data": [ + { + "relationship-value": "CloudOwner", + "relationship-key": "cloud-region.cloud-owner" + }, + { + "relationship-value": "RegionOne", + "relationship-key": "cloud-region.cloud-region-id" + }, + { + "relationship-value": "42fd42f8-cf81-4f4c-a552-d4b124f83b0b", + "relationship-key": "image.image-id" + } + ], + "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/images/image/42fd42f8-cf81-4f4c-a552-d4b124f83b0b", + "related-to-property": [ + { + "property-key": "image.image-name", + "property-value": "unknown" + } + ] + } + ] + }, + "in-maint": false, + "resource-version": "1528481820321", + "vserver-name": "Firewall-0", + "prov-status": "ACTIVE", + "vserver-id": "25fb07ab-0478-465e-a021-6384ac299672", + "vserver-name2": "Firewall-0", + "vserver-selflink": "http://10.12.25.2:8774/v2.1/b49b830686654191bb1e952a74b014ad/servers/25fb07ab-0478-465e-a021-6384ac299672", + "is-closed-loop-disabled": false + } + ], + "resource-version": "1527638176989", + "model-customization-id": "4cc1e555-361f-4d69-ae21-9f371ea9f40c", + "vf-modules": { + "vf-module": [ + { + "vf-module-name": "vPacketGen-VNF-1128-3", + "model-version-id": "d6d4a002-a584-4640-bdce-a50e9bce552b", + "heat-stack-id": "vPacketGen-VNF-1128-3/df34f5d6-ed39-4184-b785-51c37cfa8ac2", + "resource-version": "1527641224058", + "model-customization-id": "49c8f521-e5ee-4095-bb87-4090166e49ab", + "is-base-vf-module": true, + "vf-module-id": "0f792076-f5b3-4251-9fcc-c4d5afae0eb1", + "module-index": 0, + "model-invariant-id": "2a8844a8-f5f7-46dd-a732-472c6972a28e", + "orchestration-status": "active" + } + ] + }, + "vserver": [ + { + "vserver-name": "Firewall-1", + "vserver-id": "25fb07ab-0478-465e-a021-6384ac299671", + "model-invariant-id": "0c5a20de-87ad-442c-9190-f38ab0a6bb7f" + } + ], + "model-invariant-id": "99f1fd3f-845c-48f5-a0ba-11fbde6ae557", + "vnf-name": "PacketGenerator-1", + "is-closed-loop-disabled": false + }, + { + "nf-role": "", + "service-id": "8ea56b0d-459d-4668-b363-c9567432d8b9", + "relationship-list": { + "relationship": [ + { + "related-to": "service-instance", + "relationship-data": [ + { + "relationship-value": "Demonstration", + "relationship-key": "customer.global-customer-id" + }, + { + "relationship-value": "vFWCL", + "relationship-key": "service-subscription.service-type" + }, + { + "relationship-value": "c6456519-6acf-4adb-997c-3c363dd4caaf", + "relationship-key": "service-instance.service-instance-id" + } + ], + "related-link": "/aai/v11/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFWCL/service-instances/service-instance/c6456519-6acf-4adb-997c-3c363dd4caaf", + "related-to-property": [ + { + "property-key": "service-instance.service-instance-name", + "property-value": "Firewall1" + } + ] + }, + { + "related-to": "l3-network", + "relationship-data": [ + { + "relationship-value": "HNP1d77c-1094-41ec-b7f3-94bb30951870", + "relationship-key": "l3-network.network-id" + } + ], + "related-link": "/aai/v13/network/l3-networks/l3-network/HNP1d77c-1094-41ec-b7f3-94bb30951871", + "relationship-label": "org.onap.relationships.inventory.Uses", + "related-to-property": [ + { + "property-key": "l3-network.network-name", + "property-value": "HNPORTALOAM.OAM" + } + ] + }, + { + "related-to": "vserver", + "relationship-data": [ + { + "relationship-value": "CloudOwner", + "relationship-key": "cloud-region.cloud-owner" + }, + { + "relationship-value": "RegionOne", + "relationship-key": "cloud-region.cloud-region-id" + }, + { + "relationship-value": "b49b830686654191bb1e952a74b014ad", + "relationship-key": "tenant.tenant-id" + }, + { + "relationship-value": "25fb07ab-0478-465e-a021-6384ac299671", + "relationship-key": "vserver.vserver-id" + } + ], + "related-link": "/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/b49b830686654191bb1e952a74b014ad/vservers/vserver/b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74b" + } + ] + }, + "vnf-id": "6700c313-fbb7-4cf9-ac70-0293ec56df69", + "nf-type": "", + "l3-networks": [ + { + "network-role": "HNPORTALOAM.OAM", + "network-technology": "ovs", + "service-id": "V7611HNP-1222-48f1-8085-94aef0c6ef3d51870", + "network-id": "HNP1d77c-1222-41ec-b7f3-94bb30951870", + "neutron-network-id": "491c7cef-a3f4-4990-883e-b0af397466d0", + "is-external-network": false, + "is-bound-to-vpn": false, + "is-provider-network": false, + "network-type": "OVS_PROVIDER_VLAN", + "orchestration-status": "active", + "network-role-instance": 0, + "resource-version": "1526558298075", + "network-name": "HNPORTALOAM.OAM", + "is-shared-network": false + } + ], + "prov-status": "PREPROV", + "vnf-type": "vFW-vSINK-service/vPKG 0", + "orchestration-status": "Created", + "nf-naming-code": "", + "in-maint": false, + "nf-function": "", + "model-version-id": "a5565bf4-d55a-4964-8fbc-6a7674a2e676", + "vservers": [ + { + "relationship-list": { + "relationship": [ + { + "related-to": "generic-vnf", + "relationship-data": [ + { + "relationship-value": "8a9ddb25-2e79-449c-a40d-5011bac0da39", + "relationship-key": "generic-vnf.vnf-id" + } + ], + "related-link": "/aai/v11/network/generic-vnfs/generic-vnf/8a9ddb25-2e79-449c-a40d-5011bac0da39", + "related-to-property": [ + { + "property-key": "generic-vnf.vnf-name", + "property-value": "Firewall-1" + } + ] + }, + { + "related-to": "flavor", + "relationship-data": [ + { + "relationship-value": "CloudOwner", + "relationship-key": "cloud-region.cloud-owner" + }, + { + "relationship-value": "RegionOne", + "relationship-key": "cloud-region.cloud-region-id" + }, + { + "relationship-value": "764efb04-5a46-4806-a766-2bdd24559f39", + "relationship-key": "flavor.flavor-id" + } + ], + "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/flavors/flavor/764efb04-5a46-4806-a766-2bdd24559f39", + "related-to-property": [ + { + "property-key": "flavor.flavor-name", + "property-value": "m1.medium" + } + ] + }, + { + "related-to": "image", + "relationship-data": [ + { + "relationship-value": "CloudOwner", + "relationship-key": "cloud-region.cloud-owner" + }, + { + "relationship-value": "RegionOne", + "relationship-key": "cloud-region.cloud-region-id" + }, + { + "relationship-value": "42fd42f8-cf81-4f4c-a552-d4b124f83b0b", + "relationship-key": "image.image-id" + } + ], + "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/images/image/42fd42f8-cf81-4f4c-a552-d4b124f83b0b", + "related-to-property": [ + { + "property-key": "image.image-name", + "property-value": "unknown" + } + ] + } + ] + }, + "in-maint": false, + "resource-version": "1528481820321", + "vserver-name": "Firewall-0", + "prov-status": "ACTIVE", + "vserver-id": "b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74b", + "vserver-name2": "Firewall-0", + "vserver-selflink": "http://10.12.25.2:8774/v2.1/b49b830686654191bb1e952a74b014ad/servers/25fb07ab-0478-465e-a021-6384ac299671", + "is-closed-loop-disabled": false + } + ], + "resource-version": "1527638176989", + "model-customization-id": "4cc1e555-361f-4d69-ae21-9f371ea9f40c", + "vf-modules": { + "vf-module": [ + { + "vf-module-name": "vPacketGen-VNF-1128-3", + "model-version-id": "d6d4a002-a584-4640-bdce-a50e9bce552b", + "heat-stack-id": "vPacketGen-VNF-1128-3/df34f5d6-ed39-4184-b785-51c37cfa8ac2", + "resource-version": "1527641224058", + "model-customization-id": "49c8f521-e5ee-4095-bb87-4090166e49ab", + "is-base-vf-module": true, + "vf-module-id": "0f792076-f5b3-4251-9fcc-c4d5afae0eb1", + "module-index": 0, + "model-invariant-id": "2a8844a8-f5f7-46dd-a732-472c6972a28e", + "orchestration-status": "active" + } + ] + }, + "vserver": [ + { + "vserver-name": "Firewall-1", + "vserver-id": "25fb07ab-0478-465e-a021-6384ac299672", + "model-invariant-id": "0c5a20de-87ad-442c-9190-f38ab0a6bb7f" + } + ], + "model-invariant-id": "99f1fd3f-845c-48f5-a0ba-11fbde6ae557", + "vnf-name": "PacketGenerator-2", + "is-closed-loop-disabled": false + } + ], + "model-invariant-id": "0c5a20de-87ad-442c-9190-f38ab0a6bb7f", + "service-instance-name": "Firewall1" +} \ No newline at end of file -- cgit 1.2.3-korg