333fde6b269a2e923593b3b72bdf911f23fba1fa
[policy/drools-applications.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * demo
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.onap.policy.template.demo;
22
23 import java.io.FileNotFoundException;
24 import java.io.FileReader;
25 import java.util.UUID;
26
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;
41
42 import com.google.gson.Gson;
43 import com.google.gson.stream.JsonReader;
44
45 public class TestSO {
46
47         private static final Logger logger = LoggerFactory.getLogger(TestSO.class);
48                         
49         @Test
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);
54                 
55                 logger.debug(Serialization.gsonPretty.toJson(response));
56                 
57                 AAINQF199ResponseWrapper aainqf199ResponseWrapper = new AAINQF199ResponseWrapper(UUID.randomUUID(), response);
58                 
59                 //
60                 //
61                 // vnfItem
62                 //
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;
70                 //
71                 // serviceItem
72                 //
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;
78                 //
79                 // This comes from the base module
80                 //
81                 String vfModuleItemVfModuleName =                       aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).vfModule.vfModuleName;
82                 vfModuleItemVfModuleName = vfModuleItemVfModuleName.replace("Vfmodule", "vDNS");
83                 //
84                 // vfModuleItem - NOT the base module
85                 //
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;
90                 
91                 //
92                 // tenantItem
93                 //
94                 String tenantItemTenantId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).tenant.tenantId;
95                 //
96                 // cloudRegionItem
97                 //
98                 String cloudRegionItemCloudRegionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).items.inventoryResponseItems.get(0).cloudRegion.cloudRegionId;
99
100                 //
101                 // Construct an SO request
102                 //
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;
110                 //
111                 // cloudConfiguration
112                 //
113                 request.requestDetails.cloudConfiguration.lcpCloudRegionId = cloudRegionItemCloudRegionId;
114                 request.requestDetails.cloudConfiguration.tenantId = tenantItemTenantId;
115                 //
116                 // modelInfo
117                 //
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;
123                 //
124                 // requestInfo
125                 //
126                 request.requestDetails.requestInfo.instanceName = vfModuleItemVfModuleName;
127                 request.requestDetails.requestInfo.source = "POLICY";
128                 request.requestDetails.requestInfo.suppressRollback = false;
129                 //
130                 // relatedInstanceList
131                 //
132                 SORelatedInstanceListElement relatedInstanceListElement1 = new SORelatedInstanceListElement();
133                 SORelatedInstanceListElement relatedInstanceListElement2 = new SORelatedInstanceListElement();
134                 relatedInstanceListElement1.relatedInstance = new SORelatedInstance();
135                 relatedInstanceListElement2.relatedInstance = new SORelatedInstance();
136                 //
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;
144                 //
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;
153                 //      
154                 request.requestDetails.relatedInstanceList.add(relatedInstanceListElement1);
155                 request.requestDetails.relatedInstanceList.add(relatedInstanceListElement2);
156                 //
157                 // print SO request for debug
158                 //
159                 logger.debug("SO request sent:");
160                 logger.debug(Serialization.gsonPretty.toJson(request));
161         }
162
163 }