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.SOCloudConfiguration;
29 import org.onap.policy.mso.SOModelInfo;
30 import org.onap.policy.mso.SORelatedInstance;
31 import org.onap.policy.mso.SORelatedInstanceListElement;
32 import org.onap.policy.mso.SORequest;
33 import org.onap.policy.mso.SORequestDetails;
34 import org.onap.policy.mso.SORequestInfo;
35 import org.onap.policy.mso.SORequestParameters;
36 import org.onap.policy.aai.AAINQResponse;
37 import org.onap.policy.aai.AAINQResponseWrapper;
38 import org.onap.policy.mso.util.Serialization;
39 import org.slf4j.Logger;
40 import org.slf4j.LoggerFactory;
42 import com.google.gson.Gson;
43 import com.google.gson.stream.JsonReader;
47 private static final Logger logger = LoggerFactory.getLogger(TestSO.class);
50 public void test() throws FileNotFoundException {
51 Gson gson = new Gson();
52 JsonReader reader = new JsonReader(new FileReader("src/test/resources/aairesponse.json"));
53 AAINQF199Response response = gson.fromJson(reader, AAINQF199Response.class);
55 logger.debug(Serialization.gsonPretty.toJson(response));
57 AAINQF199ResponseWrapper aainqf199ResponseWrapper = new AAINQF199ResponseWrapper(UUID.randomUUID(), response);
63 String vnfItemVnfId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfID;
64 String vnfItemVnfType = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfType;
65 vnfItemVnfType = vnfItemVnfType.substring(vnfItemVnfType.lastIndexOf("/")+1);
66 String vnfItemPersonaModelId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.personaModelId;
67 String vnfItemPersonaModelVersion = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.personaModelVersion;
68 String vnfItemModelName = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue;
69 String vnfItemModelNameVersionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue;
73 String serviceItemServiceInstanceId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.serviceInstanceID;
74 String serviceItemPersonaModelId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.personaModelId;
75 String serviceItemModelName = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue;
76 String serviceItemModelVersion = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.personaModelVersion;
77 String serviceItemModelNameVersionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue;
79 // This comes from the base module
81 String vfModuleItemVfModuleName = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).vfModule.vfModuleName;
82 vfModuleItemVfModuleName = vfModuleItemVfModuleName.replace("Vfmodule", "vDNS");
84 // vfModuleItem - NOT the base module
86 String vfModuleItemPersonaModelId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).vfModule.personaModelId;
87 String vfModuleItemPersonaModelVersion = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).vfModule.personaModelVersion;
88 String vfModuleItemModelName = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).extraProperties.extraProperty.get(0).propertyValue;
89 String vfModuleItemModelNameVersionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).extraProperties.extraProperty.get(4).propertyValue;
94 String tenantItemTenantId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).tenant.tenantId;
98 String cloudRegionItemCloudRegionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).items.inventoryResponseItems.get(0).cloudRegion.cloudRegionId;
101 // Construct an SO request
103 SORequest request = new SORequest();
104 request.requestDetails = new SORequestDetails();
105 request.requestDetails.modelInfo = new SOModelInfo();
106 request.requestDetails.cloudConfiguration = new SOCloudConfiguration();
107 request.requestDetails.requestInfo = new SORequestInfo();
108 request.requestDetails.requestParameters = new SORequestParameters();
109 request.requestDetails.requestParameters.userParams = null;
111 // cloudConfiguration
113 request.requestDetails.cloudConfiguration.lcpCloudRegionId = cloudRegionItemCloudRegionId;
114 request.requestDetails.cloudConfiguration.tenantId = tenantItemTenantId;
118 request.requestDetails.modelInfo.modelType = "vfModule";
119 request.requestDetails.modelInfo.modelInvariantId = vfModuleItemPersonaModelId;
120 request.requestDetails.modelInfo.modelNameVersionId = vfModuleItemModelNameVersionId;
121 request.requestDetails.modelInfo.modelName = vfModuleItemModelName;
122 request.requestDetails.modelInfo.modelVersion = vfModuleItemPersonaModelVersion;
126 request.requestDetails.requestInfo.instanceName = vfModuleItemVfModuleName;
127 request.requestDetails.requestInfo.source = "POLICY";
128 request.requestDetails.requestInfo.suppressRollback = false;
130 // relatedInstanceList
132 SORelatedInstanceListElement relatedInstanceListElement1 = new SORelatedInstanceListElement();
133 SORelatedInstanceListElement relatedInstanceListElement2 = new SORelatedInstanceListElement();
134 relatedInstanceListElement1.relatedInstance = new SORelatedInstance();
135 relatedInstanceListElement2.relatedInstance = new SORelatedInstance();
137 relatedInstanceListElement1.relatedInstance.instanceId = serviceItemServiceInstanceId;
138 relatedInstanceListElement1.relatedInstance.modelInfo = new SOModelInfo();
139 relatedInstanceListElement1.relatedInstance.modelInfo.modelType = "service";
140 relatedInstanceListElement1.relatedInstance.modelInfo.modelInvariantId = serviceItemPersonaModelId;
141 relatedInstanceListElement1.relatedInstance.modelInfo.modelNameVersionId = serviceItemModelNameVersionId;
142 relatedInstanceListElement1.relatedInstance.modelInfo.modelName = serviceItemModelName;
143 relatedInstanceListElement1.relatedInstance.modelInfo.modelVersion = serviceItemModelVersion;
145 relatedInstanceListElement2.relatedInstance.instanceId = vnfItemVnfId;
146 relatedInstanceListElement2.relatedInstance.modelInfo = new SOModelInfo();
147 relatedInstanceListElement2.relatedInstance.modelInfo.modelType = "vnf";
148 relatedInstanceListElement2.relatedInstance.modelInfo.modelInvariantId = vnfItemPersonaModelId;
149 relatedInstanceListElement2.relatedInstance.modelInfo.modelNameVersionId = vnfItemModelNameVersionId;
150 relatedInstanceListElement2.relatedInstance.modelInfo.modelName = vnfItemModelName;
151 relatedInstanceListElement2.relatedInstance.modelInfo.modelVersion = vnfItemPersonaModelVersion;
152 relatedInstanceListElement2.relatedInstance.modelInfo.modelCustomizationName = vnfItemVnfType;
154 request.requestDetails.relatedInstanceList.add(relatedInstanceListElement1);
155 request.requestDetails.relatedInstanceList.add(relatedInstanceListElement2);
157 // print SO request for debug
159 logger.debug("SO request sent:");
160 logger.debug(Serialization.gsonPretty.toJson(request));