diff options
author | pramod.jamkhedkar <pramod@research.att.com> | 2019-04-09 14:40:16 -0400 |
---|---|---|
committer | pramod.jamkhedkar <pramod@research.att.com> | 2019-04-10 17:02:16 -0400 |
commit | 38c89e3a57f168603faaf2ad4220105b2d54a9c8 (patch) | |
tree | 1f9568e77e9999663c89b7ee88655d0eb386a755 /models-interactions/model-impl/aai/src/test | |
parent | e678e5af567040022f23ed7a1ba1723b82434418 (diff) |
Custom Query Code
Changes to aai, so, vfc and restmanager to support aai custom queries.
updated to latest version of aai schema. Made changes according to
latest updates.
Issue-ID: POLICY-1278
Change-Id: I255cef17fff4fe7d4ea21344c0e5ccaac52cbe9a
Signed-off-by: pramod.jamkhedkar <pramod@research.att.com>
Diffstat (limited to 'models-interactions/model-impl/aai/src/test')
5 files changed, 1021 insertions, 2 deletions
diff --git a/models-interactions/model-impl/aai/src/test/java/org/onap/policy/aai/AaiCqResponseTest.java b/models-interactions/model-impl/aai/src/test/java/org/onap/policy/aai/AaiCqResponseTest.java new file mode 100644 index 000000000..bfa0a5a4c --- /dev/null +++ b/models-interactions/model-impl/aai/src/test/java/org/onap/policy/aai/AaiCqResponseTest.java @@ -0,0 +1,278 @@ +/*- + * ============LICENSE_START======================================================= + * + * ================================================================================ + * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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.policy.aai; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; + +import java.io.File; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.List; +import org.junit.Test; +import org.onap.aai.domain.yang.CloudRegion; +import org.onap.aai.domain.yang.GenericVnf; +import org.onap.aai.domain.yang.ServiceInstance; +import org.onap.aai.domain.yang.Tenant; +import org.onap.aai.domain.yang.VfModule; +import org.onap.aai.domain.yang.Vserver; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class AaiCqResponseTest { + private static final Logger LOGGER = LoggerFactory.getLogger(AaiCqResponseTest.class); + private static final String CQ_RESPONSE_SAMPLE = "src/test/resources/org/onap/policy/aai/AaiCqResponse.json"; + + + @Test + public void testConstructor() throws Exception { + /* + * Read JSON String and add all AaiObjects + */ + + String responseString = ""; + responseString = new String(Files.readAllBytes(new File(CQ_RESPONSE_SAMPLE).toPath())); + + AaiCqResponse aaiCqResponse; + aaiCqResponse = new AaiCqResponse(responseString); + assertNotNull(aaiCqResponse); + assertNotNull(aaiCqResponse.getInventoryResponseItems()); + } + + @Test + public void testAaiMalformedCqResponse() throws Exception { + /* + * Read JSON String and add all AaiObjects + */ + + String responseString = ""; + responseString = new String(Files + .readAllBytes(new File("src/test/resources/org/onap/policy/aai/AaiMalformedCqResponse.json").toPath())); + + AaiCqResponse aaiCqResponse; + aaiCqResponse = new AaiCqResponse(responseString); + for (Object aaiObj : aaiCqResponse.getInventoryResponseItems()) { + assertNull(aaiObj); + } + + + } + + @Test + public void testGetItemByList() throws Exception { + /* + * Read JSON String and add all AaiObjects + */ + + String responseString = ""; + responseString = new String(Files.readAllBytes(new File(CQ_RESPONSE_SAMPLE).toPath())); + + AaiCqResponse aaiCqResponse; + aaiCqResponse = new AaiCqResponse(responseString); + ArrayList<Vserver> vs = (ArrayList<Vserver>) aaiCqResponse.getItemListByType(Vserver.class); + assertNotNull(vs); + assertEquals("e7f1db09-ff78-44fc-b256-69095c5556fb", vs.get(0).getVserverId()); + LOGGER.info(vs.get(0).getVserverId()); + + } + + @Test + public void testGetServiceInstance() throws Exception { + + String responseString = ""; + responseString = new String(Files.readAllBytes(new File(CQ_RESPONSE_SAMPLE).toPath())); + + AaiCqResponse aaiCqResponse; + aaiCqResponse = new AaiCqResponse(responseString); + ServiceInstance si = aaiCqResponse.getServiceInstance(); + assertNotNull(si); + assertEquals("vLoadBalancerMS-0211-1", si.getServiceInstanceName()); + LOGGER.info(si.getServiceInstanceName()); + } + + @Test + public void testGetDefaultCloudRegion() throws Exception { + + String responseString = ""; + responseString = new String(Files.readAllBytes(new File(CQ_RESPONSE_SAMPLE).toPath())); + + AaiCqResponse aaiCqResponse; + aaiCqResponse = new AaiCqResponse(responseString); + CloudRegion cloudRegion = aaiCqResponse.getDefaultCloudRegion(); + assertNotNull(cloudRegion); + assertEquals("cr-16197-01-as988q", cloudRegion.getCloudRegionId()); + LOGGER.info(cloudRegion.getCloudRegionId()); + } + + @Test + public void testGetDefaultTenant() throws Exception { + + String responseString = ""; + responseString = new String(Files.readAllBytes(new File(CQ_RESPONSE_SAMPLE).toPath())); + + AaiCqResponse aaiCqResponse; + aaiCqResponse = new AaiCqResponse(responseString); + Tenant tenant = aaiCqResponse.getDefaultTenant(); + assertNotNull(tenant); + assertEquals("tenant1-16197-as988q", tenant.getTenantId()); + LOGGER.info(tenant.getTenantId()); + } + + + + @Test + public void testGetGenericVnfs() throws Exception { + + String responseString = ""; + responseString = new String(Files.readAllBytes(new File(CQ_RESPONSE_SAMPLE).toPath())); + + AaiCqResponse aaiCqResponse; + aaiCqResponse = new AaiCqResponse(responseString); + List<GenericVnf> genericVnfList = aaiCqResponse.getGenericVnfs(); + assertNotNull(genericVnfList); + for (GenericVnf genVnf : genericVnfList) { + LOGGER.info(genVnf.getVnfName()); + } + + } + + + + @Test + public void testGetDefaultGenericVnf() throws Exception { + + String responseString = ""; + responseString = new String(Files.readAllBytes(new File(CQ_RESPONSE_SAMPLE).toPath())); + + AaiCqResponse aaiCqResponse; + aaiCqResponse = new AaiCqResponse(responseString); + GenericVnf genVnf = aaiCqResponse.getDefaultGenericVnf(); + assertNotNull(genVnf); + assertEquals("TestVM-Vnf-0201-1", genVnf.getVnfName()); + LOGGER.info(genVnf.getVnfName()); + + } + + @Test + public void testGetGenericVnfByName() throws Exception { + + String responseString = ""; + responseString = new String(Files.readAllBytes(new File(CQ_RESPONSE_SAMPLE).toPath())); + + AaiCqResponse aaiCqResponse; + aaiCqResponse = new AaiCqResponse(responseString); + GenericVnf genVnf = aaiCqResponse.getGenericVnfByVnfName("TestVM-Vnf-0201-1"); + assertNotNull(genVnf); + assertEquals("17044ef4-e7f3-46a1-af03-e2aa562f23ac", genVnf.getVnfId()); + LOGGER.info(genVnf.getVnfId()); + } + + + @Test + public void testGetGenericVnfByModelInvariantId() throws Exception { + + String responseString = ""; + responseString = new String(Files.readAllBytes(new File(CQ_RESPONSE_SAMPLE).toPath())); + + AaiCqResponse aaiCqResponse; + aaiCqResponse = new AaiCqResponse(responseString); + GenericVnf genVnf = aaiCqResponse.getGenericVnfByModelInvariantId("724ab1cf-6120-49e8-b909-849963bed1d6"); + assertNotNull(genVnf); + assertEquals("724ab1cf-6120-49e8-b909-849963bed1d6", genVnf.getModelInvariantId()); + LOGGER.info(genVnf.getModelInvariantId()); + } + + @Test + public void testGetAllVfModules() throws Exception { + + String responseString = ""; + responseString = new String(Files.readAllBytes(new File(CQ_RESPONSE_SAMPLE).toPath())); + + AaiCqResponse aaiCqResponse; + aaiCqResponse = new AaiCqResponse(responseString); + List<VfModule> vfModuleList = aaiCqResponse.getAllVfModules(); + assertNotNull(vfModuleList); + for (VfModule vfMod : vfModuleList) { + LOGGER.info(vfMod.getVfModuleName()); + } + + } + + + @Test + public void testGetVfModuleByVfModuleName() throws Exception { + + String responseString = ""; + responseString = new String(Files.readAllBytes(new File(CQ_RESPONSE_SAMPLE).toPath())); + + AaiCqResponse aaiCqResponse; + aaiCqResponse = new AaiCqResponse(responseString); + VfModule vfModule = aaiCqResponse.getVfModuleByVfModuleName("vLoadBalancerMS-0211-1"); + assertNotNull(vfModule); + assertEquals("vLoadBalancerMS-0211-1", vfModule.getVfModuleName()); + LOGGER.info(vfModule.getVfModuleName()); + + + } + + @Test + public void testGetDefaultVfModule() throws Exception { + + String responseString = ""; + responseString = new String(Files.readAllBytes(new File(CQ_RESPONSE_SAMPLE).toPath())); + + AaiCqResponse aaiCqResponse; + aaiCqResponse = new AaiCqResponse(responseString); + VfModule vfModule = aaiCqResponse.getDefaultVfModule(); + assertNotNull(vfModule); + assertEquals("TestVM-0201-2", vfModule.getVfModuleName()); + LOGGER.info(vfModule.getVfModuleName()); + } + + @Test + public void testGetVserver() throws Exception { + + String responseString = ""; + responseString = new String(Files.readAllBytes(new File(CQ_RESPONSE_SAMPLE).toPath())); + + AaiCqResponse aaiCqResponse; + aaiCqResponse = new AaiCqResponse(responseString); + Vserver vserver = aaiCqResponse.getVserver(); + assertNotNull(vserver); + assertEquals("vfw-vm-0201-2", vserver.getVserverName()); + LOGGER.info(vserver.getVserverName()); + + } + + /** + * Aai Cq sample response. + * + * @return String return response + * @throws Exception file read exception + */ + public String getAaiCqResponse() throws Exception { + String responseString = ""; + responseString = new String(Files.readAllBytes(new File(CQ_RESPONSE_SAMPLE).toPath())); + return responseString; + } + +} diff --git a/models-interactions/model-impl/aai/src/test/java/org/onap/policy/aai/AaiManagerTest.java b/models-interactions/model-impl/aai/src/test/java/org/onap/policy/aai/AaiManagerTest.java index 111042f6d..c453d89a1 100644 --- a/models-interactions/model-impl/aai/src/test/java/org/onap/policy/aai/AaiManagerTest.java +++ b/models-interactions/model-impl/aai/src/test/java/org/onap/policy/aai/AaiManagerTest.java @@ -31,10 +31,12 @@ import static org.mockito.ArgumentMatchers.startsWith; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; import java.util.HashMap; import java.util.Map; import java.util.UUID; - import org.junit.Before; import org.junit.Test; import org.onap.policy.aai.util.Serialization; @@ -48,12 +50,18 @@ public class AaiManagerTest { Pair<Integer, String> httpResponseErr0; Pair<Integer, String> httpResponseErr1; Pair<Integer, String> httpResponseWait; + Pair<Integer, String> httpTenantResponseOk; + Pair<Integer, String> httpCqResponseOk; + + private static final String TENANT_RESPONSE_SAMPLE = + "src/test/resources/org/onap/policy/aai/AaiTenantResponse.json"; /** * Set up test cases. + * @throws Exception if error occurs */ @Before - public void beforeTestAaiManager() { + public void beforeTestAaiManager() throws Exception { restManagerMock = mock(RestManager.class); Map<String, String> expectedHeaders = new HashMap<>(); @@ -61,6 +69,10 @@ public class AaiManagerTest { expectedHeaders.put("X-TransactionId", aaiNqRequestUuid.toString()); expectedHeaders.put("Accept", "application/json"); + String aaiCqResponse = new AaiCqResponseTest().getAaiCqResponse(); + String tenantResponse = this.getTenantQueryResponse(); + httpCqResponseOk = restManagerMock.new Pair<>(200, aaiCqResponse); + httpTenantResponseOk = restManagerMock.new Pair<>(200, tenantResponse); AaiNqResponse aaiNqResponse = new AaiNqResponseTest().getAaiNqResponse(); httpResponseOk = restManagerMock.new Pair<>(200, Serialization.gsonPretty.toJson(aaiNqResponse)); httpResponseErr0 = restManagerMock.new Pair<>(200, null); @@ -69,6 +81,51 @@ public class AaiManagerTest { } @Test + public void testAaiCqResponse() { + AaiManager aaiManager = new AaiManager(restManagerMock); + assertNotNull(aaiManager); + + UUID vserverNameRequestId = UUID.randomUUID(); + + when(restManagerMock.put(startsWith("http://testing.cq.query"), eq("Foo"), eq("Bar"), anyMap(), anyString(), + anyString())).thenReturn(httpCqResponseOk); + + when(restManagerMock.get(startsWith("http://testing.cq.query"), eq("Foo"), eq("Bar"), anyMap())) + .thenReturn(httpTenantResponseOk); + + AaiCqResponse aaiCqResponse = + aaiManager.getCustomQueryResponse("http://testing.cq.query", "Foo", "Bar", vserverNameRequestId, "Foo"); + assertNotNull(aaiCqResponse); + + when(restManagerMock.put(eq(""), eq("Foo"), eq("Bar"), anyMap(), anyString(), anyString())) + .thenReturn(httpResponseErr0); + + when(restManagerMock.get(eq("/aai/v11/query?format=resource"), eq("Foo"), eq("Bar"), anyMap())) + .thenReturn(httpResponseErr0); + + AaiCqResponse aaiCqResponseNull = + aaiManager.getCustomQueryResponse("", "Foo", "Bar", vserverNameRequestId, "Foo"); + assertNull(aaiCqResponseNull); + + + when(restManagerMock.put(eq("Error"), eq("Foo"), eq("Bar"), anyMap(), anyString(), anyString())) + .thenReturn(httpResponseErr1); + + when(restManagerMock.get(eq("Error/aai/v11/query?format=resource"), eq("Foo"), eq("Bar"), anyMap())) + .thenReturn(httpResponseErr1); + + AaiCqResponse aaiCqResponseErr = + aaiManager.getCustomQueryResponse("Error", "Foo", "Bar", vserverNameRequestId, "Foo"); + assertNull(aaiCqResponseErr); + } + + private String getTenantQueryResponse() throws IOException { + String responseString = ""; + responseString = new String(Files.readAllBytes(new File(TENANT_RESPONSE_SAMPLE).toPath())); + return responseString; + } + + @Test public void testAaiManagerAaiNqRequest() { AaiManager aaiManager = new AaiManager(restManagerMock); diff --git a/models-interactions/model-impl/aai/src/test/resources/org/onap/policy/aai/AaiCqResponse.json b/models-interactions/model-impl/aai/src/test/resources/org/onap/policy/aai/AaiCqResponse.json new file mode 100644 index 000000000..63d6f79ac --- /dev/null +++ b/models-interactions/model-impl/aai/src/test/resources/org/onap/policy/aai/AaiCqResponse.json @@ -0,0 +1,673 @@ +{ + "results": [ + { + "vserver": { + "vserver-id": "e7f1db09-ff78-44fc-b256-69095c5556fb", + "vserver-name": "vfw-vm-0201-2", + "vserver-name2": "vfw-vm-0201-2", + "prov-status": "ACTIVE", + "vserver-selflink": "http://ecompctl1.research.att.com:8774/v2/3f2aaef74ecb4b19b35e26d0849fe9a2/servers/e7f1db09-ff78-44fc-b256-69095c5556fb", + "in-maint": false, + "is-closed-loop-disabled": false, + "resource-version": "1549553422524", + "relationship-list": { + "relationship": [ + { + "related-to": "generic-vnf", + "related-link": "/aai/v11/network/generic-vnfs/generic-vnf/17044ef4-e7f3-46a1-af03-e2aa562f23ac", + "relationship-data": [ + { + "relationship-key": "generic-vnf.vnf-id", + "relationship-value": "17044ef4-e7f3-46a1-af03-e2aa562f23ac" + } + ], + "related-to-property": [ + { + "property-key": "generic-vnf.vnf-name", + "property-value": "TestVM-Vnf-0201-1" + } + ] + }, + { + "related-to": "vnfc", + "related-link": "/aai/v11/network/vnfcs/vnfc/vfw", + "relationship-data": [ + { + "relationship-key": "vnfc.vnfc-name", + "relationship-value": "vfw" + } + ] + }, + { + "related-to": "vf-module", + "related-link": "/aai/v11/network/generic-vnfs/generic-vnf/17044ef4-e7f3-46a1-af03-e2aa562f23ac/vf-modules/vf-module/33f9e03d-2fbd-4e9c-8e73-ce6b12f0b3d2", + "relationship-data": [ + { + "relationship-key": "generic-vnf.vnf-id", + "relationship-value": "17044ef4-e7f3-46a1-af03-e2aa562f23ac" + }, + { + "relationship-key": "vf-module.vf-module-id", + "relationship-value": "33f9e03d-2fbd-4e9c-8e73-ce6b12f0b3d2" + } + ] + }, + { + "related-to": "flavor", + "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/flavors/flavor/2", + "relationship-data": [ + { + "relationship-key": "cloud-region.cloud-owner", + "relationship-value": "CloudOwner" + }, + { + "relationship-key": "cloud-region.cloud-region-id", + "relationship-value": "RegionOne" + }, + { + "relationship-key": "flavor.flavor-id", + "relationship-value": "2" + } + ], + "related-to-property": [ + { + "property-key": "flavor.flavor-name", + "property-value": "m1.small" + } + ] + }, + { + "related-to": "image", + "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/images/image/84be7136-301f-4f47-9585-3a2e0f9534af", + "relationship-data": [ + { + "relationship-key": "cloud-region.cloud-owner", + "relationship-value": "CloudOwner" + }, + { + "relationship-key": "cloud-region.cloud-region-id", + "relationship-value": "RegionOne" + }, + { + "relationship-key": "image.image-id", + "relationship-value": "84be7136-301f-4f47-9585-3a2e0f9534af" + } + ], + "related-to-property": [ + { + "property-key": "image.image-name", + "property-value": "unknown" + } + ] + } + ] + } + } + }, + { + "generic-vnf": { + "vnf-id": "7b202620-2936-4b0d-b09c-60b411f10f64", + "vnf-name": "vLoadBalancerMS-Vnf-0211-1", + "vnf-type": "vLoadBalancerMS/vLoadBalancerMS 0", + "prov-status": "ACTIVE", + "equipment-role": "vLB", + "orchestration-status": "Active", + "ipv4-oam-address": "10.0.150.1", + "in-maint": true, + "is-closed-loop-disabled": false, + "resource-version": "1552311656338", + "model-invariant-id": "724ab1cf-6120-49e8-b909-849963bed1d6", + "model-version-id": "9d5944d8-2267-4799-824a-0f824e9a978d", + "model-customization-id": "efcd576d-a05e-4798-bb68-79e7d9c80f4c", + "nf-type": "ONAP-LOADBALANCER", + "nf-function": "LOADBALANCER", + "nf-role": "vLB", + "nf-naming-code": "vlb", + "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/101b8fc1-1796-4db1-a4e7-fe39c6a51558/service-data/vnfs/vnf/7b202620-2936-4b0d-b09c-60b411f10f64/vnf-data/vnf-topology/", + "relationship-list": { + "relationship": [ + { + "related-to": "service-instance", + "related-link": "/aai/v11/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vLB/service-instances/service-instance/101b8fc1-1796-4db1-a4e7-fe39c6a51558", + "relationship-data": [ + { + "relationship-key": "customer.global-customer-id", + "relationship-value": "Demonstration" + }, + { + "relationship-key": "service-subscription.service-type", + "relationship-value": "vLB" + }, + { + "relationship-key": "service-instance.service-instance-id", + "relationship-value": "101b8fc1-1796-4db1-a4e7-fe39c6a51558" + } + ], + "related-to-property": [ + { + "property-key": "service-instance.service-instance-name", + "property-value": "vLoadBalancerMS-0211-1" + } + ] + }, + { + "related-to": "platform", + "related-link": "/aai/v11/business/platforms/platform/Test-Platform", + "relationship-data": [ + { + "relationship-key": "platform.platform-name", + "relationship-value": "Test-Platform" + } + ] + }, + { + "related-to": "line-of-business", + "related-link": "/aai/v11/business/lines-of-business/line-of-business/Test-Business", + "relationship-data": [ + { + "relationship-key": "line-of-business.line-of-business-name", + "relationship-value": "Test-Business" + } + ] + }, + { + "related-to": "vserver", + "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/3f2aaef74ecb4b19b35e26d0849fe9a2/vservers/vserver/58ca8df0-17b8-4aa2-8766-9c6c1a12cec8", + "relationship-data": [ + { + "relationship-key": "cloud-region.cloud-owner", + "relationship-value": "CloudOwner" + }, + { + "relationship-key": "cloud-region.cloud-region-id", + "relationship-value": "RegionOne" + }, + { + "relationship-key": "tenant.tenant-id", + "relationship-value": "3f2aaef74ecb4b19b35e26d0849fe9a2" + }, + { + "relationship-key": "vserver.vserver-id", + "relationship-value": "58ca8df0-17b8-4aa2-8766-9c6c1a12cec8" + } + ], + "related-to-property": [ + { + "property-key": "vserver.vserver-name", + "property-value": "vdns-ms-0211-1" + } + ] + }, + { + "related-to": "vserver", + "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/3f2aaef74ecb4b19b35e26d0849fe9a2/vservers/vserver/6c3b3714-e36c-45af-9f16-7d3a73d99497", + "relationship-data": [ + { + "relationship-key": "cloud-region.cloud-owner", + "relationship-value": "CloudOwner" + }, + { + "relationship-key": "cloud-region.cloud-region-id", + "relationship-value": "RegionOne" + }, + { + "relationship-key": "tenant.tenant-id", + "relationship-value": "3f2aaef74ecb4b19b35e26d0849fe9a2" + }, + { + "relationship-key": "vserver.vserver-id", + "relationship-value": "6c3b3714-e36c-45af-9f16-7d3a73d99497" + } + ], + "related-to-property": [ + { + "property-key": "vserver.vserver-name", + "property-value": "vlb-ms-0211-1" + } + ] + }, + { + "related-to": "availability-zone", + "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/availability-zones/availability-zone/nova", + "relationship-data": [ + { + "relationship-key": "cloud-region.cloud-owner", + "relationship-value": "CloudOwner" + }, + { + "relationship-key": "cloud-region.cloud-region-id", + "relationship-value": "RegionOne" + }, + { + "relationship-key": "availability-zone.availability-zone-name", + "relationship-value": "nova" + } + ] + } + ] + }, + "vf-modules": { + "vf-module": [ + { + "vf-module-id": "e46c6636-9ce5-4b77-bb1b-455ce9edc892", + "vf-module-name": "vLoadBalancerMS-0211-1", + "heat-stack-id": "vLoadBalancerMS-0211-1/73360253-2dfe-46f6-bcd6-8662a81238ea", + "orchestration-status": "Active", + "is-base-vf-module": true, + "resource-version": "1552311559802", + "model-invariant-id": "d263fc6d-cfce-4e20-8337-e06f48b474e6", + "model-version-id": "24c0aa10-3979-402c-ad98-20124751b551", + "model-customization-id": "65382eb1-db84-466c-b9d7-4e0f1ba7105f", + "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/101b8fc1-1796-4db1-a4e7-fe39c6a51558/service-data/vnfs/vnf/7b202620-2936-4b0d-b09c-60b411f10f64/vnf-data/vf-modules/vf-module/e46c6636-9ce5-4b77-bb1b-455ce9edc892/vf-module-data/vf-module-topology/", + "relationship-list": { + "relationship": [ + { + "related-to": "vserver", + "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/3f2aaef74ecb4b19b35e26d0849fe9a2/vservers/vserver/58ca8df0-17b8-4aa2-8766-9c6c1a12cec8", + "relationship-data": [ + { + "relationship-key": "cloud-region.cloud-owner", + "relationship-value": "CloudOwner" + }, + { + "relationship-key": "cloud-region.cloud-region-id", + "relationship-value": "RegionOne" + }, + { + "relationship-key": "tenant.tenant-id", + "relationship-value": "3f2aaef74ecb4b19b35e26d0849fe9a2" + }, + { + "relationship-key": "vserver.vserver-id", + "relationship-value": "58ca8df0-17b8-4aa2-8766-9c6c1a12cec8" + } + ], + "related-to-property": [ + { + "property-key": "vserver.vserver-name", + "property-value": "vdns-ms-0211-1" + } + ] + }, + { + "related-to": "vserver", + "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/3f2aaef74ecb4b19b35e26d0849fe9a2/vservers/vserver/6c3b3714-e36c-45af-9f16-7d3a73d99497", + "relationship-data": [ + { + "relationship-key": "cloud-region.cloud-owner", + "relationship-value": "CloudOwner" + }, + { + "relationship-key": "cloud-region.cloud-region-id", + "relationship-value": "RegionOne" + }, + { + "relationship-key": "tenant.tenant-id", + "relationship-value": "3f2aaef74ecb4b19b35e26d0849fe9a2" + }, + { + "relationship-key": "vserver.vserver-id", + "relationship-value": "6c3b3714-e36c-45af-9f16-7d3a73d99497" + } + ], + "related-to-property": [ + { + "property-key": "vserver.vserver-name", + "property-value": "vlb-ms-0211-1" + } + ] + } + ] + } + } + ] + } + } + }, + { + "service-instance": { + "service-instance-id": "101b8fc1-1796-4db1-a4e7-fe39c6a51558", + "service-instance-name": "vLoadBalancerMS-0211-1", + "environment-context": "General_Revenue-Bearing", + "workload-context": "Production", + "model-invariant-id": "1008a768-1b67-407e-88c6-58c82b34ef42", + "model-version-id": "81f8c1cd-f664-4450-b3a4-be645613ab32", + "resource-version": "1552311350334", + "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/101b8fc1-1796-4db1-a4e7-fe39c6a51558/service-data/service-topology/", + "orchestration-status": "Active", + "relationship-list": { + "relationship": [ + { + "related-to": "project", + "related-link": "/aai/v11/business/projects/project/Test-Project", + "relationship-data": [ + { + "relationship-key": "project.project-name", + "relationship-value": "Test-Project" + } + ] + }, + { + "related-to": "generic-vnf", + "related-link": "/aai/v11/network/generic-vnfs/generic-vnf/7b202620-2936-4b0d-b09c-60b411f10f64", + "relationship-data": [ + { + "relationship-key": "generic-vnf.vnf-id", + "relationship-value": "7b202620-2936-4b0d-b09c-60b411f10f64" + } + ], + "related-to-property": [ + { + "property-key": "generic-vnf.vnf-name", + "property-value": "vLoadBalancerMS-Vnf-0211-1" + } + ] + }, + { + "related-to": "owning-entity", + "related-link": "/aai/v11/business/owning-entities/owning-entity/bb94a687-4f3b-40a3-914e-e98037d5ebd2", + "relationship-data": [ + { + "relationship-key": "owning-entity.owning-entity-id", + "relationship-value": "bb94a687-4f3b-40a3-914e-e98037d5ebd2" + } + ] + } + ] + } + } + }, + { + "generic-vnf": { + "vnf-id": "17044ef4-e7f3-46a1-af03-e2aa562f23ac", + "vnf-name": "TestVM-Vnf-0201-1", + "vnf-type": "TestVM/TestVM 0", + "prov-status": "ACTIVE", + "equipment-role": "", + "orchestration-status": "Active", + "ipv4-oam-address": "10.0.70.1", + "in-maint": true, + "is-closed-loop-disabled": false, + "resource-version": "1549041636264", + "model-invariant-id": "6a4d7971-0778-4655-9eab-9d6031c7ad57", + "model-version-id": "fb6c673c-e5b6-4e0a-9baf-5e0089784de9", + "model-customization-id": "706a3100-dbe5-442e-86c3-c7b823abbec2", + "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/d41f8217-d464-4458-bf0a-fba33a0f1b31/service-data/vnfs/vnf/17044ef4-e7f3-46a1-af03-e2aa562f23ac/vnf-data/vnf-topology/", + "relationship-list": { + "relationship": [ + { + "related-to": "service-instance", + "related-link": "/aai/v11/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/service-instance/d41f8217-d464-4458-bf0a-fba33a0f1b31", + "relationship-data": [ + { + "relationship-key": "customer.global-customer-id", + "relationship-value": "Demonstration" + }, + { + "relationship-key": "service-subscription.service-type", + "relationship-value": "vFW" + }, + { + "relationship-key": "service-instance.service-instance-id", + "relationship-value": "d41f8217-d464-4458-bf0a-fba33a0f1b31" + } + ], + "related-to-property": [ + { + "property-key": "service-instance.service-instance-name", + "property-value": "TestVM-Service-0201-1" + } + ] + }, + { + "related-to": "platform", + "related-link": "/aai/v11/business/platforms/platform/Test-Platform", + "relationship-data": [ + { + "relationship-key": "platform.platform-name", + "relationship-value": "Test-Platform" + } + ] + }, + { + "related-to": "line-of-business", + "related-link": "/aai/v11/business/lines-of-business/line-of-business/Test-Business", + "relationship-data": [ + { + "relationship-key": "line-of-business.line-of-business-name", + "relationship-value": "Test-Business" + } + ] + }, + { + "related-to": "vserver", + "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/3f2aaef74ecb4b19b35e26d0849fe9a2/vservers/vserver/e7f1db09-ff78-44fc-b256-69095c5556fb", + "relationship-data": [ + { + "relationship-key": "cloud-region.cloud-owner", + "relationship-value": "CloudOwner" + }, + { + "relationship-key": "cloud-region.cloud-region-id", + "relationship-value": "RegionOne" + }, + { + "relationship-key": "tenant.tenant-id", + "relationship-value": "3f2aaef74ecb4b19b35e26d0849fe9a2" + }, + { + "relationship-key": "vserver.vserver-id", + "relationship-value": "e7f1db09-ff78-44fc-b256-69095c5556fb" + } + ], + "related-to-property": [ + { + "property-key": "vserver.vserver-name", + "property-value": "vfw-vm-0201-2" + } + ] + }, + { + "related-to": "availability-zone", + "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionTwo/availability-zones/availability-zone/zone-1", + "relationship-data": [ + { + "relationship-key": "cloud-region.cloud-owner", + "relationship-value": "CloudOwner" + }, + { + "relationship-key": "cloud-region.cloud-region-id", + "relationship-value": "RegionTwo" + }, + { + "relationship-key": "availability-zone.availability-zone-name", + "relationship-value": "zone-1" + } + ] + } + ] + }, + "vf-modules": { + "vf-module": [ + { + "vf-module-id": "0afde97a-3e3f-4597-aec3-e5488c0f20b7", + "vf-module-name": "TestVM-0201-1", + "heat-stack-id": "TestVM-0201-1/aee4d7e5-b4a0-4261-b3cf-bb23348a3d99", + "orchestration-status": "Active", + "is-base-vf-module": true, + "resource-version": "1549039401119", + "model-invariant-id": "6af68fdb-6479-43e2-8989-938f06c994bd", + "model-version-id": "16d1834e-d834-431f-b064-98c469c6505d", + "model-customization-id": "29ffb122-22c8-48d2-b152-b52d9e81e910", + "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/d41f8217-d464-4458-bf0a-fba33a0f1b31/service-data/vnfs/vnf/17044ef4-e7f3-46a1-af03-e2aa562f23ac/vnf-data/vf-modules/vf-module/0afde97a-3e3f-4597-aec3-e5488c0f20b7/vf-module-data/vf-module-topology/" + }, + { + "vf-module-id": "33f9e03d-2fbd-4e9c-8e73-ce6b12f0b3d2", + "vf-module-name": "TestVM-0201-2", + "heat-stack-id": "TestVM-0201-2/1b9db6b8-620b-46f1-935a-8a61c294a98b", + "orchestration-status": "Active", + "is-base-vf-module": true, + "resource-version": "1549041447373", + "model-invariant-id": "6af68fdb-6479-43e2-8989-938f06c994bd", + "model-version-id": "16d1834e-d834-431f-b064-98c469c6505d", + "model-customization-id": "29ffb122-22c8-48d2-b152-b52d9e81e910", + "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/d41f8217-d464-4458-bf0a-fba33a0f1b31/service-data/vnfs/vnf/17044ef4-e7f3-46a1-af03-e2aa562f23ac/vnf-data/vf-modules/vf-module/33f9e03d-2fbd-4e9c-8e73-ce6b12f0b3d2/vf-module-data/vf-module-topology/", + "relationship-list": { + "relationship": [ + { + "related-to": "vserver", + "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/3f2aaef74ecb4b19b35e26d0849fe9a2/vservers/vserver/e7f1db09-ff78-44fc-b256-69095c5556fb", + "relationship-data": [ + { + "relationship-key": "cloud-region.cloud-owner", + "relationship-value": "CloudOwner" + }, + { + "relationship-key": "cloud-region.cloud-region-id", + "relationship-value": "RegionOne" + }, + { + "relationship-key": "tenant.tenant-id", + "relationship-value": "3f2aaef74ecb4b19b35e26d0849fe9a2" + }, + { + "relationship-key": "vserver.vserver-id", + "relationship-value": "e7f1db09-ff78-44fc-b256-69095c5556fb" + } + ], + "related-to-property": [ + { + "property-key": "vserver.vserver-name", + "property-value": "vfw-vm-0201-2" + } + ] + } + ] + } + } + ] + } + } + }, + { + "vf-module": { + "vf-module-id": "0afde97a-3e3f-4597-aec3-e5488c0f20b7", + "vf-module-name": "TestVM-0201-1", + "heat-stack-id": "TestVM-0201-1/aee4d7e5-b4a0-4261-b3cf-bb23348a3d99", + "orchestration-status": "Active", + "is-base-vf-module": true, + "resource-version": "1549039401119", + "model-invariant-id": "6af68fdb-6479-43e2-8989-938f06c994bd", + "model-version-id": "16d1834e-d834-431f-b064-98c469c6505d", + "model-customization-id": "29ffb122-22c8-48d2-b152-b52d9e81e910", + "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/d41f8217-d464-4458-bf0a-fba33a0f1b31/service-data/vnfs/vnf/17044ef4-e7f3-46a1-af03-e2aa562f23ac/vnf-data/vf-modules/vf-module/0afde97a-3e3f-4597-aec3-e5488c0f20b7/vf-module-data/vf-module-topology/" + } + }, + { + "vf-module": { + "vf-module-id": "33f9e03d-2fbd-4e9c-8e73-ce6b12f0b3d2", + "vf-module-name": "TestVM-0201-2", + "heat-stack-id": "TestVM-0201-2/1b9db6b8-620b-46f1-935a-8a61c294a98b", + "orchestration-status": "Active", + "is-base-vf-module": true, + "resource-version": "1549041447373", + "model-invariant-id": "6af68fdb-6479-43e2-8989-938f06c994bd", + "model-version-id": "16d1834e-d834-431f-b064-98c469c6505d", + "model-customization-id": "29ffb122-22c8-48d2-b152-b52d9e81e910", + "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/d41f8217-d464-4458-bf0a-fba33a0f1b31/service-data/vnfs/vnf/17044ef4-e7f3-46a1-af03-e2aa562f23ac/vnf-data/vf-modules/vf-module/33f9e03d-2fbd-4e9c-8e73-ce6b12f0b3d2/vf-module-data/vf-module-topology/", + "relationship-list": { + "relationship": [ + { + "related-to": "vserver", + "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/3f2aaef74ecb4b19b35e26d0849fe9a2/vservers/vserver/e7f1db09-ff78-44fc-b256-69095c5556fb", + "relationship-data": [ + { + "relationship-key": "cloud-region.cloud-owner", + "relationship-value": "CloudOwner" + }, + { + "relationship-key": "cloud-region.cloud-region-id", + "relationship-value": "RegionOne" + }, + { + "relationship-key": "tenant.tenant-id", + "relationship-value": "3f2aaef74ecb4b19b35e26d0849fe9a2" + }, + { + "relationship-key": "vserver.vserver-id", + "relationship-value": "e7f1db09-ff78-44fc-b256-69095c5556fb" + } + ], + "related-to-property": [ + { + "property-key": "vserver.vserver-name", + "property-value": "vfw-vm-0201-2" + } + ] + } + ] + } + } + }, + { + "tenant": { + "tenant-id": "tenant1-16197-as988q", + "tenant-name": "tenant-name-16197-as988q", + "resource-version": "1550769793637", + "vservers": { + "vserver": [ + { + "vserver-id": "vserver1-16197-as988q", + "vserver-name": "vserverName", + "vserver-name2": "vserverTE-name2-as988q", + "prov-status": "ACTIVE", + "vserver-selflink": "TRINITY vserverLink", + "in-maint": false, + "is-closed-loop-disabled": false, + "resource-version": "1550769794551", + "relationship-list": { + "relationship": [ + { + "related-to": "generic-vnf", + "relationship-label": "tosca.relationships.HostedOn", + "related-link": "/aai/v16/network/generic-vnfs/generic-vnf/VNF1-16197-as988q", + "relationship-data": [ + { + "relationship-key": "generic-vnf.vnf-id", + "relationship-value": "VNF1-16197-as988q" + } + ], + "related-to-property": [ + { + "property-key": "generic-vnf.vnf-name", + "property-value": "vnf1Name" + } + ] + } + ] + } + } + ] + } + } + }, + { + "cloud-region": { + "cloud-owner": "co-16197-01-as988q", + "cloud-region-id": "cr-16197-01-as988q", + "resource-version": "1550769792672", + "orchestration-disabled": false, + "in-maint": false, + "tenants": { + "tenant": [ + { + "tenant-id": "tenant1-16197-as988q", + "tenant-name": "tenant-name-16197-as988q", + "resource-version": "1550769793637" + } + ] + } + } + } + ] +} diff --git a/models-interactions/model-impl/aai/src/test/resources/org/onap/policy/aai/AaiMalformedCqResponse.json b/models-interactions/model-impl/aai/src/test/resources/org/onap/policy/aai/AaiMalformedCqResponse.json new file mode 100644 index 000000000..a9452a2e2 --- /dev/null +++ b/models-interactions/model-impl/aai/src/test/resources/org/onap/policy/aai/AaiMalformedCqResponse.json @@ -0,0 +1,3 @@ +{ + "results": [] +}
\ No newline at end of file diff --git a/models-interactions/model-impl/aai/src/test/resources/org/onap/policy/aai/AaiTenantResponse.json b/models-interactions/model-impl/aai/src/test/resources/org/onap/policy/aai/AaiTenantResponse.json new file mode 100644 index 000000000..62b690548 --- /dev/null +++ b/models-interactions/model-impl/aai/src/test/resources/org/onap/policy/aai/AaiTenantResponse.json @@ -0,0 +1,8 @@ +{ + "result-data": [ + { + "resource-type": "vserver", + "resource-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/3f2aaef74ecb4b19b35e26d0849fe9a2/vservers/vserver/6c3b3714-e36c-45af-9f16-7d3a73d99497" + } + ] +}
\ No newline at end of file |