2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (c) 2019 Samsung
8 * ================================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END=========================================================
23 package org.onap.so.bpmn.common;
25 import static org.onap.so.bpmn.mock.StubResponseDatabase.MockGetServiceResourcesCatalogDataByModelUuid;
26 import static org.onap.so.bpmn.mock.StubResponseSNIRO.*;
27 import static org.junit.Assert.*;
29 import java.io.IOException;
30 import java.util.ArrayList;
31 import java.util.HashMap;
32 import java.util.List;
34 import java.util.UUID;
36 import org.camunda.bpm.engine.test.Deployment;
37 import org.junit.Ignore;
38 import org.junit.Test;
39 import org.onap.so.BaseIntegrationTest;
40 import org.onap.so.bpmn.core.WorkflowException;
41 import org.onap.so.bpmn.core.domain.*;
42 import org.onap.so.bpmn.mock.FileUtil;
43 import org.slf4j.Logger;
44 import org.slf4j.LoggerFactory;
48 * Test the SNIRO Homing subflow building block.
51 public class SniroHomingV1IT extends BaseIntegrationTest {
53 Logger logger = LoggerFactory.getLogger(SniroHomingV1IT.class);
56 ServiceDecomposition serviceDecomposition = new ServiceDecomposition();
57 String subscriber = "";
58 String subscriber2 = "";
60 private final CallbackSet callbacks = new CallbackSet();
62 public SniroHomingV1IT() throws IOException {
63 String sniroCallback = FileUtil.readResourceFile("__files/BuildingBlocks/sniroCallback2AR1Vnf");
64 String sniroCallback2 = FileUtil.readResourceFile("__files/BuildingBlocks/sniroCallback2AR1Vnf2Net");
65 String sniroCallback3 = FileUtil.readResourceFile("__files/BuildingBlocks/sniroCallbackInfraVnf");
66 String sniroCallbackNoSolution = FileUtil.readResourceFile("__files/BuildingBlocks/sniroCallbackNoSolutionFound");
67 String sniroCallbackPolicyException = FileUtil.readResourceFile("__files/BuildingBlocks/sniroCallbackPolicyException");
68 String sniroCallbackServiceException = FileUtil.readResourceFile("__files/BuildingBlocks/sniroCallbackServiceException");
69 callbacks.put("sniro", JSON, "SNIROResponse", sniroCallback);
70 callbacks.put("sniro2", JSON, "SNIROResponse", sniroCallback2);
71 callbacks.put("sniro3", JSON, "SNIROResponse", sniroCallback3);
72 callbacks.put("sniroNoSol", JSON, "SNIROResponse", sniroCallbackNoSolution);
73 callbacks.put("sniroPolicyEx", JSON, "SNIROResponse", sniroCallbackPolicyException);
74 callbacks.put("sniroServiceEx", JSON, "SNIROResponse", sniroCallbackServiceException);
77 ModelInfo sModel = new ModelInfo();
78 sModel.setModelCustomizationUuid("testModelCustomizationUuid");
79 sModel.setModelInstanceName("testModelInstanceName");
80 sModel.setModelInvariantUuid("testModelInvariantId");
81 sModel.setModelName("testModelName");
82 sModel.setModelUuid("testModelUuid");
83 sModel.setModelVersion("testModelVersion");
85 ServiceInstance si = new ServiceInstance();
86 si.setInstanceId("testServiceInstanceId123");
88 List<AllottedResource> arList = new ArrayList<AllottedResource>();
89 AllottedResource ar = new AllottedResource();
90 ar.setResourceId("testResourceIdAR");
91 ar.setResourceInstanceName("testARInstanceName");
92 ModelInfo arModel = new ModelInfo();
93 arModel.setModelCustomizationUuid("testModelCustomizationUuidAR");
94 arModel.setModelInvariantUuid("testModelInvariantIdAR");
95 arModel.setModelName("testModelNameAR");
96 arModel.setModelVersion("testModelVersionAR");
97 arModel.setModelUuid("testARModelUuid");
98 arModel.setModelType("testModelTypeAR");
99 ar.setModelInfo(arModel);
100 AllottedResource ar2 = new AllottedResource();
101 ar2.setResourceId("testResourceIdAR2");
102 ar2.setResourceInstanceName("testAR2InstanceName");
103 ModelInfo arModel2 = new ModelInfo();
104 arModel2.setModelCustomizationUuid("testModelCustomizationUuidAR2");
105 arModel2.setModelInvariantUuid("testModelInvariantIdAR2");
106 arModel2.setModelName("testModelNameAR2");
107 arModel2.setModelVersion("testModelVersionAR2");
108 arModel2.setModelUuid("testAr2ModelUuid");
109 arModel2.setModelType("testModelTypeAR2");
110 ar2.setModelInfo(arModel2);
114 List<VnfResource> vnfList = new ArrayList<VnfResource>();
115 VnfResource vnf = new VnfResource();
116 vnf.setResourceId("testResourceIdVNF");
117 vnf.setResourceInstanceName("testVnfInstanceName");
118 ModelInfo vnfModel = new ModelInfo();
119 vnfModel.setModelCustomizationUuid("testModelCustomizationUuidVNF");
120 vnfModel.setModelInvariantUuid("testModelInvariantIdVNF");
121 vnfModel.setModelName("testModelNameVNF");
122 vnfModel.setModelVersion("testModelVersionVNF");
123 vnfModel.setModelUuid("testVnfModelUuid");
124 vnfModel.setModelType("testModelTypeVNF");
125 vnf.setModelInfo(vnfModel);
127 logger.debug("SERVICE DECOMP: {}", serviceDecomposition.getServiceResourcesJsonString());
128 serviceDecomposition.setModelInfo(sModel);
129 serviceDecomposition.setAllottedResources(arList);
130 serviceDecomposition.setVnfResources(vnfList);
131 serviceDecomposition.setServiceInstance(si);
134 subscriber = "{\"globalSubscriberId\": \"SUB12_0322_DS_1201\",\"subscriberCommonSiteId\": \"DALTX0101\",\"subscriberName\": \"SUB_12_0322_DS_1201\"}";
135 subscriber2 = "{\"globalSubscriberId\": \"SUB12_0322_DS_1201\",\"subscriberName\": \"SUB_12_0322_DS_1201\"}";
141 public void testHoming_success_2AR1Vnf() throws Exception {
143 mockSNIRO(wireMockServer);
145 String businessKey = UUID.randomUUID().toString();
146 Map<String, Object> variables = new HashMap<>();
147 setVariables(variables);
149 invokeSubProcess("Homing", businessKey, variables);
151 injectWorkflowMessages(callbacks, "sniro");
153 waitForProcessEnd(businessKey, 10000);
156 WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
157 ServiceDecomposition serviceDecompositionExp = (ServiceDecomposition) getVariableFromHistory(businessKey, "serviceDecomposition");
158 String expectedSniroRequest = (String) getVariableFromHistory(businessKey, "sniroRequest");
160 Resource resourceAR = serviceDecompositionExp.getServiceResource("testResourceIdAR");
161 HomingSolution resourceARHoming = resourceAR.getHomingSolution();
162 Resource resourceAR2 = serviceDecompositionExp.getServiceResource("testResourceIdAR2");
163 HomingSolution resourceARHoming2 = resourceAR2.getHomingSolution();
164 Resource resourceVNF = serviceDecompositionExp.getServiceResource("testResourceIdVNF");
165 HomingSolution resourceVNFHoming = resourceVNF.getHomingSolution();
166 String resourceARHomingString = resourceARHoming.toString();
167 resourceARHomingString = resourceARHomingString.replaceAll("\\s+", " ");
168 String resourceARHoming2String = resourceARHoming2.toString();
169 resourceARHoming2String = resourceARHoming2String.replaceAll("\\s+", " ");
170 String resourceVNFHomingString = resourceVNFHoming.toString();
171 resourceVNFHomingString = resourceVNFHomingString.replaceAll("\\s+", " ");
172 expectedSniroRequest = expectedSniroRequest.replaceAll("\\s+", "");
174 assertNull(workflowException);
175 assertEquals(homingSolutionService("service", "testSIID1", "MDTNJ01", "aic", "dfwtx", "KDTNJ01", "3.0", "\"f1d563e8-e714-4393-8f99-cc480144a05e\", \"j1d563e8-e714-4393-8f99-cc480144a05e\"", "\"s1d563e8-e714-4393-8f99-cc480144a05e\", \"b1d563e8-e714-4393-8f99-cc480144a05e\""), resourceARHomingString);
176 assertEquals(homingSolutionService("service", "testSIID2", "testVnfHostname2", "aic", "testCloudRegionId2", "testAicClli2", "3.0", null, null), resourceARHoming2String);
177 assertEquals(homingSolutionCloud("cloud", "", "", "aic", "testCloudRegionId3", "testAicClli3", "3.0", "\"91d563e8-e714-4393-8f99-cc480144a05e\", \"21d563e8-e714-4393-8f99-cc480144a05e\"", "\"31d563e8-e714-4393-8f99-cc480144a05e\", \"71d563e8-e714-4393-8f99-cc480144a05e\""), resourceVNFHomingString);
178 assertEquals(verifySniroRequest(), expectedSniroRequest);
185 public void testHoming_success_2AR1Vnf2Net() throws Exception {
187 mockSNIRO(wireMockServer);
189 String businessKey = UUID.randomUUID().toString();
190 Map<String, Object> variables = new HashMap<>();
191 setVariables2(variables);
193 invokeSubProcess("Homing", businessKey, variables);
195 injectWorkflowMessages(callbacks, "sniro2");
197 waitForProcessEnd(businessKey, 10000);
200 WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
201 ServiceDecomposition serviceDecompositionExp = (ServiceDecomposition) getVariableFromHistory(businessKey, "serviceDecomposition");
202 String expectedSniroRequest = (String) getVariableFromHistory(businessKey, "sniroRequest");
204 Resource resourceAR = serviceDecompositionExp.getServiceResource("testResourceIdAR");
205 HomingSolution resourceARHoming = resourceAR.getHomingSolution();
206 Resource resourceAR2 = serviceDecompositionExp.getServiceResource("testResourceIdAR2");
207 HomingSolution resourceARHoming2 = resourceAR2.getHomingSolution();
208 Resource resourceVNF = serviceDecompositionExp.getServiceResource("testResourceIdVNF");
209 HomingSolution resourceVNFHoming = resourceVNF.getHomingSolution();
210 Resource resourceNet = serviceDecompositionExp.getServiceResource("testResourceIdNet");
211 HomingSolution resourceNetHoming = resourceNet.getHomingSolution();
212 Resource resourceNet2 = serviceDecompositionExp.getServiceResource("testResourceIdNet2");
213 HomingSolution resourceNetHoming2 = resourceNet2.getHomingSolution();
215 String resourceARHomingString = resourceARHoming.toString();
216 resourceARHomingString = resourceARHomingString.replaceAll("\\s+", " ");
217 String resourceARHoming2String = resourceARHoming2.toString();
218 resourceARHoming2String = resourceARHoming2String.replaceAll("\\s+", " ");
219 String resourceVNFHomingString = resourceVNFHoming.toString();
220 resourceVNFHomingString = resourceVNFHomingString.replaceAll("\\s+", " ");
221 String resourceNetHomingString = resourceNetHoming.toString();
222 resourceNetHomingString = resourceNetHomingString.replaceAll("\\s+", " ");
223 String resourceNetHoming2String = resourceNetHoming2.toString();
224 resourceNetHoming2String = resourceNetHoming2String.replaceAll("\\s+", " ");
225 expectedSniroRequest = expectedSniroRequest.replaceAll("\\s+", "");
227 assertNull(workflowException);
228 assertEquals(homingSolutionService("service", "testSIID1", "MDTNJ01", "aic", "dfwtx", "KDTNJ01", "3.0", "\"f1d563e8-e714-4393-8f99-cc480144a05e\", \"j1d563e8-e714-4393-8f99-cc480144a05e\"", "\"s1d563e8-e714-4393-8f99-cc480144a05e\", \"b1d563e8-e714-4393-8f99-cc480144a05e\""), resourceARHomingString);
229 assertEquals(homingSolutionService("service", "testSIID2", "testVnfHostname2", "aic", "testCloudRegionId2", "testAicClli2", "3.0", null, null), resourceARHoming2String);
230 assertEquals(homingSolutionCloud("cloud", "", "", "aic", "testCloudRegionId3", "testAicClli3", "3.0", "\"91d563e8-e714-4393-8f99-cc480144a05e\", \"21d563e8-e714-4393-8f99-cc480144a05e\"", "\"31d563e8-e714-4393-8f99-cc480144a05e\", \"71d563e8-e714-4393-8f99-cc480144a05e\""), resourceVNFHomingString);
231 assertEquals(homingSolutionService("service", "testServiceInstanceIdNet", "testVnfHostNameNet", "aic", "testCloudRegionIdNet", "testAicClliNet", "3.0", null, null), resourceNetHomingString);
232 assertEquals(homingSolutionCloud("cloud", "", "", "aic", "testCloudRegionIdNet2", "testAicClliNet2", "3.0", "\"f1d563e8-e714-4393-8f99-cc480144a05n\", \"j1d563e8-e714-4393-8f99-cc480144a05n\"", "\"s1d563e8-e714-4393-8f99-cc480144a05n\", \"b1d563e8-e714-4393-8f99-cc480144a05n\""), resourceNetHoming2String);
233 assertEquals(verifySniroRequest(), expectedSniroRequest);
239 public void testHoming_success_vnfResourceList() throws Exception {
241 // Create a Service Decomposition
242 MockGetServiceResourcesCatalogDataByModelUuid(wireMockServer, "2f7f309d-c842-4644-a2e4-34167be5eeb4", "/BuildingBlocks/catalogResp.json");
243 String busKey = UUID.randomUUID().toString();
244 Map<String, Object> vars = new HashMap<>();
245 setVariablesForServiceDecomposition(vars, "testRequestId123", "ff5256d2-5a33-55df-13ab-12abad84e7ff");
246 invokeSubProcess("DecomposeService", busKey, vars);
248 ServiceDecomposition sd = (ServiceDecomposition) getVariableFromHistory(busKey, "serviceDecomposition");
249 List<VnfResource> vnfResourceList = sd.getVnfResources();
250 vnfResourceList.get(0).setResourceId("test-resource-id-000");
254 mockSNIRO(wireMockServer);
256 String businessKey = UUID.randomUUID().toString();
257 Map<String, Object> variables = new HashMap<>();
258 variables.put("homingService", "sniro");
259 variables.put("isDebugLogEnabled", "true");
260 variables.put("msoRequestId", "testRequestId");
261 variables.put("serviceInstanceId", "testServiceInstanceId");
262 variables.put("serviceDecomposition", sd);
263 variables.put("subscriberInfo", subscriber2);
265 invokeSubProcess("Homing", businessKey, variables);
266 injectWorkflowMessages(callbacks, "sniro3");
267 waitForProcessEnd(businessKey, 10000);
271 WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
272 ServiceDecomposition serviceDecompositionExp = (ServiceDecomposition) getVariableFromHistory(businessKey, "serviceDecomposition");
274 Resource resourceVnf = serviceDecompositionExp.getServiceResource("test-resource-id-000");
275 HomingSolution resourceVnfHoming = resourceVnf.getHomingSolution();
277 String resourceVnfHomingString = resourceVnfHoming.toString();
278 resourceVnfHomingString = resourceVnfHomingString.replaceAll("\\s+", " ");
280 assertNull(workflowException);
283 String sniroRequest = (String) getVariableFromHistory(businessKey, "sniroRequest");
284 assertEquals(FileUtil.readResourceFile("__files/BuildingBlocks/sniroRequest_infravnf").replaceAll("\n", "").replaceAll("\r", "").replaceAll("\t", ""), sniroRequest.replaceAll("\n", "").replaceAll("\r", "").replaceAll("\t", ""));
286 assertEquals(homingSolutionService("service", "service-instance-01234", "MDTNJ01", "CloudOwner", "mtmnj1a", "KDTNJ01", "3.0", "\"f1d563e8-e714-4393-8f99-cc480144a05e\", \"j1d563e8-e714-4393-8f99-cc480144a05e\"", "\"s1d563e8-e714-4393-8f99-cc480144a05e\", \"b1d563e8-e714-4393-8f99-cc480144a05e\""), resourceVnfHomingString);
291 public void testHoming_success_existingLicense() throws Exception {
293 mockSNIRO(wireMockServer);
295 String businessKey = UUID.randomUUID().toString();
296 Map<String, Object> variables = new HashMap<String, Object>();
297 setVariablesExistingLicense(variables);
299 invokeSubProcess("Homing", businessKey, variables);
301 injectWorkflowMessages(callbacks, "sniro");
303 waitForProcessEnd(businessKey, 10000);
306 WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
307 ServiceDecomposition serviceDecompositionExp = (ServiceDecomposition) getVariableFromHistory(businessKey, "serviceDecomposition");
308 String sniroRequest = (String) getVariableFromHistory(businessKey, "sniroRequest");
310 Resource resourceAR = serviceDecompositionExp.getServiceResource("testResourceIdAR");
311 HomingSolution resourceARHoming = resourceAR.getHomingSolution();
312 Resource resourceAR2 = serviceDecompositionExp.getServiceResource("testResourceIdAR2");
313 HomingSolution resourceARHoming2 = resourceAR2.getHomingSolution();
314 Resource resourceVNF = serviceDecompositionExp.getServiceResource("testResourceIdVNF");
315 HomingSolution resourceVNFHoming = resourceVNF.getHomingSolution();
316 String resourceARHomingString = resourceARHoming.toString();
317 resourceARHomingString = resourceARHomingString.replaceAll("\\s+", " ");
318 String resourceARHoming2String = resourceARHoming2.toString();
319 resourceARHoming2String = resourceARHoming2String.replaceAll("\\s+", " ");
320 String resourceVNFHomingString = resourceVNFHoming.toString();
321 resourceVNFHomingString = resourceVNFHomingString.replaceAll("\\s+", " ");
322 sniroRequest = sniroRequest.replaceAll("\\s+", "");
324 assertNull(workflowException);
325 assertEquals(homingSolutionService("service", "testSIID1", "MDTNJ01", "aic", "dfwtx", "KDTNJ01", "3.0", "\"f1d563e8-e714-4393-8f99-cc480144a05e\", \"j1d563e8-e714-4393-8f99-cc480144a05e\"", "\"s1d563e8-e714-4393-8f99-cc480144a05e\", \"b1d563e8-e714-4393-8f99-cc480144a05e\""), resourceARHomingString);
326 assertEquals(homingSolutionService("service", "testSIID2", "testVnfHostname2", "aic", "testCloudRegionId2", "testAicClli2", "3.0", null, null), resourceARHoming2String);
327 assertEquals(homingSolutionCloud("cloud", "", "", "aic", "testCloudRegionId3", "testAicClli3", "3.0", "\"91d563e8-e714-4393-8f99-cc480144a05e\", \"21d563e8-e714-4393-8f99-cc480144a05e\"", "\"31d563e8-e714-4393-8f99-cc480144a05e\", \"71d563e8-e714-4393-8f99-cc480144a05e\""), resourceVNFHomingString);
328 assertEquals(verifySniroRequest_existingLicense(), sniroRequest);
335 public void testHoming_error_inputVariable() throws Exception {
337 String businessKey = UUID.randomUUID().toString();
338 Map<String, Object> variables = new HashMap<>();
339 setVariables3(variables);
341 invokeSubProcess("Homing", businessKey, variables);
343 waitForProcessEnd(businessKey, 10000);
346 WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
348 assertEquals("WorkflowException[processKey=Homing,errorCode=4000,errorMessage=A required input variable is missing or null]", workflowException.toString());
353 public void testHoming_error_badResponse() throws Exception {
354 mockSNIRO_500(wireMockServer);
356 String businessKey = UUID.randomUUID().toString();
357 Map<String, Object> variables = new HashMap<>();
358 setVariables(variables);
360 invokeSubProcess("Homing", businessKey, variables);
362 waitForProcessEnd(businessKey, 10000);
365 WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
367 assertEquals("WorkflowException[processKey=Homing,errorCode=500,errorMessage=Received a Bad Sync Response from Sniro/OOF.]", workflowException.toString());
373 public void testHoming_error_sniroNoSolution() throws Exception {
374 mockSNIRO(wireMockServer);
376 String businessKey = UUID.randomUUID().toString();
377 Map<String, Object> variables = new HashMap<>();
378 setVariables(variables);
380 invokeSubProcess("Homing", businessKey, variables);
382 injectWorkflowMessages(callbacks, "sniroNoSol");
384 waitForProcessEnd(businessKey, 10000);
387 WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
389 assertEquals("WorkflowException[processKey=Homing,errorCode=400,errorMessage=No solution found for plan 08e1b8cf-144a-4bac-b293-d5e2eedc97e8]", workflowException.toString());
394 public void testHoming_error_sniroPolicyException() throws Exception {
395 mockSNIRO(wireMockServer);
397 String businessKey = UUID.randomUUID().toString();
398 Map<String, Object> variables = new HashMap<>();
399 setVariables(variables);
401 invokeSubProcess("Homing", businessKey, variables);
403 injectWorkflowMessages(callbacks, "sniroPolicyEx");
405 waitForProcessEnd(businessKey, 10000);
408 WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
410 assertEquals("WorkflowException[processKey=Homing,errorCode=400,errorMessage=Sniro Async Callback Response contains a Request Error Policy Exception: Message content size exceeds the allowable limit]", workflowException.toString());
415 public void testHoming_error_sniroServiceException() throws Exception {
416 mockSNIRO(wireMockServer);
418 String businessKey = UUID.randomUUID().toString();
419 Map<String, Object> variables = new HashMap<>();
420 setVariables(variables);
422 invokeSubProcess("Homing", businessKey, variables);
424 injectWorkflowMessages(callbacks, "sniroServiceEx");
426 waitForProcessEnd(businessKey, 10000);
429 WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
431 assertEquals("WorkflowException[processKey=Homing,errorCode=400,errorMessage=Sniro Async Callback Response contains a Request Error Service Exception: SNIROPlacementError: requests.exceptions.HTTPError: 404 Client Error: Not Found for url: http://135.21.171.200:8091/v1/plans/97b4e303-5f75-492c-8fb2-21098281c8b8]", workflowException.toString());
436 private void setVariables(Map<String, Object> variables) {
437 variables.put("homingService", "sniro");
438 variables.put("isDebugLogEnabled", "true");
439 // variables.put("mso-request-id", "testRequestId");
440 variables.put("msoRequestId", "testRequestId");
441 variables.put("serviceInstanceId", "testServiceInstanceId");
442 variables.put("serviceDecomposition", serviceDecomposition);
443 variables.put("subscriberInfo", subscriber2);
447 private void setVariables2(Map<String, Object> variables) {
448 List<NetworkResource> netList = new ArrayList<NetworkResource>();
449 NetworkResource net = new NetworkResource();
450 net.setResourceId("testResourceIdNet");
451 ModelInfo netModel = new ModelInfo();
452 netModel.setModelCustomizationUuid("testModelCustomizationUuidNet");
453 netModel.setModelInvariantUuid("testModelInvariantIdNet");
454 netModel.setModelName("testModelNameNet");
455 netModel.setModelVersion("testModelVersionNet");
456 net.setModelInfo(netModel);
458 NetworkResource net2 = new NetworkResource();
459 net2.setResourceId("testResourceIdNet2");
460 ModelInfo netModel2 = new ModelInfo();
461 netModel2.setModelCustomizationUuid("testModelCustomizationUuidNet2");
462 netModel2.setModelInvariantUuid("testModelInvariantIdNet2");
463 netModel2.setModelName("testModelNameNet2");
464 netModel2.setModelVersion("testModelVersionNet2");
465 net2.setModelInfo(netModel2);
467 serviceDecomposition.setNetworkResources(netList);
469 variables.put("homingService", "sniro");
470 variables.put("isDebugLogEnabled", "true");
471 variables.put("msoRequestId", "testRequestId");
472 variables.put("serviceInstanceId", "testServiceInstanceId");
473 variables.put("serviceDecomposition", serviceDecomposition);
474 variables.put("subscriberInfo", subscriber2);
477 private void setVariables3(Map<String, Object> variables) {
478 variables.put("homingService", "sniro");
479 variables.put("isDebugLogEnabled", "true");
480 // variables.put("mso-request-id", "testRequestId");
481 variables.put("msoRequestId", "testRequestId");
482 variables.put("serviceInstanceId", "testServiceInstanceId");
483 variables.put("serviceDecomposition", null);
484 variables.put("subscriberInfo", subscriber2);
488 private void setVariablesExistingLicense(Map<String, Object> variables) {
489 HomingSolution currentHomingSolution = new HomingSolution();
490 serviceDecomposition.getVnfResources().get(0).setCurrentHomingSolution(currentHomingSolution);
491 serviceDecomposition.getVnfResources().get(0).getCurrentHomingSolution().getLicense().addEntitlementPool("testEntitlementPoolId1");
492 serviceDecomposition.getVnfResources().get(0).getCurrentHomingSolution().getLicense().addEntitlementPool("testEntitlementPoolId2");
494 serviceDecomposition.getVnfResources().get(0).getCurrentHomingSolution().getLicense().addLicenseKeyGroup("testLicenseKeyGroupId1");
495 serviceDecomposition.getVnfResources().get(0).getCurrentHomingSolution().getLicense().addLicenseKeyGroup("testLicenseKeyGroupId2");
497 variables.put("isDebugLogEnabled", "true");
498 // variables.put("mso-request-id", "testRequestId");
499 variables.put("msoRequestId", "testRequestId");
500 variables.put("serviceInstanceId", "testServiceInstanceId");
501 variables.put("serviceDecomposition", serviceDecomposition);
502 variables.put("subscriberInfo", subscriber2);
506 private String homingSolutionService(String type, String serviceInstanceId, String vnfHostname, String cloudOwner, String cloudRegionId, String aicClli, String aicVersion, String enList, String licenseList){
507 String solution = "";
509 solution = "{ \"homingSolution\" : { \"inventoryType\" : \"" + type + "\", \"serviceInstanceId\" : \"" + serviceInstanceId + "\", \"vnfHostname\" : \"" + vnfHostname + "\", \"cloudOwner\" : \"" + cloudOwner + "\", \"cloudRegionId\" : \"" + cloudRegionId + "\", \"aicClli\" : \"" + aicClli + "\", \"aicVersion\" : \"" + aicVersion + "\", \"license\" : { }, \"rehome\" : false } }";
511 solution = "{ \"homingSolution\" : { \"inventoryType\" : \"" + type + "\", \"serviceInstanceId\" : \"" + serviceInstanceId + "\", \"vnfHostname\" : \"" + vnfHostname + "\", \"cloudOwner\" : \"" + cloudOwner + "\", \"cloudRegionId\" : \"" + cloudRegionId + "\", \"aicClli\" : \"" + aicClli + "\", \"aicVersion\" : \"" + aicVersion + "\", \"license\" : { \"entitlementPoolList\" : [ " + enList + " ], \"licenseKeyGroupList\" : [ " + licenseList + " ] }, \"rehome\" : false } }";
516 private String homingSolutionCloud(String type, String serviceInstanceId, String vnfHostname, String cloudOwner, String cloudRegionId, String aicClli, String aicVersion, String enList, String licenseList){
517 String solution = "";
519 solution = "{ \"homingSolution\" : { \"inventoryType\" : \"" + type + "\", \"cloudOwner\" : \"" + cloudOwner + "\", \"cloudRegionId\" : \"" + cloudRegionId + "\", \"aicClli\" : \"" + aicClli + "\", \"aicVersion\" : \"" + aicVersion + "\", \"license\" : { }, \"rehome\" : false } }";
521 solution = "{ \"homingSolution\" : { \"inventoryType\" : \"" + type + "\", \"cloudOwner\" : \"" + cloudOwner + "\", \"cloudRegionId\" : \"" + cloudRegionId + "\", \"aicClli\" : \"" + aicClli + "\", \"aicVersion\" : \"" + aicVersion + "\", \"license\" : { \"entitlementPoolList\" : [ " + enList + " ], \"licenseKeyGroupList\" : [ " + licenseList + " ] }, \"rehome\" : false } }";
526 private void setVariablesForServiceDecomposition(Map<String, Object> variables, String requestId, String siId) {
527 variables.put("homingService", "sniro");
528 variables.put("isDebugLogEnabled", "true");
529 variables.put("mso-request-id", requestId);
530 variables.put("msoRequestId", requestId);
531 variables.put("serviceInstanceId",siId);
533 String serviceModelInfo = "{ "+ "\"modelType\": \"service\"," +
534 "\"modelInvariantUuid\": \"1cc4e2e4-eb6e-404d-a66f-c8733cedcce8\"," +
535 "\"modelUuid\": \"2f7f309d-c842-4644-a2e4-34167be5eeb4\"," +
536 "\"modelName\": \"ADIOD vRouter vCE 011017 Service\"," +
537 "\"modelVersion\": \"5.0\"," +
539 variables.put("serviceModelInfo", serviceModelInfo);
542 private String verifySniroRequest(){
543 String request = "{\"requestInfo\":{\"transactionId\":\"testRequestId\",\"requestId\":\"testRequestId\",\"callbackUrl\":\"http://localhost:28090/workflows/messages/message/SNIROResponse/testRequestId\",\"sourceId\":\"mso\",\"requestType\":\"initial\",\"optimizer\":[\"placement\",\"license\"],\"numSolutions\":1,\"timeout\":1800},\"placementInfo\":{\"serviceModelInfo\":{\"modelType\":\"\",\"modelInvariantId\":\"testModelInvariantId\",\"modelVersionId\":\"testModelUuid\",\"modelName\":\"testModelName\",\"modelVersion\":\"testModelVersion\"},\"subscriberInfo\":{\"globalSubscriberId\":\"SUB12_0322_DS_1201\",\"subscriberName\":\"SUB_12_0322_DS_1201\",\"subscriberCommonSiteId\":\"\"},\"demandInfo\":{\"placementDemand\":[{\"resourceInstanceType\":\"ALLOTTED_RESOURCE\",\"serviceResourceId\":\"testResourceIdAR\",\"resourceModuleName\":\"\",\"resourceModelInfo\":{\"modelCustomizationId\":\"testModelCustomizationUuidAR\",\"modelInvariantId\":\"testModelInvariantIdAR\",\"modelName\":\"testModelNameAR\",\"modelVersion\":\"testModelVersionAR\",\"modelVersionId\":\"testARModelUuid\",\"modelType\":\"testModelTypeAR\"},\"tenantId\":\"\",\"tenantName\":\"\"},{\"resourceInstanceType\":\"ALLOTTED_RESOURCE\",\"serviceResourceId\":\"testResourceIdAR2\",\"resourceModuleName\":\"\",\"resourceModelInfo\":{\"modelCustomizationId\":\"testModelCustomizationUuidAR2\",\"modelInvariantId\":\"testModelInvariantIdAR2\",\"modelName\":\"testModelNameAR2\",\"modelVersion\":\"testModelVersionAR2\",\"modelVersionId\":\"testAr2ModelUuid\",\"modelType\":\"testModelTypeAR2\"},\"tenantId\":\"\",\"tenantName\":\"\"}],\"licenseDemand\":[{\"resourceInstanceType\":\"VNF\",\"serviceResourceId\":\"testResourceIdVNF\",\"resourceModuleName\":\"\",\"resourceModelInfo\":{\"modelCustomizationId\":\"testModelCustomizationUuidVNF\",\"modelInvariantId\":\"testModelInvariantIdVNF\",\"modelName\":\"testModelNameVNF\",\"modelVersion\":\"testModelVersionVNF\",\"modelVersionId\":\"testVnfModelUuid\",\"modelType\":\"testModelTypeVNF\"}}]},\"policyId\":[],\"serviceInstanceId\":\"testServiceInstanceId123\",\"orderInfo\":\"{\\\"requestParameters\\\":null}\"}}";
547 private String verifySniroRequest_existingLicense(){
548 String request = "{\"requestInfo\":{\"transactionId\":\"testRequestId\",\"requestId\":\"testRequestId\",\"callbackUrl\":\"http://localhost:28090/workflows/messages/message/SNIROResponse/testRequestId\",\"sourceId\":\"mso\",\"requestType\":\"speedchanged\",\"optimizer\":[\"placement\",\"license\"],\"numSolutions\":1,\"timeout\":1800},\"placementInfo\":{\"serviceModelInfo\":{\"modelType\":\"\",\"modelInvariantId\":\"testModelInvariantId\",\"modelVersionId\":\"testModelUuid\",\"modelName\":\"testModelName\",\"modelVersion\":\"testModelVersion\"},\"subscriberInfo\":{\"globalSubscriberId\":\"SUB12_0322_DS_1201\",\"subscriberName\":\"SUB_12_0322_DS_1201\",\"subscriberCommonSiteId\":\"\"},\"demandInfo\":{\"placementDemand\":[{\"resourceInstanceType\":\"ALLOTTED_RESOURCE\",\"serviceResourceId\":\"testResourceIdAR\",\"resourceModuleName\":\"\",\"resourceModelInfo\":{\"modelCustomizationId\":\"testModelCustomizationUuidAR\",\"modelInvariantId\":\"testModelInvariantIdAR\",\"modelName\":\"testModelNameAR\",\"modelVersion\":\"testModelVersionAR\",\"modelVersionId\":\"testARModelUuid\",\"modelType\":\"testModelTypeAR\"},\"tenantId\":\"\",\"tenantName\":\"\"},{\"resourceInstanceType\":\"ALLOTTED_RESOURCE\",\"serviceResourceId\":\"testResourceIdAR2\",\"resourceModuleName\":\"\",\"resourceModelInfo\":{\"modelCustomizationId\":\"testModelCustomizationUuidAR2\",\"modelInvariantId\":\"testModelInvariantIdAR2\",\"modelName\":\"testModelNameAR2\",\"modelVersion\":\"testModelVersionAR2\",\"modelVersionId\":\"testAr2ModelUuid\",\"modelType\":\"testModelTypeAR2\"},\"tenantId\":\"\",\"tenantName\":\"\"}],\"licenseDemand\":[{\"resourceInstanceType\":\"VNF\",\"serviceResourceId\":\"testResourceIdVNF\",\"resourceModuleName\":\"\",\"resourceModelInfo\":{\"modelCustomizationId\":\"testModelCustomizationUuidVNF\",\"modelInvariantId\":\"testModelInvariantIdVNF\",\"modelName\":\"testModelNameVNF\",\"modelVersion\":\"testModelVersionVNF\",\"modelVersionId\":\"testVnfModelUuid\",\"modelType\":\"testModelTypeVNF\"},\"existingLicense\":[{\"entitlementPoolUUID\":[\"testEntitlementPoolId1\",\"testEntitlementPoolId2\"],\"licenseKeyGroupUUID\":[\"testLicenseKeyGroupId1\",\"testLicenseKeyGroupId2\"]}]}]},\"policyId\":[],\"serviceInstanceId\":\"testServiceInstanceId123\",\"orderInfo\":\"{\\\"requestParameters\\\":null}\"}}";