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=========================================================
22 * © 2014 AT&T Intellectual Property. All rights reserved. Used under license from AT&T Intellectual Property.
24 package org.openecomp.mso.bpmn.common;
26 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.MockGetServiceResourcesCatalogDataByModelUuid;
27 import static org.openecomp.mso.bpmn.mock.StubResponseSNIRO.*;
28 import static org.junit.Assert.*;
30 import java.io.IOException;
31 import java.util.ArrayList;
32 import java.util.HashMap;
33 import java.util.List;
35 import java.util.UUID;
37 import org.camunda.bpm.engine.test.Deployment;
38 import org.junit.Ignore;
39 import org.junit.Test;
41 import org.openecomp.mso.bpmn.core.WorkflowException;
42 import org.openecomp.mso.bpmn.core.domain.*;
43 import org.openecomp.mso.bpmn.mock.FileUtil;
47 * Test the SNIRO Homing subflow building block.
49 public class SniroHomingTest extends WorkflowTest {
51 ServiceDecomposition serviceDecomposition = new ServiceDecomposition();
52 String subscriber = "";
53 String subscriber2 = "";
55 private final CallbackSet callbacks = new CallbackSet();
57 public SniroHomingTest() throws IOException {
58 String sniroCallback = FileUtil.readResourceFile("__files/BuildingBlocks/sniroCallback2AR1Vnf");
59 String sniroCallback2 = FileUtil.readResourceFile("__files/BuildingBlocks/sniroCallback2AR1Vnf2Net");
60 String sniroCallback3 = FileUtil.readResourceFile("__files/BuildingBlocks/sniroCallbackInfraVnf");
61 String sniroCallbackNoSolution = FileUtil.readResourceFile("__files/BuildingBlocks/sniroCallbackNoSolutionFound");
62 String sniroCallbackPolicyException = FileUtil.readResourceFile("__files/BuildingBlocks/sniroCallbackPolicyException");
63 String sniroCallbackServiceException = FileUtil.readResourceFile("__files/BuildingBlocks/sniroCallbackServiceException");
64 callbacks.put("sniro", JSON, "SNIROResponse", sniroCallback);
65 callbacks.put("sniro2", JSON, "SNIROResponse", sniroCallback2);
66 callbacks.put("sniro3", JSON, "SNIROResponse", sniroCallback3);
67 callbacks.put("sniroNoSol", JSON, "SNIROResponse", sniroCallbackNoSolution);
68 callbacks.put("sniroPolicyEx", JSON, "SNIROResponse", sniroCallbackPolicyException);
69 callbacks.put("sniroServiceEx", JSON, "SNIROResponse", sniroCallbackServiceException);
72 ModelInfo sModel = new ModelInfo();
73 sModel.setModelCustomizationUuid("testModelCustomizationUuid");
74 sModel.setModelInstanceName("testModelInstanceName");
75 sModel.setModelInvariantUuid("testModelInvariantId");
76 sModel.setModelName("testModelName");
77 sModel.setModelUuid("testModelUuid");
78 sModel.setModelVersion("testModelVersion");
80 ServiceInstance si = new ServiceInstance();
81 si.setInstanceId("testServiceInstanceId123");
83 List<AllottedResource> arList = new ArrayList<AllottedResource>();
84 AllottedResource ar = new AllottedResource();
85 ar.setResourceId("testResourceIdAR");
86 ar.setResourceInstanceName("testARInstanceName");
87 ModelInfo arModel = new ModelInfo();
88 arModel.setModelCustomizationUuid("testModelCustomizationUuidAR");
89 arModel.setModelInvariantUuid("testModelInvariantIdAR");
90 arModel.setModelName("testModelNameAR");
91 arModel.setModelVersion("testModelVersionAR");
92 arModel.setModelUuid("testARModelUuid");
93 arModel.setModelType("testModelTypeAR");
94 ar.setModelInfo(arModel);
95 AllottedResource ar2 = new AllottedResource();
96 ar2.setResourceId("testResourceIdAR2");
97 ar2.setResourceInstanceName("testAR2InstanceName");
98 ModelInfo arModel2 = new ModelInfo();
99 arModel2.setModelCustomizationUuid("testModelCustomizationUuidAR2");
100 arModel2.setModelInvariantUuid("testModelInvariantIdAR2");
101 arModel2.setModelName("testModelNameAR2");
102 arModel2.setModelVersion("testModelVersionAR2");
103 arModel2.setModelUuid("testAr2ModelUuid");
104 arModel2.setModelType("testModelTypeAR2");
105 ar2.setModelInfo(arModel2);
109 List<VnfResource> vnfList = new ArrayList<VnfResource>();
110 VnfResource vnf = new VnfResource();
111 vnf.setResourceId("testResourceIdVNF");
112 vnf.setResourceInstanceName("testVnfInstanceName");
113 ModelInfo vnfModel = new ModelInfo();
114 vnfModel.setModelCustomizationUuid("testModelCustomizationUuidVNF");
115 vnfModel.setModelInvariantUuid("testModelInvariantIdVNF");
116 vnfModel.setModelName("testModelNameVNF");
117 vnfModel.setModelVersion("testModelVersionVNF");
118 vnfModel.setModelUuid("testVnfModelUuid");
119 vnfModel.setModelType("testModelTypeVNF");
120 vnf.setModelInfo(vnfModel);
122 System.out.println("SERVICE DECOMP: " + serviceDecomposition.getServiceResourcesJsonString());
123 serviceDecomposition.setModelInfo(sModel);
124 serviceDecomposition.setServiceAllottedResources(arList);
125 serviceDecomposition.setServiceVnfs(vnfList);
126 serviceDecomposition.setServiceInstance(si);
129 subscriber = "{\"globalSubscriberId\": \"SUB12_0322_DS_1201\",\"subscriberCommonSiteId\": \"DALTX0101\",\"subscriberName\": \"SUB_12_0322_DS_1201\"}";
130 subscriber2 = "{\"globalSubscriberId\": \"SUB12_0322_DS_1201\",\"subscriberName\": \"SUB_12_0322_DS_1201\"}";
134 @Ignore // 1802 merge
135 @Deployment(resources = {"subprocess/BuildingBlock/Homing.bpmn", "subprocess/ReceiveWorkflowMessage.bpmn"})
136 public void testHoming_success_2AR1Vnf() throws Exception {
140 String businessKey = UUID.randomUUID().toString();
141 Map<String, Object> variables = new HashMap<>();
142 setVariables(variables);
144 invokeSubProcess("Homing", businessKey, variables);
146 injectWorkflowMessages(callbacks, "sniro");
148 waitForProcessEnd(businessKey, 10000);
151 WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
152 ServiceDecomposition serviceDecompositionExp = (ServiceDecomposition) getVariableFromHistory(businessKey, "serviceDecomposition");
153 String expectedSniroRequest = (String) getVariableFromHistory(businessKey, "sniroRequest");
155 Resource resourceAR = serviceDecompositionExp.getServiceResource("testResourceIdAR");
156 HomingSolution resourceARHoming = resourceAR.getHomingSolution();
157 Resource resourceAR2 = serviceDecompositionExp.getServiceResource("testResourceIdAR2");
158 HomingSolution resourceARHoming2 = resourceAR2.getHomingSolution();
159 Resource resourceVNF = serviceDecompositionExp.getServiceResource("testResourceIdVNF");
160 HomingSolution resourceVNFHoming = resourceVNF.getHomingSolution();
161 String resourceARHomingString = resourceARHoming.toString();
162 resourceARHomingString = resourceARHomingString.replaceAll("\\s+", " ");
163 String resourceARHoming2String = resourceARHoming2.toString();
164 resourceARHoming2String = resourceARHoming2String.replaceAll("\\s+", " ");
165 String resourceVNFHomingString = resourceVNFHoming.toString();
166 resourceVNFHomingString = resourceVNFHomingString.replaceAll("\\s+", " ");
167 expectedSniroRequest = expectedSniroRequest.replaceAll("\\s+", "");
169 assertNull(workflowException);
170 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);
171 assertEquals(homingSolutionService("service", "testSIID2", "testVnfHostname2", "aic", "testCloudRegionId2", "testAicClli2", "3.0", null, null), resourceARHoming2String);
172 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);
173 assertEquals(verifySniroRequest(), expectedSniroRequest);
178 @Ignore // 1802 merge
179 @Deployment(resources = {"subprocess/BuildingBlock/Homing.bpmn", "subprocess/ReceiveWorkflowMessage.bpmn"})
180 public void testHoming_success_2AR1Vnf2Net() throws Exception {
184 String businessKey = UUID.randomUUID().toString();
185 Map<String, Object> variables = new HashMap<>();
186 setVariables2(variables);
188 invokeSubProcess("Homing", businessKey, variables);
190 injectWorkflowMessages(callbacks, "sniro2");
192 waitForProcessEnd(businessKey, 10000);
195 WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
196 ServiceDecomposition serviceDecompositionExp = (ServiceDecomposition) getVariableFromHistory(businessKey, "serviceDecomposition");
197 String expectedSniroRequest = (String) getVariableFromHistory(businessKey, "sniroRequest");
199 Resource resourceAR = serviceDecompositionExp.getServiceResource("testResourceIdAR");
200 HomingSolution resourceARHoming = resourceAR.getHomingSolution();
201 Resource resourceAR2 = serviceDecompositionExp.getServiceResource("testResourceIdAR2");
202 HomingSolution resourceARHoming2 = resourceAR2.getHomingSolution();
203 Resource resourceVNF = serviceDecompositionExp.getServiceResource("testResourceIdVNF");
204 HomingSolution resourceVNFHoming = resourceVNF.getHomingSolution();
205 Resource resourceNet = serviceDecompositionExp.getServiceResource("testResourceIdNet");
206 HomingSolution resourceNetHoming = resourceNet.getHomingSolution();
207 Resource resourceNet2 = serviceDecompositionExp.getServiceResource("testResourceIdNet2");
208 HomingSolution resourceNetHoming2 = resourceNet2.getHomingSolution();
210 String resourceARHomingString = resourceARHoming.toString();
211 resourceARHomingString = resourceARHomingString.replaceAll("\\s+", " ");
212 String resourceARHoming2String = resourceARHoming2.toString();
213 resourceARHoming2String = resourceARHoming2String.replaceAll("\\s+", " ");
214 String resourceVNFHomingString = resourceVNFHoming.toString();
215 resourceVNFHomingString = resourceVNFHomingString.replaceAll("\\s+", " ");
216 String resourceNetHomingString = resourceNetHoming.toString();
217 resourceNetHomingString = resourceNetHomingString.replaceAll("\\s+", " ");
218 String resourceNetHoming2String = resourceNetHoming2.toString();
219 resourceNetHoming2String = resourceNetHoming2String.replaceAll("\\s+", " ");
220 expectedSniroRequest = expectedSniroRequest.replaceAll("\\s+", "");
222 assertNull(workflowException);
223 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);
224 assertEquals(homingSolutionService("service", "testSIID2", "testVnfHostname2", "aic", "testCloudRegionId2", "testAicClli2", "3.0", null, null), resourceARHoming2String);
225 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);
226 assertEquals(homingSolutionService("service", "testServiceInstanceIdNet", "testVnfHostNameNet", "aic", "testCloudRegionIdNet", "testAicClliNet", "3.0", null, null), resourceNetHomingString);
227 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);
228 assertEquals(verifySniroRequest(), expectedSniroRequest);
232 @Ignore // 1802 merge
233 @Deployment(resources = {"subprocess/BuildingBlock/Homing.bpmn", "subprocess/BuildingBlock/DecomposeService.bpmn", "subprocess/ReceiveWorkflowMessage.bpmn"})
234 public void testHoming_success_vnfResourceList() throws Exception {
236 // Create a Service Decomposition
237 MockGetServiceResourcesCatalogDataByModelUuid("2f7f309d-c842-4644-a2e4-34167be5eeb4", "/BuildingBlocks/catalogResp.json");
238 String busKey = UUID.randomUUID().toString();
239 Map<String, Object> vars = new HashMap<>();
240 setVariablesForServiceDecomposition(vars, "testRequestId123", "ff5256d2-5a33-55df-13ab-12abad84e7ff");
241 invokeSubProcess("DecomposeService", busKey, vars);
243 ServiceDecomposition sd = (ServiceDecomposition) getVariableFromHistory(busKey, "serviceDecomposition");
244 List<VnfResource> vnfResourceList = sd.getServiceVnfs();
245 vnfResourceList.get(0).setResourceId("test-resource-id-000");
251 String businessKey = UUID.randomUUID().toString();
252 Map<String, Object> variables = new HashMap<>();
253 variables.put("homingService", "sniro");
254 variables.put("isDebugLogEnabled", "true");
255 variables.put("msoRequestId", "testRequestId");
256 variables.put("serviceInstanceId", "testServiceInstanceId");
257 variables.put("serviceDecomposition", sd);
258 variables.put("subscriberInfo", subscriber2);
260 invokeSubProcess("Homing", businessKey, variables);
261 injectWorkflowMessages(callbacks, "sniro3");
262 waitForProcessEnd(businessKey, 10000);
266 WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
267 ServiceDecomposition serviceDecompositionExp = (ServiceDecomposition) getVariableFromHistory(businessKey, "serviceDecomposition");
269 Resource resourceVnf = serviceDecompositionExp.getServiceResource("test-resource-id-000");
270 HomingSolution resourceVnfHoming = resourceVnf.getHomingSolution();
272 String resourceVnfHomingString = resourceVnfHoming.toString();
273 resourceVnfHomingString = resourceVnfHomingString.replaceAll("\\s+", " ");
275 assertNull(workflowException);
278 String sniroRequest = (String) getVariableFromHistory(businessKey, "sniroRequest");
279 assertEquals(FileUtil.readResourceFile("__files/BuildingBlocks/sniroRequest_infravnf").replaceAll("\n", "").replaceAll("\r", "").replaceAll("\t", ""), sniroRequest.replaceAll("\n", "").replaceAll("\r", "").replaceAll("\t", ""));
281 assertEquals(homingSolutionService("service", "service-instance-01234", "MDTNJ01", "att-aic", "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);
285 @Ignore // 1802 merge
286 @Deployment(resources = {"subprocess/BuildingBlock/Homing.bpmn", "subprocess/ReceiveWorkflowMessage.bpmn"})
287 public void testHoming_success_existingLicense() throws Exception {
291 String businessKey = UUID.randomUUID().toString();
292 Map<String, Object> variables = new HashMap<String, Object>();
293 setVariablesExistingLicense(variables);
295 invokeSubProcess("Homing", businessKey, variables);
297 injectWorkflowMessages(callbacks, "sniro");
299 waitForProcessEnd(businessKey, 10000);
302 WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
303 ServiceDecomposition serviceDecompositionExp = (ServiceDecomposition) getVariableFromHistory(businessKey, "serviceDecomposition");
304 String sniroRequest = (String) getVariableFromHistory(businessKey, "sniroRequest");
306 Resource resourceAR = serviceDecompositionExp.getServiceResource("testResourceIdAR");
307 HomingSolution resourceARHoming = resourceAR.getHomingSolution();
308 Resource resourceAR2 = serviceDecompositionExp.getServiceResource("testResourceIdAR2");
309 HomingSolution resourceARHoming2 = resourceAR2.getHomingSolution();
310 Resource resourceVNF = serviceDecompositionExp.getServiceResource("testResourceIdVNF");
311 HomingSolution resourceVNFHoming = resourceVNF.getHomingSolution();
312 String resourceARHomingString = resourceARHoming.toString();
313 resourceARHomingString = resourceARHomingString.replaceAll("\\s+", " ");
314 String resourceARHoming2String = resourceARHoming2.toString();
315 resourceARHoming2String = resourceARHoming2String.replaceAll("\\s+", " ");
316 String resourceVNFHomingString = resourceVNFHoming.toString();
317 resourceVNFHomingString = resourceVNFHomingString.replaceAll("\\s+", " ");
318 sniroRequest = sniroRequest.replaceAll("\\s+", "");
320 assertNull(workflowException);
321 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);
322 assertEquals(homingSolutionService("service", "testSIID2", "testVnfHostname2", "aic", "testCloudRegionId2", "testAicClli2", "3.0", null, null), resourceARHoming2String);
323 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);
324 assertEquals(verifySniroRequest_existingLicense(), sniroRequest);
330 @Deployment(resources = {"subprocess/BuildingBlock/Homing.bpmn", "subprocess/ReceiveWorkflowMessage.bpmn"})
331 public void testHoming_error_inputVariable() throws Exception {
333 String businessKey = UUID.randomUUID().toString();
334 Map<String, Object> variables = new HashMap<>();
335 setVariables3(variables);
337 invokeSubProcess("Homing", businessKey, variables);
339 waitForProcessEnd(businessKey, 10000);
342 WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
344 assertEquals("WorkflowException[processKey=Homing,errorCode=4000,errorMessage=A required input variable is missing or null]", workflowException.toString());
348 @Deployment(resources = {"subprocess/BuildingBlock/Homing.bpmn", "subprocess/ReceiveWorkflowMessage.bpmn"})
349 public void testHoming_error_badResponse() throws Exception {
352 String businessKey = UUID.randomUUID().toString();
353 Map<String, Object> variables = new HashMap<>();
354 setVariables(variables);
356 invokeSubProcess("Homing", businessKey, variables);
358 waitForProcessEnd(businessKey, 10000);
361 WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
363 assertEquals("WorkflowException[processKey=Homing,errorCode=500,errorMessage=Received a Bad Sync Response from Sniro/OOF.]", workflowException.toString());
367 @Ignore // 1802 merge
368 @Deployment(resources = {"subprocess/BuildingBlock/Homing.bpmn", "subprocess/ReceiveWorkflowMessage.bpmn"})
369 public void testHoming_error_sniroNoSolution() throws Exception {
372 String businessKey = UUID.randomUUID().toString();
373 Map<String, Object> variables = new HashMap<>();
374 setVariables(variables);
376 invokeSubProcess("Homing", businessKey, variables);
378 injectWorkflowMessages(callbacks, "sniroNoSol");
380 waitForProcessEnd(businessKey, 10000);
383 WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
385 assertEquals("WorkflowException[processKey=Homing,errorCode=400,errorMessage=No solution found for plan 08e1b8cf-144a-4bac-b293-d5e2eedc97e8]", workflowException.toString());
389 @Deployment(resources = {"subprocess/BuildingBlock/Homing.bpmn", "subprocess/ReceiveWorkflowMessage.bpmn"})
390 public void testHoming_error_sniroPolicyException() throws Exception {
393 String businessKey = UUID.randomUUID().toString();
394 Map<String, Object> variables = new HashMap<>();
395 setVariables(variables);
397 invokeSubProcess("Homing", businessKey, variables);
399 injectWorkflowMessages(callbacks, "sniroPolicyEx");
401 waitForProcessEnd(businessKey, 10000);
404 WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
406 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());
410 @Deployment(resources = {"subprocess/BuildingBlock/Homing.bpmn", "subprocess/ReceiveWorkflowMessage.bpmn"})
411 public void testHoming_error_sniroServiceException() throws Exception {
414 String businessKey = UUID.randomUUID().toString();
415 Map<String, Object> variables = new HashMap<>();
416 setVariables(variables);
418 invokeSubProcess("Homing", businessKey, variables);
420 injectWorkflowMessages(callbacks, "sniroServiceEx");
422 waitForProcessEnd(businessKey, 10000);
425 WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
427 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());
432 private void setVariables(Map<String, Object> variables) {
433 variables.put("homingService", "sniro");
434 variables.put("isDebugLogEnabled", "true");
435 // variables.put("mso-request-id", "testRequestId");
436 variables.put("msoRequestId", "testRequestId");
437 variables.put("serviceInstanceId", "testServiceInstanceId");
438 variables.put("serviceDecomposition", serviceDecomposition);
439 variables.put("subscriberInfo", subscriber2);
443 private void setVariables2(Map<String, Object> variables) {
444 List<NetworkResource> netList = new ArrayList<NetworkResource>();
445 NetworkResource net = new NetworkResource();
446 net.setResourceId("testResourceIdNet");
447 ModelInfo netModel = new ModelInfo();
448 netModel.setModelCustomizationUuid("testModelCustomizationUuidNet");
449 netModel.setModelInvariantUuid("testModelInvariantIdNet");
450 netModel.setModelName("testModelNameNet");
451 netModel.setModelVersion("testModelVersionNet");
452 net.setModelInfo(netModel);
454 NetworkResource net2 = new NetworkResource();
455 net2.setResourceId("testResourceIdNet2");
456 ModelInfo netModel2 = new ModelInfo();
457 netModel2.setModelCustomizationUuid("testModelCustomizationUuidNet2");
458 netModel2.setModelInvariantUuid("testModelInvariantIdNet2");
459 netModel2.setModelName("testModelNameNet2");
460 netModel2.setModelVersion("testModelVersionNet2");
461 net2.setModelInfo(netModel2);
463 serviceDecomposition.setServiceNetworks(netList);
465 variables.put("homingService", "sniro");
466 variables.put("isDebugLogEnabled", "true");
467 variables.put("msoRequestId", "testRequestId");
468 variables.put("serviceInstanceId", "testServiceInstanceId");
469 variables.put("serviceDecomposition", serviceDecomposition);
470 variables.put("subscriberInfo", subscriber2);
473 private void setVariables3(Map<String, Object> variables) {
474 variables.put("homingService", "sniro");
475 variables.put("isDebugLogEnabled", "true");
476 // variables.put("mso-request-id", "testRequestId");
477 variables.put("msoRequestId", "testRequestId");
478 variables.put("serviceInstanceId", "testServiceInstanceId");
479 variables.put("serviceDecomposition", null);
480 variables.put("subscriberInfo", subscriber2);
484 private void setVariablesExistingLicense(Map<String, Object> variables) {
485 HomingSolution currentHomingSolution = new HomingSolution();
486 serviceDecomposition.getServiceVnfs().get(0).setCurrentHomingSolution(currentHomingSolution);
487 serviceDecomposition.getServiceVnfs().get(0).getCurrentHomingSolution().getLicense().addEntitlementPool("testEntitlementPoolId1");
488 serviceDecomposition.getServiceVnfs().get(0).getCurrentHomingSolution().getLicense().addEntitlementPool("testEntitlementPoolId2");
490 serviceDecomposition.getServiceVnfs().get(0).getCurrentHomingSolution().getLicense().addLicenseKeyGroup("testLicenseKeyGroupId1");
491 serviceDecomposition.getServiceVnfs().get(0).getCurrentHomingSolution().getLicense().addLicenseKeyGroup("testLicenseKeyGroupId2");
493 variables.put("isDebugLogEnabled", "true");
494 // variables.put("mso-request-id", "testRequestId");
495 variables.put("msoRequestId", "testRequestId");
496 variables.put("serviceInstanceId", "testServiceInstanceId");
497 variables.put("serviceDecomposition", serviceDecomposition);
498 variables.put("subscriberInfo", subscriber2);
502 private String homingSolutionService(String type, String serviceInstanceId, String vnfHostname, String cloudOwner, String cloudRegionId, String aicClli, String aicVersion, String enList, String licenseList){
503 String solution = "";
505 solution = "{ \"homingSolution\" : { \"inventoryType\" : \"" + type + "\", \"serviceInstanceId\" : \"" + serviceInstanceId + "\", \"vnfHostname\" : \"" + vnfHostname + "\", \"cloudOwner\" : \"" + cloudOwner + "\", \"cloudRegionId\" : \"" + cloudRegionId + "\", \"aicClli\" : \"" + aicClli + "\", \"aicVersion\" : \"" + aicVersion + "\", \"license\" : { }, \"rehome\" : false } }";
507 solution = "{ \"homingSolution\" : { \"inventoryType\" : \"" + type + "\", \"serviceInstanceId\" : \"" + serviceInstanceId + "\", \"vnfHostname\" : \"" + vnfHostname + "\", \"cloudOwner\" : \"" + cloudOwner + "\", \"cloudRegionId\" : \"" + cloudRegionId + "\", \"aicClli\" : \"" + aicClli + "\", \"aicVersion\" : \"" + aicVersion + "\", \"license\" : { \"entitlementPoolList\" : [ " + enList + " ], \"licenseKeyGroupList\" : [ " + licenseList + " ] }, \"rehome\" : false } }";
512 private String homingSolutionCloud(String type, String serviceInstanceId, String vnfHostname, String cloudOwner, String cloudRegionId, String aicClli, String aicVersion, String enList, String licenseList){
513 String solution = "";
515 solution = "{ \"homingSolution\" : { \"inventoryType\" : \"" + type + "\", \"cloudOwner\" : \"" + cloudOwner + "\", \"cloudRegionId\" : \"" + cloudRegionId + "\", \"aicClli\" : \"" + aicClli + "\", \"aicVersion\" : \"" + aicVersion + "\", \"license\" : { }, \"rehome\" : false } }";
517 solution = "{ \"homingSolution\" : { \"inventoryType\" : \"" + type + "\", \"cloudOwner\" : \"" + cloudOwner + "\", \"cloudRegionId\" : \"" + cloudRegionId + "\", \"aicClli\" : \"" + aicClli + "\", \"aicVersion\" : \"" + aicVersion + "\", \"license\" : { \"entitlementPoolList\" : [ " + enList + " ], \"licenseKeyGroupList\" : [ " + licenseList + " ] }, \"rehome\" : false } }";
522 private void setVariablesForServiceDecomposition(Map<String, Object> variables, String requestId, String siId) {
523 variables.put("homingService", "sniro");
524 variables.put("isDebugLogEnabled", "true");
525 variables.put("mso-request-id", requestId);
526 variables.put("msoRequestId", requestId);
527 variables.put("serviceInstanceId",siId);
529 String serviceModelInfo = "{ "+ "\"modelType\": \"service\"," +
530 "\"modelInvariantUuid\": \"1cc4e2e4-eb6e-404d-a66f-c8733cedcce8\"," +
531 "\"modelUuid\": \"2f7f309d-c842-4644-a2e4-34167be5eeb4\"," +
532 "\"modelName\": \"ADIOD vRouter vCE 011017 Service\"," +
533 "\"modelVersion\": \"5.0\"," +
535 variables.put("serviceModelInfo", serviceModelInfo);
538 private String verifySniroRequest(){
539 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},\"placement\":{\"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}\"}}";
543 private String verifySniroRequest_existingLicense(){
544 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},\"placement\":{\"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}\"}}";