[POLICY-22] Reorganizing drools-apps
[policy/drools-applications.git] / controlloop / templates / template.demo.v1.0.0 / template.demo / src / test / java / org / onap / policy / template / demo / TestMSO.java
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.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;
39
40 import com.google.gson.Gson;
41 import com.google.gson.stream.JsonReader;
42
43 public class TestMSO {
44
45         @Test
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);
50                 
51                 System.out.println(Serialization.gsonPretty.toJson(response));
52                 
53                 AAINQF199ResponseWrapper aainqf199ResponseWrapper = new AAINQF199ResponseWrapper(UUID.randomUUID(), response);
54                 
55                 //
56                 //
57                 // vnfItem
58                 //
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;
66                 //
67                 // serviceItem
68                 //
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;
74                 //
75                 // This comes from the base module
76                 //
77                 String vfModuleItemVfModuleName =                       aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).vfModule.vfModuleName;
78                 vfModuleItemVfModuleName = vfModuleItemVfModuleName.replace("Vfmodule", "vDNS");
79                 //
80                 // vfModuleItem - NOT the base module
81                 //
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;
86                 
87                 //
88                 // tenantItem
89                 //
90                 String tenantItemTenantId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).tenant.tenantId;
91                 //
92                 // cloudRegionItem
93                 //
94                 String cloudRegionItemCloudRegionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).items.inventoryResponseItems.get(0).cloudRegion.cloudRegionId;
95
96                 //
97                 // Construct an MSO request
98                 //
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;
106                 //
107                 // cloudConfiguration
108                 //
109                 request.requestDetails.cloudConfiguration.lcpCloudRegionId = cloudRegionItemCloudRegionId;
110                 request.requestDetails.cloudConfiguration.tenantId = tenantItemTenantId;
111                 //
112                 // modelInfo
113                 //
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;
119                 //
120                 // requestInfo
121                 //
122                 request.requestDetails.requestInfo.instanceName = vfModuleItemVfModuleName;
123                 request.requestDetails.requestInfo.source = "POLICY";
124                 request.requestDetails.requestInfo.suppressRollback = false;
125                 //
126                 // relatedInstanceList
127                 //
128                 MSORelatedInstanceListElement relatedInstanceListElement1 = new MSORelatedInstanceListElement();
129                 MSORelatedInstanceListElement relatedInstanceListElement2 = new MSORelatedInstanceListElement();
130                 relatedInstanceListElement1.relatedInstance = new MSORelatedInstance();
131                 relatedInstanceListElement2.relatedInstance = new MSORelatedInstance();
132                 //
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;
140                 //
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;
149                 //      
150                 request.requestDetails.relatedInstanceList.add(relatedInstanceListElement1);
151                 request.requestDetails.relatedInstanceList.add(relatedInstanceListElement2);
152                 //
153                 // print MSO request for debug
154                 //
155                 System.out.println("MSO request sent:");
156                 System.out.println(Serialization.gsonPretty.toJson(request));
157         }
158
159 }