diff options
author | pramod.jamkhedkar <pramod@research.att.com> | 2019-08-28 11:39:15 -0400 |
---|---|---|
committer | pramod.jamkhedkar <pramod@research.att.com> | 2019-08-30 11:12:58 -0400 |
commit | 363398bece860e1c055adf812996b1bdfad6f8df (patch) | |
tree | bde76a972bb18ae0c443cf2e64a41a44034130a1 /models-interactions/model-impl/aai | |
parent | a930b0105c2e45a657427cfcb41fc0330d0c2e99 (diff) |
Added VFModule count
Added the function VFModuleCount to AaiCqResponse class. It counts the
number of vf modules. Also changed the same custom query response in
AaiSimulator.
Issue-ID: POLICY-1858
Signed-off-by: pramod.jamkhedkar <pramod@research.att.com>
Change-Id: If08de84f74d2bd9501b501b881cdd761089614dc
Diffstat (limited to 'models-interactions/model-impl/aai')
3 files changed, 93 insertions, 739 deletions
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiCqResponse.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiCqResponse.java index dea11d563..ca0c1867f 100644 --- a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiCqResponse.java +++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiCqResponse.java @@ -55,7 +55,6 @@ public class AaiCqResponse { private static JAXBContext jaxbContext; private static Unmarshaller unmarshaller; - // JABX initial stuff static { Map<String, Object> properties = new HashMap<>(); @@ -63,8 +62,12 @@ public class AaiCqResponse { properties.put(JAXBContextProperties.JSON_INCLUDE_ROOT, false); // Define JAXB context try { - jaxbContext = JAXBContextFactory.createContext(new Class[] {Vserver.class, GenericVnf.class, VfModule.class, - CloudRegion.class, ServiceInstance.class, Tenant.class, ModelVer.class}, properties); + jaxbContext = + JAXBContextFactory + .createContext( + new Class[] {Vserver.class, GenericVnf.class, VfModule.class, + CloudRegion.class, ServiceInstance.class, Tenant.class, ModelVer.class}, + properties); unmarshaller = jaxbContext.createUnmarshaller(); } catch (JAXBException e) { LOGGER.error("Could not initialize JAXBContext", e); @@ -75,11 +78,11 @@ public class AaiCqResponse { @SerializedName("results") private List<Object> inventoryResponseItems = new LinkedList<>(); - /** * Constructor creates a custom query response from a valid json string. * - * @param jsonString A&AI Custom Query response JSON string + * @param jsonString + * A&AI Custom Query response JSON string */ public AaiCqResponse(String jsonString) { @@ -95,8 +98,8 @@ public class AaiCqResponse { // Create the StreamSource by creating StringReader using the // JSON input - StreamSource json = new StreamSource( - new StringReader(resultsArray.getJSONObject(i).getJSONObject("vserver").toString())); + StreamSource json = new StreamSource(new StringReader( + resultsArray.getJSONObject(i).getJSONObject("vserver").toString())); // Getting the vserver pojo again from the json Vserver vserver = this.getAaiObject(json, Vserver.class); @@ -107,8 +110,8 @@ public class AaiCqResponse { if (resultsArray.getJSONObject(i).has(GENERIC_VNF)) { // Create the StreamSource by creating StringReader using the // JSON input - StreamSource json = new StreamSource( - new StringReader(resultsArray.getJSONObject(i).getJSONObject(GENERIC_VNF).toString())); + StreamSource json = new StreamSource(new StringReader( + resultsArray.getJSONObject(i).getJSONObject(GENERIC_VNF).toString())); // Getting the generic vnf pojo again from the json GenericVnf genericVnf = this.getAaiObject(json, GenericVnf.class); @@ -121,8 +124,8 @@ public class AaiCqResponse { // Create the StreamSource by creating StringReader using the // JSON input - StreamSource json = new StreamSource( - new StringReader(resultsArray.getJSONObject(i).getJSONObject("service-instance").toString())); + StreamSource json = new StreamSource(new StringReader( + resultsArray.getJSONObject(i).getJSONObject("service-instance").toString())); // Getting the employee pojo again from the json ServiceInstance serviceInstance = this.getAaiObject(json, ServiceInstance.class); @@ -134,8 +137,8 @@ public class AaiCqResponse { if (resultsArray.getJSONObject(i).has(VF_MODULE)) { // Create the StreamSource by creating StringReader using the // JSON input - StreamSource json = new StreamSource( - new StringReader(resultsArray.getJSONObject(i).getJSONObject(VF_MODULE).toString())); + StreamSource json = new StreamSource(new StringReader( + resultsArray.getJSONObject(i).getJSONObject(VF_MODULE).toString())); // Getting the vf module pojo again from the json VfModule vfModule = this.getAaiObject(json, VfModule.class); @@ -147,8 +150,8 @@ public class AaiCqResponse { if (resultsArray.getJSONObject(i).has("cloud-region")) { // Create the StreamSource by creating StringReader using the // JSON input - StreamSource json = new StreamSource( - new StringReader(resultsArray.getJSONObject(i).getJSONObject("cloud-region").toString())); + StreamSource json = new StreamSource(new StringReader( + resultsArray.getJSONObject(i).getJSONObject("cloud-region").toString())); // Getting the cloud region pojo again from the json CloudRegion cloudRegion = this.getAaiObject(json, CloudRegion.class); @@ -160,8 +163,8 @@ public class AaiCqResponse { if (resultsArray.getJSONObject(i).has("tenant")) { // Create the StreamSource by creating StringReader using the // JSON input - StreamSource json = new StreamSource( - new StringReader(resultsArray.getJSONObject(i).getJSONObject("tenant").toString())); + StreamSource json = new StreamSource(new StringReader( + resultsArray.getJSONObject(i).getJSONObject("tenant").toString())); // Getting the tenant pojo again from the json Tenant tenant = this.getAaiObject(json, Tenant.class); @@ -173,8 +176,8 @@ public class AaiCqResponse { if (resultsArray.getJSONObject(i).has("model-ver")) { // Create the StreamSource by creating StringReader using the // JSON input - StreamSource json = new StreamSource( - new StringReader(resultsArray.getJSONObject(i).getJSONObject("model-ver").toString())); + StreamSource json = new StreamSource(new StringReader( + resultsArray.getJSONObject(i).getJSONObject("model-ver").toString())); // Getting the ModelVer pojo again from the json ModelVer modelVer = this.getAaiObject(json, ModelVer.class); @@ -184,12 +187,8 @@ public class AaiCqResponse { } - - } - - private <T> T getAaiObject(StreamSource json, final Class<T> classOfResponse) { try { return unmarshaller.unmarshal(json, classOfResponse).getValue(); @@ -210,7 +209,8 @@ public class AaiCqResponse { /** * Get list of A&AI objects in the custom query. * - * @param classOfResponse Class of the type of A&AI objects to be returned + * @param classOfResponse + * Class of the type of A&AI objects to be returned * @return List A&AI objects matching the class */ @SuppressWarnings("unchecked") @@ -289,11 +289,11 @@ public class AaiCqResponse { } - /** * Returns a generic Vnf matching vnf name. * - * @param vnfName Name of the vnf to match + * @param vnfName + * Name of the vnf to match * @return generic Vnf */ public GenericVnf getGenericVnfByVnfName(String vnfName) { @@ -318,7 +318,8 @@ public class AaiCqResponse { /** * Returns a generic Vnf matching model invariant ID. * - * @param modelInvariantId Name of the vnf to match + * @param modelInvariantId + * Name of the vnf to match * @return generic Vnf */ public GenericVnf getGenericVnfByModelInvariantId(String modelInvariantId) { @@ -340,11 +341,11 @@ public class AaiCqResponse { } - /** * Returns a generic Vnf of a given VF Module ID. * - * @param vfModuleModelInvariantId of the vf module for which vnf is to be returned + * @param vfModuleModelInvariantId + * of the vf module for which vnf is to be returned * @return generic Vnf */ public GenericVnf getGenericVnfByVfModuleModelInvariantId(String vfModuleModelInvariantId) { @@ -354,7 +355,7 @@ public class AaiCqResponse { // Iterate through all the vfModules of that generic Vnf for (VfModule vfMod : genVnf.getVfModules().getVfModule()) { if (vfMod.getModelInvariantId() != null - && vfMod.getModelInvariantId().equals(vfModuleModelInvariantId)) { + && vfMod.getModelInvariantId().equals(vfModuleModelInvariantId)) { return genVnf; } } @@ -362,8 +363,6 @@ public class AaiCqResponse { return null; } - - /** * Get the generic vnf associated with the vserver in the custom query. * @@ -382,7 +381,8 @@ public class AaiCqResponse { String genericVnfId = ""; List<RelationshipData> relationshipData = null; - // Iterate through the list of relationships and get generic vnf relationship data + // Iterate through the list of relationships and get generic vnf + // relationship data for (Relationship r : relations) { // Get the name of generic-vnf related to this server if (GENERIC_VNF.equals(r.getRelatedTo())) { @@ -410,7 +410,6 @@ public class AaiCqResponse { return genericVnf; } - /** * Get Vf Module associated with the vserver in the custom query. * @@ -430,7 +429,8 @@ public class AaiCqResponse { String vfModuleId = ""; List<RelationshipData> relationshipData = null; - // Iterate through the list of relationships and get vf module relationship data + // Iterate through the list of relationships and get vf module + // relationship data for (Relationship r : relations) { // Get relationship data of vfmodule related to this server if (VF_MODULE.equals(r.getRelatedTo())) { @@ -461,7 +461,6 @@ public class AaiCqResponse { return vfModule; } - /** * Get vf modules in the custom query. * @@ -494,7 +493,6 @@ public class AaiCqResponse { return vfModule; } - /** * Get Vf Module matching a specific VF model invariant ID. * @@ -504,7 +502,8 @@ public class AaiCqResponse { VfModule vfModule = null; for (VfModule vfMod : this.getAllVfModules()) { - if (vfMod.getModelInvariantId() != null && vfModelInvariantId.equals(vfMod.getModelInvariantId())) { + if (vfMod.getModelInvariantId() != null + && vfModelInvariantId.equals(vfMod.getModelInvariantId())) { vfModule = vfMod; } @@ -543,8 +542,6 @@ public class AaiCqResponse { return modelVerList; } - - /** * Get ModelVer matching a specific version id. * @@ -562,5 +559,32 @@ public class AaiCqResponse { return modelVer; } -} + /** + * Get the count of vfModules matching customizationId, InvariantId and + * VersionId. + * + * @param custId + * ModelCustomizationId + * @param invId + * ModelInvariantId + * @param verId + * ModelVersionId + * @return Returns the count of vf modules + */ + public int getVfModuleCount(String custId, String invId, String verId) { + List<VfModule> vfModuleList = this.getAllVfModules(); + int count = 0; + for (VfModule vfModule : vfModuleList) { + if (vfModule.getModelCustomizationId() != null && vfModule.getModelInvariantId() != null + && vfModule.getModelVersionId() != null) { + if (vfModule.getModelCustomizationId().equals(custId) + && vfModule.getModelInvariantId().equals(invId) + && vfModule.getModelVersionId().equals(verId)) { + count = count + 1; + } + } + } + return count; + } +} 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 index 8335ce80b..c128fb318 100644 --- 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 @@ -43,8 +43,8 @@ public class AaiCqResponseTest { private static final String ETE_VFMODULE = "Vfmodule_Ete_vFWCLvFWSNK_7ba1fbde_0"; private static final String ETE_VNF = "Ete_vFWCLvFWSNK_7ba1fbde_0"; private static final Logger LOGGER = LoggerFactory.getLogger(AaiCqResponseTest.class); - private static final String CQ_RESPONSE_SAMPLE = "src/test/resources/org/onap/policy/aai/AaiCqResponseFull.json"; - + private static final String CQ_RESPONSE_SAMPLE = + "src/test/resources/org/onap/policy/aai/AaiCqResponseFull.json"; @Test public void testConstructor() throws Exception { @@ -68,8 +68,9 @@ public class AaiCqResponseTest { */ String responseString = ""; - responseString = new String(Files - .readAllBytes(new File("src/test/resources/org/onap/policy/aai/AaiMalformedCqResponse.json").toPath())); + responseString = new String(Files.readAllBytes( + new File("src/test/resources/org/onap/policy/aai/AaiMalformedCqResponse.json") + .toPath())); AaiCqResponse aaiCqResponse; aaiCqResponse = new AaiCqResponse(responseString); @@ -77,7 +78,6 @@ public class AaiCqResponseTest { assertNull(aaiObj); } - } @Test @@ -108,7 +108,8 @@ public class AaiCqResponseTest { aaiCqResponse = new AaiCqResponse(responseString); ServiceInstance si = aaiCqResponse.getServiceInstance(); assertNotNull(si); - assertEquals("Service_Ete_Name7ba1fbde-6187-464a-a62d-d9dd25bdf4e8", si.getServiceInstanceName()); + assertEquals("Service_Ete_Name7ba1fbde-6187-464a-a62d-d9dd25bdf4e8", + si.getServiceInstanceName()); LOGGER.info(si.getServiceInstanceName()); } @@ -140,8 +141,6 @@ public class AaiCqResponseTest { LOGGER.info(tenant.getTenantId()); } - - @Test public void testGetGenericVnfs() throws Exception { @@ -158,8 +157,6 @@ public class AaiCqResponseTest { } - - @Test public void testGetDefaultGenericVnf() throws Exception { @@ -189,7 +186,6 @@ public class AaiCqResponseTest { LOGGER.info(genVnf.getVnfId()); } - @Test public void testGetGenericVnfByModelInvariantId() throws Exception { @@ -198,13 +194,13 @@ public class AaiCqResponseTest { AaiCqResponse aaiCqResponse; aaiCqResponse = new AaiCqResponse(responseString); - GenericVnf genVnf = aaiCqResponse.getGenericVnfByModelInvariantId("9a243c47-fd5f-43d1-bd2a-f17bd12a61f2"); + GenericVnf genVnf = + aaiCqResponse.getGenericVnfByModelInvariantId("9a243c47-fd5f-43d1-bd2a-f17bd12a61f2"); assertNotNull(genVnf); assertEquals("9a243c47-fd5f-43d1-bd2a-f17bd12a61f2", genVnf.getModelInvariantId()); LOGGER.info(genVnf.getModelInvariantId()); } - @Test public void testGetGenericVnfByVfModuleModelInvariantId() throws Exception { @@ -213,15 +209,13 @@ public class AaiCqResponseTest { AaiCqResponse aaiCqResponse; aaiCqResponse = new AaiCqResponse(responseString); - GenericVnf genVnf = - aaiCqResponse.getGenericVnfByVfModuleModelInvariantId("e6130d03-56f1-4b0a-9a1d-e1b2ebc30e0e"); + GenericVnf genVnf = aaiCqResponse + .getGenericVnfByVfModuleModelInvariantId("e6130d03-56f1-4b0a-9a1d-e1b2ebc30e0e"); assertNotNull(genVnf); assertEquals(ETE_VNF, genVnf.getVnfName()); LOGGER.info(genVnf.getVnfName()); } - - @Test public void testGetAllVfModules() throws Exception { @@ -238,7 +232,6 @@ public class AaiCqResponseTest { } - @Test public void testGetVfModuleByVfModuleName() throws Exception { @@ -252,7 +245,6 @@ public class AaiCqResponseTest { assertEquals(ETE_VFMODULE, vfModule.getVfModuleName()); LOGGER.info(vfModule.getVfModuleName()); - } @Test @@ -263,12 +255,12 @@ public class AaiCqResponseTest { AaiCqResponse aaiCqResponse; aaiCqResponse = new AaiCqResponse(responseString); - VfModule vfModule = aaiCqResponse.getVfModuleByVfModelInvariantId("e6130d03-56f1-4b0a-9a1d-e1b2ebc30e0e"); + VfModule vfModule = + aaiCqResponse.getVfModuleByVfModelInvariantId("e6130d03-56f1-4b0a-9a1d-e1b2ebc30e0e"); assertNotNull(vfModule); assertEquals(ETE_VFMODULE, vfModule.getVfModuleName()); LOGGER.info(vfModule.getVfModuleName()); - } @Test @@ -324,18 +316,29 @@ public class AaiCqResponseTest { AaiCqResponse aaiCqResponse; aaiCqResponse = new AaiCqResponse(responseString); - ModelVer modelVer = aaiCqResponse.getModelVerByVersionId("189a5070-3bd5-45ac-8a1d-c84ca40b277b"); + ModelVer modelVer = + aaiCqResponse.getModelVerByVersionId("189a5070-3bd5-45ac-8a1d-c84ca40b277b"); assertNotNull(modelVer); assertEquals("vFWCL_vFWSNK bbefb8ce-2bde", modelVer.getModelName()); LOGGER.info(modelVer.getModelName()); } + @Test + public void testGetVfModuleCount() throws Exception { + String responseString = + new String(Files.readAllBytes(new File(CQ_RESPONSE_SAMPLE).toPath())); + AaiCqResponse aaiCqResponse; + aaiCqResponse = new AaiCqResponse(responseString); + int count = aaiCqResponse.getVfModuleCount("47958575-138f-452a-8c8d-d89b595f8164", + "e6130d03-56f1-4b0a-9a1d-e1b2ebc30e0e", "94b18b1d-cc91-4f43-911a-e6348665f292"); + assertEquals(1, count); + } /** - * Aai Cq sample response. - * - * @return String return response + * Provides sample CQ response. + * + * @return a CQ response * @throws Exception file read exception */ public String getAaiCqResponse() throws Exception { 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 deleted file mode 100644 index 63d6f79ac..000000000 --- a/models-interactions/model-impl/aai/src/test/resources/org/onap/policy/aai/AaiCqResponse.json +++ /dev/null @@ -1,673 +0,0 @@ -{ - "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" - } - ] - } - } - } - ] -} |