From 9641684f3084e3e6a0ce8b8594258c25c1092c2d Mon Sep 17 00:00:00 2001 From: "Hockla, Ali (ah999m)" Date: Tue, 5 Sep 2017 14:01:04 -0500 Subject: Added changes for vDNS Use Case - MSO Interface Rebased and fixed merge conflicts Issue-ID: POLICY-102 Change-Id: Icc36a2cf6391aa9137593bc04f0d4543798b7ccd Signed-off-by: Ali Hockla Signed-off-by: Hockla, Ali (ah999m) Signed-off-by: HOCKLA Signed-off-by: Hockla, Ali (ah999m) --- .../ControlLoopDemo__closedLoopControlName__.drl | 84 +++++------ .../policy/template/demo/TestFirewallDemo.java | 2 +- .../org/onap/policy/template/demo/TestMSO.java | 163 --------------------- .../java/org/onap/policy/template/demo/TestSO.java | 163 +++++++++++++++++++++ 4 files changed, 206 insertions(+), 206 deletions(-) delete mode 100644 controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestMSO.java create mode 100644 controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestSO.java (limited to 'controlloop/templates/template.demo.v1.0.0') diff --git a/controlloop/templates/template.demo.v1.0.0/template.demo/src/main/resources/archetype-resources/src/main/resources/ControlLoopDemo__closedLoopControlName__.drl b/controlloop/templates/template.demo.v1.0.0/template.demo/src/main/resources/archetype-resources/src/main/resources/ControlLoopDemo__closedLoopControlName__.drl index 2f1155e56..493c8581c 100644 --- a/controlloop/templates/template.demo.v1.0.0/template.demo/src/main/resources/archetype-resources/src/main/resources/ControlLoopDemo__closedLoopControlName__.drl +++ b/controlloop/templates/template.demo.v1.0.0/template.demo/src/main/resources/archetype-resources/src/main/resources/ControlLoopDemo__closedLoopControlName__.drl @@ -66,17 +66,17 @@ import org.onap.policy.vnf.trafficgenerator.PGRequest; import org.onap.policy.vnf.trafficgenerator.PGStream; import org.onap.policy.vnf.trafficgenerator.PGStreams; -import org.onap.policy.mso.MSOManager; -import org.onap.policy.mso.MSORequest; -import org.onap.policy.mso.MSORequestStatus; -import org.onap.policy.mso.MSORequestDetails; -import org.onap.policy.mso.MSOModelInfo; -import org.onap.policy.mso.MSOCloudConfiguration; -import org.onap.policy.mso.MSORequestInfo; -import org.onap.policy.mso.MSORequestParameters; -import org.onap.policy.mso.MSORelatedInstanceListElement; -import org.onap.policy.mso.MSORelatedInstance; -import org.onap.policy.mso.MSOResponse; +import org.onap.policy.mso.SOManager; +import org.onap.policy.mso.SORequest; +import org.onap.policy.mso.SORequestStatus; +import org.onap.policy.mso.SORequestDetails; +import org.onap.policy.mso.SOModelInfo; +import org.onap.policy.mso.SOCloudConfiguration; +import org.onap.policy.mso.SORequestInfo; +import org.onap.policy.mso.SORequestParameters; +import org.onap.policy.mso.SORelatedInstanceListElement; +import org.onap.policy.mso.SORelatedInstance; +import org.onap.policy.mso.SOResponse; // @@ -638,7 +638,7 @@ end /* * -* This rule happens when we got a valid AAI response. We can start sending request to APPC or MSO now. +* This rule happens when we got a valid AAI response. We can start sending request to APPC or SO now. * */ rule "${policyName}.EVENT.MANAGER.AAINQF199RESPONSE" @@ -880,7 +880,7 @@ rule "${policyName}.EVENT.MANAGER.AAINQF199RESPONSE" } } break; - case "MSO": + case "SO": { // // Construct an operation @@ -894,14 +894,14 @@ rule "${policyName}.EVENT.MANAGER.AAINQF199RESPONSE" // ControlLoopOperationWrapper operationWrapper = new ControlLoopOperationWrapper($event.requestID, operation); // - // Construct an MSO request + // Construct an SO request // - MSORequest request = new MSORequest(); - request.requestDetails = new MSORequestDetails(); - request.requestDetails.modelInfo = new MSOModelInfo(); - request.requestDetails.cloudConfiguration = new MSOCloudConfiguration(); - request.requestDetails.requestInfo = new MSORequestInfo(); - request.requestDetails.requestParameters = new MSORequestParameters(); + SORequest request = new SORequest(); + request.requestDetails = new SORequestDetails(); + request.requestDetails.modelInfo = new SOModelInfo(); + request.requestDetails.cloudConfiguration = new SOCloudConfiguration(); + request.requestDetails.requestInfo = new SORequestInfo(); + request.requestDetails.requestParameters = new SORequestParameters(); request.requestDetails.requestParameters.userParams = null; // // cloudConfiguration @@ -925,13 +925,13 @@ rule "${policyName}.EVENT.MANAGER.AAINQF199RESPONSE" // // relatedInstanceList // - MSORelatedInstanceListElement relatedInstanceListElement1 = new MSORelatedInstanceListElement(); - MSORelatedInstanceListElement relatedInstanceListElement2 = new MSORelatedInstanceListElement(); - relatedInstanceListElement1.relatedInstance = new MSORelatedInstance(); - relatedInstanceListElement2.relatedInstance = new MSORelatedInstance(); + SORelatedInstanceListElement relatedInstanceListElement1 = new SORelatedInstanceListElement(); + SORelatedInstanceListElement relatedInstanceListElement2 = new SORelatedInstanceListElement(); + relatedInstanceListElement1.relatedInstance = new SORelatedInstance(); + relatedInstanceListElement2.relatedInstance = new SORelatedInstance(); // relatedInstanceListElement1.relatedInstance.instanceId = serviceItemServiceInstanceId; - relatedInstanceListElement1.relatedInstance.modelInfo = new MSOModelInfo(); + relatedInstanceListElement1.relatedInstance.modelInfo = new SOModelInfo(); relatedInstanceListElement1.relatedInstance.modelInfo.modelType = "service"; relatedInstanceListElement1.relatedInstance.modelInfo.modelInvariantId = serviceItemPersonaModelId; relatedInstanceListElement1.relatedInstance.modelInfo.modelNameVersionId = serviceItemModelNameVersionId; @@ -939,7 +939,7 @@ rule "${policyName}.EVENT.MANAGER.AAINQF199RESPONSE" relatedInstanceListElement1.relatedInstance.modelInfo.modelVersion = serviceItemModelVersion; // relatedInstanceListElement2.relatedInstance.instanceId = vnfItemVnfId; - relatedInstanceListElement2.relatedInstance.modelInfo = new MSOModelInfo(); + relatedInstanceListElement2.relatedInstance.modelInfo = new SOModelInfo(); relatedInstanceListElement2.relatedInstance.modelInfo.modelType = "vnf"; relatedInstanceListElement2.relatedInstance.modelInfo.modelInvariantId = vnfItemPersonaModelId; relatedInstanceListElement2.relatedInstance.modelInfo.modelNameVersionId = vnfItemModelNameVersionId; @@ -950,9 +950,9 @@ rule "${policyName}.EVENT.MANAGER.AAINQF199RESPONSE" request.requestDetails.relatedInstanceList.add(relatedInstanceListElement1); request.requestDetails.relatedInstanceList.add(relatedInstanceListElement2); // - // print MSO request for debug + // print SO request for debug // - System.out.println("MSO request sent:"); + System.out.println("SO request sent:"); System.out.println(Serialization.gsonPretty.toJson(request)); // // @@ -977,22 +977,22 @@ rule "${policyName}.EVENT.MANAGER.AAINQF199RESPONSE" // // Concatenate serviceItemServiceInstanceId and vnfItemVnfId to msoURL // - String MSOUrl = $params.getMsoURL() + "/serviceInstances/v2/" + serviceItemServiceInstanceId + "/vnfs/" + vnfItemVnfId + "/vfModules"; + String SOUrl = $params.getMsoURL() + "/serviceInstances/v2/" + serviceItemServiceInstanceId + "/vnfs/" + vnfItemVnfId + "/vfModules"; // - // Call MSO + // Call SO // - MSOResponse response = MSOManager.createModuleInstance(MSOUrl, $params.getMsoURL(), $params.getMsoUsername(), $params.getMsoPassword(), request); + SOResponse response = SOManager.createModuleInstance(SOUrl, $params.getMsoURL(), $params.getMsoUsername(), $params.getMsoPassword(), request); ////////////////////////////////////////////////////////// - // Simulate a valid MSOResponse for junit test + // Simulate a valid SOResponse for junit test // Remove this for real deployment // - response = new MSOResponse(); - response.request = new MSORequest(); - response.request.requestStatus = new MSORequestStatus(); + response = new SOResponse(); + response.request = new SORequest(); + response.request.requestStatus = new SORequestStatus(); response.request.requestStatus.requestState = "COMPLETE"; ////////////////////////////////////////////////////////// @@ -1014,7 +1014,7 @@ rule "${policyName}.EVENT.MANAGER.AAINQF199RESPONSE" insert(response); } else { // - // MSO request not even accepted + // SO request not even accepted // notification.message = operationWrapper.operation.toMessage(); operationWrapper.operation.message = operationWrapper.operation.toMessage(); @@ -1047,7 +1047,7 @@ rule "${policyName}.EVENT.MANAGER.AAINQF199RESPONSE" retract($manager); } } else { - System.err.println("constructed MSO request is invalid."); + System.err.println("constructed SO request is invalid."); } } break; @@ -1199,19 +1199,19 @@ end /* * -* This rule responds to MSO Response Events +* This rule responds to SO Response Events * */ -rule "${policyName}.MSO.RESPONSE" +rule "${policyName}.SO.RESPONSE" when $params : Params( getClosedLoopControlName() == "${closedLoopControlName}" ) $event : VirtualControlLoopEvent( closedLoopControlName == $params.getClosedLoopControlName(), closedLoopEventStatus == ControlLoopEventStatus.ONSET ) $manager : ControlLoopEventManager( closedLoopControlName == $event.closedLoopControlName ) $operationWrapper : ControlLoopOperationWrapper( requestID == $event.requestID ) - $request : MSORequest( requestId == $event.requestID.toString() ) - $response : MSOResponse( request.requestId == $event.requestID.toString() ) + $request : SORequest( requestId == $event.requestID.toString() ) + $response : SOResponse( request.requestId == $event.requestID.toString() ) then - System.out.println("rule MSO.RESPONSE is triggered."); + System.out.println("rule SO.RESPONSE is triggered."); // // Construct notification // diff --git a/controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestFirewallDemo.java b/controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestFirewallDemo.java index 2cfead157..825c69b50 100644 --- a/controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestFirewallDemo.java +++ b/controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestFirewallDemo.java @@ -68,7 +68,7 @@ public class TestFirewallDemo { "type=operational", "myFirewallDemoPolicy", "v1.0", - "MSO", + "SO", "http://localhost:8080/TestREST/Test", "POLICY", "POLICY", diff --git a/controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestMSO.java b/controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestMSO.java deleted file mode 100644 index fab0961c5..000000000 --- a/controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestMSO.java +++ /dev/null @@ -1,163 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * demo - * ================================================================================ - * Copyright (C) 2017 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.template.demo; - -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.util.UUID; - -import org.junit.Test; -import org.onap.policy.mso.MSOCloudConfiguration; -import org.onap.policy.mso.MSOModelInfo; -import org.onap.policy.mso.MSORelatedInstance; -import org.onap.policy.mso.MSORelatedInstanceListElement; -import org.onap.policy.mso.MSORequest; -import org.onap.policy.mso.MSORequestDetails; -import org.onap.policy.mso.MSORequestInfo; -import org.onap.policy.mso.MSORequestParameters; -import org.onap.policy.aai.AAINQF199.AAINQF199Response; -import org.onap.policy.aai.AAINQF199.AAINQF199ResponseWrapper; -import org.onap.policy.mso.util.Serialization; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.gson.Gson; -import com.google.gson.stream.JsonReader; - -public class TestMSO { - - private static final Logger logger = LoggerFactory.getLogger(TestMSO.class); - - @Test - public void test() throws FileNotFoundException { - Gson gson = new Gson(); - JsonReader reader = new JsonReader(new FileReader("src/test/resources/aairesponse.json")); - AAINQF199Response response = gson.fromJson(reader, AAINQF199Response.class); - - logger.debug(Serialization.gsonPretty.toJson(response)); - - AAINQF199ResponseWrapper aainqf199ResponseWrapper = new AAINQF199ResponseWrapper(UUID.randomUUID(), response); - - // - // - // vnfItem - // - String vnfItemVnfId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfID; - String vnfItemVnfType = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfType; - vnfItemVnfType = vnfItemVnfType.substring(vnfItemVnfType.lastIndexOf("/")+1); - String vnfItemPersonaModelId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.personaModelId; - String vnfItemPersonaModelVersion = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.personaModelVersion; - String vnfItemModelName = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue; - String vnfItemModelNameVersionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue; - // - // serviceItem - // - String serviceItemServiceInstanceId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.serviceInstanceID; - String serviceItemPersonaModelId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.personaModelId; - String serviceItemModelName = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue; - String serviceItemModelVersion = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.personaModelVersion; - String serviceItemModelNameVersionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue; - // - // This comes from the base module - // - String vfModuleItemVfModuleName = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).vfModule.vfModuleName; - vfModuleItemVfModuleName = vfModuleItemVfModuleName.replace("Vfmodule", "vDNS"); - // - // vfModuleItem - NOT the base module - // - String vfModuleItemPersonaModelId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).vfModule.personaModelId; - String vfModuleItemPersonaModelVersion = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).vfModule.personaModelVersion; - String vfModuleItemModelName = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).extraProperties.extraProperty.get(0).propertyValue; - String vfModuleItemModelNameVersionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).extraProperties.extraProperty.get(4).propertyValue; - - // - // tenantItem - // - String tenantItemTenantId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).tenant.tenantId; - // - // cloudRegionItem - // - String cloudRegionItemCloudRegionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).items.inventoryResponseItems.get(0).cloudRegion.cloudRegionId; - - // - // Construct an MSO request - // - MSORequest request = new MSORequest(); - request.requestDetails = new MSORequestDetails(); - request.requestDetails.modelInfo = new MSOModelInfo(); - request.requestDetails.cloudConfiguration = new MSOCloudConfiguration(); - request.requestDetails.requestInfo = new MSORequestInfo(); - request.requestDetails.requestParameters = new MSORequestParameters(); - request.requestDetails.requestParameters.userParams = null; - // - // cloudConfiguration - // - request.requestDetails.cloudConfiguration.lcpCloudRegionId = cloudRegionItemCloudRegionId; - request.requestDetails.cloudConfiguration.tenantId = tenantItemTenantId; - // - // modelInfo - // - request.requestDetails.modelInfo.modelType = "vfModule"; - request.requestDetails.modelInfo.modelInvariantId = vfModuleItemPersonaModelId; - request.requestDetails.modelInfo.modelNameVersionId = vfModuleItemModelNameVersionId; - request.requestDetails.modelInfo.modelName = vfModuleItemModelName; - request.requestDetails.modelInfo.modelVersion = vfModuleItemPersonaModelVersion; - // - // requestInfo - // - request.requestDetails.requestInfo.instanceName = vfModuleItemVfModuleName; - request.requestDetails.requestInfo.source = "POLICY"; - request.requestDetails.requestInfo.suppressRollback = false; - // - // relatedInstanceList - // - MSORelatedInstanceListElement relatedInstanceListElement1 = new MSORelatedInstanceListElement(); - MSORelatedInstanceListElement relatedInstanceListElement2 = new MSORelatedInstanceListElement(); - relatedInstanceListElement1.relatedInstance = new MSORelatedInstance(); - relatedInstanceListElement2.relatedInstance = new MSORelatedInstance(); - // - relatedInstanceListElement1.relatedInstance.instanceId = serviceItemServiceInstanceId; - relatedInstanceListElement1.relatedInstance.modelInfo = new MSOModelInfo(); - relatedInstanceListElement1.relatedInstance.modelInfo.modelType = "service"; - relatedInstanceListElement1.relatedInstance.modelInfo.modelInvariantId = serviceItemPersonaModelId; - relatedInstanceListElement1.relatedInstance.modelInfo.modelNameVersionId = serviceItemModelNameVersionId; - relatedInstanceListElement1.relatedInstance.modelInfo.modelName = serviceItemModelName; - relatedInstanceListElement1.relatedInstance.modelInfo.modelVersion = serviceItemModelVersion; - // - relatedInstanceListElement2.relatedInstance.instanceId = vnfItemVnfId; - relatedInstanceListElement2.relatedInstance.modelInfo = new MSOModelInfo(); - relatedInstanceListElement2.relatedInstance.modelInfo.modelType = "vnf"; - relatedInstanceListElement2.relatedInstance.modelInfo.modelInvariantId = vnfItemPersonaModelId; - relatedInstanceListElement2.relatedInstance.modelInfo.modelNameVersionId = vnfItemModelNameVersionId; - relatedInstanceListElement2.relatedInstance.modelInfo.modelName = vnfItemModelName; - relatedInstanceListElement2.relatedInstance.modelInfo.modelVersion = vnfItemPersonaModelVersion; - relatedInstanceListElement2.relatedInstance.modelInfo.modelCustomizationName = vnfItemVnfType; - // - request.requestDetails.relatedInstanceList.add(relatedInstanceListElement1); - request.requestDetails.relatedInstanceList.add(relatedInstanceListElement2); - // - // print MSO request for debug - // - logger.debug("MSO request sent:"); - logger.debug(Serialization.gsonPretty.toJson(request)); - } - -} diff --git a/controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestSO.java b/controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestSO.java new file mode 100644 index 000000000..6f79c6a74 --- /dev/null +++ b/controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestSO.java @@ -0,0 +1,163 @@ +/*- + * ============LICENSE_START======================================================= + * demo + * ================================================================================ + * Copyright (C) 2017 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.template.demo; + +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.util.UUID; + +import org.junit.Test; +import org.onap.policy.mso.SOCloudConfiguration; +import org.onap.policy.mso.SOModelInfo; +import org.onap.policy.mso.SORelatedInstance; +import org.onap.policy.mso.SORelatedInstanceListElement; +import org.onap.policy.mso.SORequest; +import org.onap.policy.mso.SORequestDetails; +import org.onap.policy.mso.SORequestInfo; +import org.onap.policy.mso.SORequestParameters; +import org.onap.policy.aai.AAINQF199.AAINQF199Response; +import org.onap.policy.aai.AAINQF199.AAINQF199ResponseWrapper; +import org.onap.policy.mso.util.Serialization; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.gson.Gson; +import com.google.gson.stream.JsonReader; + +public class TestSO { + + private static final Logger logger = LoggerFactory.getLogger(TestSO.class); + + @Test + public void test() throws FileNotFoundException { + Gson gson = new Gson(); + JsonReader reader = new JsonReader(new FileReader("src/test/resources/aairesponse.json")); + AAINQF199Response response = gson.fromJson(reader, AAINQF199Response.class); + + logger.debug(Serialization.gsonPretty.toJson(response)); + + AAINQF199ResponseWrapper aainqf199ResponseWrapper = new AAINQF199ResponseWrapper(UUID.randomUUID(), response); + + // + // + // vnfItem + // + String vnfItemVnfId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfID; + String vnfItemVnfType = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfType; + vnfItemVnfType = vnfItemVnfType.substring(vnfItemVnfType.lastIndexOf("/")+1); + String vnfItemPersonaModelId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.personaModelId; + String vnfItemPersonaModelVersion = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.personaModelVersion; + String vnfItemModelName = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue; + String vnfItemModelNameVersionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue; + // + // serviceItem + // + String serviceItemServiceInstanceId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.serviceInstanceID; + String serviceItemPersonaModelId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.personaModelId; + String serviceItemModelName = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue; + String serviceItemModelVersion = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.personaModelVersion; + String serviceItemModelNameVersionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue; + // + // This comes from the base module + // + String vfModuleItemVfModuleName = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).vfModule.vfModuleName; + vfModuleItemVfModuleName = vfModuleItemVfModuleName.replace("Vfmodule", "vDNS"); + // + // vfModuleItem - NOT the base module + // + String vfModuleItemPersonaModelId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).vfModule.personaModelId; + String vfModuleItemPersonaModelVersion = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).vfModule.personaModelVersion; + String vfModuleItemModelName = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).extraProperties.extraProperty.get(0).propertyValue; + String vfModuleItemModelNameVersionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).extraProperties.extraProperty.get(4).propertyValue; + + // + // tenantItem + // + String tenantItemTenantId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).tenant.tenantId; + // + // cloudRegionItem + // + String cloudRegionItemCloudRegionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).items.inventoryResponseItems.get(0).cloudRegion.cloudRegionId; + + // + // Construct an SO request + // + SORequest request = new SORequest(); + request.requestDetails = new SORequestDetails(); + request.requestDetails.modelInfo = new SOModelInfo(); + request.requestDetails.cloudConfiguration = new SOCloudConfiguration(); + request.requestDetails.requestInfo = new SORequestInfo(); + request.requestDetails.requestParameters = new SORequestParameters(); + request.requestDetails.requestParameters.userParams = null; + // + // cloudConfiguration + // + request.requestDetails.cloudConfiguration.lcpCloudRegionId = cloudRegionItemCloudRegionId; + request.requestDetails.cloudConfiguration.tenantId = tenantItemTenantId; + // + // modelInfo + // + request.requestDetails.modelInfo.modelType = "vfModule"; + request.requestDetails.modelInfo.modelInvariantId = vfModuleItemPersonaModelId; + request.requestDetails.modelInfo.modelNameVersionId = vfModuleItemModelNameVersionId; + request.requestDetails.modelInfo.modelName = vfModuleItemModelName; + request.requestDetails.modelInfo.modelVersion = vfModuleItemPersonaModelVersion; + // + // requestInfo + // + request.requestDetails.requestInfo.instanceName = vfModuleItemVfModuleName; + request.requestDetails.requestInfo.source = "POLICY"; + request.requestDetails.requestInfo.suppressRollback = false; + // + // relatedInstanceList + // + SORelatedInstanceListElement relatedInstanceListElement1 = new SORelatedInstanceListElement(); + SORelatedInstanceListElement relatedInstanceListElement2 = new SORelatedInstanceListElement(); + relatedInstanceListElement1.relatedInstance = new SORelatedInstance(); + relatedInstanceListElement2.relatedInstance = new SORelatedInstance(); + // + relatedInstanceListElement1.relatedInstance.instanceId = serviceItemServiceInstanceId; + relatedInstanceListElement1.relatedInstance.modelInfo = new SOModelInfo(); + relatedInstanceListElement1.relatedInstance.modelInfo.modelType = "service"; + relatedInstanceListElement1.relatedInstance.modelInfo.modelInvariantId = serviceItemPersonaModelId; + relatedInstanceListElement1.relatedInstance.modelInfo.modelNameVersionId = serviceItemModelNameVersionId; + relatedInstanceListElement1.relatedInstance.modelInfo.modelName = serviceItemModelName; + relatedInstanceListElement1.relatedInstance.modelInfo.modelVersion = serviceItemModelVersion; + // + relatedInstanceListElement2.relatedInstance.instanceId = vnfItemVnfId; + relatedInstanceListElement2.relatedInstance.modelInfo = new SOModelInfo(); + relatedInstanceListElement2.relatedInstance.modelInfo.modelType = "vnf"; + relatedInstanceListElement2.relatedInstance.modelInfo.modelInvariantId = vnfItemPersonaModelId; + relatedInstanceListElement2.relatedInstance.modelInfo.modelNameVersionId = vnfItemModelNameVersionId; + relatedInstanceListElement2.relatedInstance.modelInfo.modelName = vnfItemModelName; + relatedInstanceListElement2.relatedInstance.modelInfo.modelVersion = vnfItemPersonaModelVersion; + relatedInstanceListElement2.relatedInstance.modelInfo.modelCustomizationName = vnfItemVnfType; + // + request.requestDetails.relatedInstanceList.add(relatedInstanceListElement1); + request.requestDetails.relatedInstanceList.add(relatedInstanceListElement2); + // + // print SO request for debug + // + logger.debug("SO request sent:"); + logger.debug(Serialization.gsonPretty.toJson(request)); + } + +} -- cgit 1.2.3-korg