2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.template.demo;
23 import java.io.FileNotFoundException;
24 import java.io.FileReader;
25 import java.util.UUID;
27 import org.junit.Test;
28 import org.onap.policy.mso.MSOCloudConfiguration;
29 import org.onap.policy.mso.MSOModelInfo;
30 import org.onap.policy.mso.MSORelatedInstance;
31 import org.onap.policy.mso.MSORelatedInstanceListElement;
32 import org.onap.policy.mso.MSORequest;
33 import org.onap.policy.mso.MSORequestDetails;
34 import org.onap.policy.mso.MSORequestInfo;
35 import org.onap.policy.mso.MSORequestParameters;
36 import org.onap.policy.aai.AAINQF199.AAINQF199Response;
37 import org.onap.policy.aai.AAINQF199.AAINQF199ResponseWrapper;
38 import org.onap.policy.mso.util.Serialization;
40 import com.google.gson.Gson;
41 import com.google.gson.stream.JsonReader;
43 public class TestMSO {
46 public void test() throws FileNotFoundException {
47 Gson gson = new Gson();
48 JsonReader reader = new JsonReader(new FileReader("src/test/resources/aairesponse.json"));
49 AAINQF199Response response = gson.fromJson(reader, AAINQF199Response.class);
51 System.out.println(Serialization.gsonPretty.toJson(response));
53 AAINQF199ResponseWrapper aainqf199ResponseWrapper = new AAINQF199ResponseWrapper(UUID.randomUUID(), response);
59 String vnfItemVnfId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfID;
60 String vnfItemVnfType = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfType;
61 vnfItemVnfType = vnfItemVnfType.substring(vnfItemVnfType.lastIndexOf("/")+1);
62 String vnfItemPersonaModelId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.personaModelId;
63 String vnfItemPersonaModelVersion = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.personaModelVersion;
64 String vnfItemModelName = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue;
65 String vnfItemModelNameVersionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue;
69 String serviceItemServiceInstanceId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.serviceInstanceID;
70 String serviceItemPersonaModelId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.personaModelId;
71 String serviceItemModelName = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue;
72 String serviceItemModelVersion = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.personaModelVersion;
73 String serviceItemModelNameVersionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue;
75 // This comes from the base module
77 String vfModuleItemVfModuleName = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).vfModule.vfModuleName;
78 vfModuleItemVfModuleName = vfModuleItemVfModuleName.replace("Vfmodule", "vDNS");
80 // vfModuleItem - NOT the base module
82 String vfModuleItemPersonaModelId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).vfModule.personaModelId;
83 String vfModuleItemPersonaModelVersion = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).vfModule.personaModelVersion;
84 String vfModuleItemModelName = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).extraProperties.extraProperty.get(0).propertyValue;
85 String vfModuleItemModelNameVersionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).extraProperties.extraProperty.get(4).propertyValue;
90 String tenantItemTenantId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).tenant.tenantId;
94 String cloudRegionItemCloudRegionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).items.inventoryResponseItems.get(0).cloudRegion.cloudRegionId;
97 // Construct an MSO request
99 MSORequest request = new MSORequest();
100 request.requestDetails = new MSORequestDetails();
101 request.requestDetails.modelInfo = new MSOModelInfo();
102 request.requestDetails.cloudConfiguration = new MSOCloudConfiguration();
103 request.requestDetails.requestInfo = new MSORequestInfo();
104 request.requestDetails.requestParameters = new MSORequestParameters();
105 request.requestDetails.requestParameters.userParams = null;
107 // cloudConfiguration
109 request.requestDetails.cloudConfiguration.lcpCloudRegionId = cloudRegionItemCloudRegionId;
110 request.requestDetails.cloudConfiguration.tenantId = tenantItemTenantId;
114 request.requestDetails.modelInfo.modelType = "vfModule";
115 request.requestDetails.modelInfo.modelInvariantId = vfModuleItemPersonaModelId;
116 request.requestDetails.modelInfo.modelNameVersionId = vfModuleItemModelNameVersionId;
117 request.requestDetails.modelInfo.modelName = vfModuleItemModelName;
118 request.requestDetails.modelInfo.modelVersion = vfModuleItemPersonaModelVersion;
122 request.requestDetails.requestInfo.instanceName = vfModuleItemVfModuleName;
123 request.requestDetails.requestInfo.source = "POLICY";
124 request.requestDetails.requestInfo.suppressRollback = false;
126 // relatedInstanceList
128 MSORelatedInstanceListElement relatedInstanceListElement1 = new MSORelatedInstanceListElement();
129 MSORelatedInstanceListElement relatedInstanceListElement2 = new MSORelatedInstanceListElement();
130 relatedInstanceListElement1.relatedInstance = new MSORelatedInstance();
131 relatedInstanceListElement2.relatedInstance = new MSORelatedInstance();
133 relatedInstanceListElement1.relatedInstance.instanceId = serviceItemServiceInstanceId;
134 relatedInstanceListElement1.relatedInstance.modelInfo = new MSOModelInfo();
135 relatedInstanceListElement1.relatedInstance.modelInfo.modelType = "service";
136 relatedInstanceListElement1.relatedInstance.modelInfo.modelInvariantId = serviceItemPersonaModelId;
137 relatedInstanceListElement1.relatedInstance.modelInfo.modelNameVersionId = serviceItemModelNameVersionId;
138 relatedInstanceListElement1.relatedInstance.modelInfo.modelName = serviceItemModelName;
139 relatedInstanceListElement1.relatedInstance.modelInfo.modelVersion = serviceItemModelVersion;
141 relatedInstanceListElement2.relatedInstance.instanceId = vnfItemVnfId;
142 relatedInstanceListElement2.relatedInstance.modelInfo = new MSOModelInfo();
143 relatedInstanceListElement2.relatedInstance.modelInfo.modelType = "vnf";
144 relatedInstanceListElement2.relatedInstance.modelInfo.modelInvariantId = vnfItemPersonaModelId;
145 relatedInstanceListElement2.relatedInstance.modelInfo.modelNameVersionId = vnfItemModelNameVersionId;
146 relatedInstanceListElement2.relatedInstance.modelInfo.modelName = vnfItemModelName;
147 relatedInstanceListElement2.relatedInstance.modelInfo.modelVersion = vnfItemPersonaModelVersion;
148 relatedInstanceListElement2.relatedInstance.modelInfo.modelCustomizationName = vnfItemVnfType;
150 request.requestDetails.relatedInstanceList.add(relatedInstanceListElement1);
151 request.requestDetails.relatedInstanceList.add(relatedInstanceListElement2);
153 // print MSO request for debug
155 System.out.println("MSO request sent:");
156 System.out.println(Serialization.gsonPretty.toJson(request));