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.*;
28 import java.io.IOException;
29 import java.util.ArrayList;
30 import java.util.HashMap;
31 import java.util.List;
33 import java.util.UUID;
34 import org.camunda.bpm.engine.test.Deployment;
35 import org.junit.Ignore;
36 import org.junit.Test;
37 import org.onap.so.BaseIntegrationTest;
38 import org.onap.so.bpmn.core.WorkflowException;
39 import org.onap.so.bpmn.core.domain.*;
40 import org.onap.so.bpmn.mock.FileUtil;
41 import org.slf4j.Logger;
42 import org.slf4j.LoggerFactory;
46 * Test the SNIRO Homing subflow building block.
49 public class SniroHomingV1IT extends BaseIntegrationTest {
51 Logger logger = LoggerFactory.getLogger(SniroHomingV1IT.class);
54 ServiceDecomposition serviceDecomposition = new ServiceDecomposition();
55 String subscriber = "";
56 String subscriber2 = "";
58 private final CallbackSet callbacks = new CallbackSet();
60 public SniroHomingV1IT() throws IOException {
61 String sniroCallback = FileUtil.readResourceFile("__files/BuildingBlocks/sniroCallback2AR1Vnf");
62 String sniroCallback2 = FileUtil.readResourceFile("__files/BuildingBlocks/sniroCallback2AR1Vnf2Net");
63 String sniroCallback3 = FileUtil.readResourceFile("__files/BuildingBlocks/sniroCallbackInfraVnf");
64 String sniroCallbackNoSolution =
65 FileUtil.readResourceFile("__files/BuildingBlocks/sniroCallbackNoSolutionFound");
66 String sniroCallbackPolicyException =
67 FileUtil.readResourceFile("__files/BuildingBlocks/sniroCallbackPolicyException");
68 String sniroCallbackServiceException =
69 FileUtil.readResourceFile("__files/BuildingBlocks/sniroCallbackServiceException");
70 callbacks.put("sniro", JSON, "SNIROResponse", sniroCallback);
71 callbacks.put("sniro2", JSON, "SNIROResponse", sniroCallback2);
72 callbacks.put("sniro3", JSON, "SNIROResponse", sniroCallback3);
73 callbacks.put("sniroNoSol", JSON, "SNIROResponse", sniroCallbackNoSolution);
74 callbacks.put("sniroPolicyEx", JSON, "SNIROResponse", sniroCallbackPolicyException);
75 callbacks.put("sniroServiceEx", JSON, "SNIROResponse", sniroCallbackServiceException);
78 ModelInfo sModel = new ModelInfo();
79 sModel.setModelCustomizationUuid("testModelCustomizationUuid");
80 sModel.setModelInstanceName("testModelInstanceName");
81 sModel.setModelInvariantUuid("testModelInvariantId");
82 sModel.setModelName("testModelName");
83 sModel.setModelUuid("testModelUuid");
84 sModel.setModelVersion("testModelVersion");
86 ServiceInstance si = new ServiceInstance();
87 si.setInstanceId("testServiceInstanceId123");
89 List<AllottedResource> arList = new ArrayList<AllottedResource>();
90 AllottedResource ar = new AllottedResource();
91 ar.setResourceId("testResourceIdAR");
92 ar.setResourceInstanceName("testARInstanceName");
93 ModelInfo arModel = new ModelInfo();
94 arModel.setModelCustomizationUuid("testModelCustomizationUuidAR");
95 arModel.setModelInvariantUuid("testModelInvariantIdAR");
96 arModel.setModelName("testModelNameAR");
97 arModel.setModelVersion("testModelVersionAR");
98 arModel.setModelUuid("testARModelUuid");
99 arModel.setModelType("testModelTypeAR");
100 ar.setModelInfo(arModel);
101 AllottedResource ar2 = new AllottedResource();
102 ar2.setResourceId("testResourceIdAR2");
103 ar2.setResourceInstanceName("testAR2InstanceName");
104 ModelInfo arModel2 = new ModelInfo();
105 arModel2.setModelCustomizationUuid("testModelCustomizationUuidAR2");
106 arModel2.setModelInvariantUuid("testModelInvariantIdAR2");
107 arModel2.setModelName("testModelNameAR2");
108 arModel2.setModelVersion("testModelVersionAR2");
109 arModel2.setModelUuid("testAr2ModelUuid");
110 arModel2.setModelType("testModelTypeAR2");
111 ar2.setModelInfo(arModel2);
115 List<VnfResource> vnfList = new ArrayList<VnfResource>();
116 VnfResource vnf = new VnfResource();
117 vnf.setResourceId("testResourceIdVNF");
118 vnf.setResourceInstanceName("testVnfInstanceName");
119 ModelInfo vnfModel = new ModelInfo();
120 vnfModel.setModelCustomizationUuid("testModelCustomizationUuidVNF");
121 vnfModel.setModelInvariantUuid("testModelInvariantIdVNF");
122 vnfModel.setModelName("testModelNameVNF");
123 vnfModel.setModelVersion("testModelVersionVNF");
124 vnfModel.setModelUuid("testVnfModelUuid");
125 vnfModel.setModelType("testModelTypeVNF");
126 vnf.setModelInfo(vnfModel);
128 logger.debug("SERVICE DECOMP: {}", serviceDecomposition.getServiceResourcesJsonString());
129 serviceDecomposition.setModelInfo(sModel);
130 serviceDecomposition.setAllottedResources(arList);
131 serviceDecomposition.setVnfResources(vnfList);
132 serviceDecomposition.setServiceInstance(si);
136 "{\"globalSubscriberId\": \"SUB12_0322_DS_1201\",\"subscriberCommonSiteId\": \"DALTX0101\",\"subscriberName\": \"SUB_12_0322_DS_1201\"}";
137 subscriber2 = "{\"globalSubscriberId\": \"SUB12_0322_DS_1201\",\"subscriberName\": \"SUB_12_0322_DS_1201\"}";
143 public void testHoming_success_2AR1Vnf() throws Exception {
145 mockSNIRO(wireMockServer);
147 String businessKey = UUID.randomUUID().toString();
148 Map<String, Object> variables = new HashMap<>();
149 setVariables(variables);
151 invokeSubProcess("Homing", businessKey, variables);
153 injectWorkflowMessages(callbacks, "sniro");
155 waitForProcessEnd(businessKey, 10000);
158 WorkflowException workflowException =
159 (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
160 ServiceDecomposition serviceDecompositionExp =
161 (ServiceDecomposition) getVariableFromHistory(businessKey, "serviceDecomposition");
162 String expectedSniroRequest = (String) getVariableFromHistory(businessKey, "sniroRequest");
164 Resource resourceAR = serviceDecompositionExp.getServiceResource("testResourceIdAR");
165 HomingSolution resourceARHoming = resourceAR.getHomingSolution();
166 Resource resourceAR2 = serviceDecompositionExp.getServiceResource("testResourceIdAR2");
167 HomingSolution resourceARHoming2 = resourceAR2.getHomingSolution();
168 Resource resourceVNF = serviceDecompositionExp.getServiceResource("testResourceIdVNF");
169 HomingSolution resourceVNFHoming = resourceVNF.getHomingSolution();
170 String resourceARHomingString = resourceARHoming.toString();
171 resourceARHomingString = resourceARHomingString.replaceAll("\\s+", " ");
172 String resourceARHoming2String = resourceARHoming2.toString();
173 resourceARHoming2String = resourceARHoming2String.replaceAll("\\s+", " ");
174 String resourceVNFHomingString = resourceVNFHoming.toString();
175 resourceVNFHomingString = resourceVNFHomingString.replaceAll("\\s+", " ");
176 expectedSniroRequest = expectedSniroRequest.replaceAll("\\s+", "");
178 assertNull(workflowException);
180 homingSolutionService("service", "testSIID1", "MDTNJ01", "aic", "dfwtx", "KDTNJ01", "3.0",
181 "\"f1d563e8-e714-4393-8f99-cc480144a05e\", \"j1d563e8-e714-4393-8f99-cc480144a05e\"",
182 "\"s1d563e8-e714-4393-8f99-cc480144a05e\", \"b1d563e8-e714-4393-8f99-cc480144a05e\""),
183 resourceARHomingString);
184 assertEquals(homingSolutionService("service", "testSIID2", "testVnfHostname2", "aic", "testCloudRegionId2",
185 "testAicClli2", "3.0", null, null), resourceARHoming2String);
187 homingSolutionCloud("cloud", "", "", "aic", "testCloudRegionId3", "testAicClli3", "3.0",
188 "\"91d563e8-e714-4393-8f99-cc480144a05e\", \"21d563e8-e714-4393-8f99-cc480144a05e\"",
189 "\"31d563e8-e714-4393-8f99-cc480144a05e\", \"71d563e8-e714-4393-8f99-cc480144a05e\""),
190 resourceVNFHomingString);
191 assertEquals(verifySniroRequest(), expectedSniroRequest);
198 public void testHoming_success_2AR1Vnf2Net() throws Exception {
200 mockSNIRO(wireMockServer);
202 String businessKey = UUID.randomUUID().toString();
203 Map<String, Object> variables = new HashMap<>();
204 setVariables2(variables);
206 invokeSubProcess("Homing", businessKey, variables);
208 injectWorkflowMessages(callbacks, "sniro2");
210 waitForProcessEnd(businessKey, 10000);
213 WorkflowException workflowException =
214 (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
215 ServiceDecomposition serviceDecompositionExp =
216 (ServiceDecomposition) getVariableFromHistory(businessKey, "serviceDecomposition");
217 String expectedSniroRequest = (String) getVariableFromHistory(businessKey, "sniroRequest");
219 Resource resourceAR = serviceDecompositionExp.getServiceResource("testResourceIdAR");
220 HomingSolution resourceARHoming = resourceAR.getHomingSolution();
221 Resource resourceAR2 = serviceDecompositionExp.getServiceResource("testResourceIdAR2");
222 HomingSolution resourceARHoming2 = resourceAR2.getHomingSolution();
223 Resource resourceVNF = serviceDecompositionExp.getServiceResource("testResourceIdVNF");
224 HomingSolution resourceVNFHoming = resourceVNF.getHomingSolution();
225 Resource resourceNet = serviceDecompositionExp.getServiceResource("testResourceIdNet");
226 HomingSolution resourceNetHoming = resourceNet.getHomingSolution();
227 Resource resourceNet2 = serviceDecompositionExp.getServiceResource("testResourceIdNet2");
228 HomingSolution resourceNetHoming2 = resourceNet2.getHomingSolution();
230 String resourceARHomingString = resourceARHoming.toString();
231 resourceARHomingString = resourceARHomingString.replaceAll("\\s+", " ");
232 String resourceARHoming2String = resourceARHoming2.toString();
233 resourceARHoming2String = resourceARHoming2String.replaceAll("\\s+", " ");
234 String resourceVNFHomingString = resourceVNFHoming.toString();
235 resourceVNFHomingString = resourceVNFHomingString.replaceAll("\\s+", " ");
236 String resourceNetHomingString = resourceNetHoming.toString();
237 resourceNetHomingString = resourceNetHomingString.replaceAll("\\s+", " ");
238 String resourceNetHoming2String = resourceNetHoming2.toString();
239 resourceNetHoming2String = resourceNetHoming2String.replaceAll("\\s+", " ");
240 expectedSniroRequest = expectedSniroRequest.replaceAll("\\s+", "");
242 assertNull(workflowException);
244 homingSolutionService("service", "testSIID1", "MDTNJ01", "aic", "dfwtx", "KDTNJ01", "3.0",
245 "\"f1d563e8-e714-4393-8f99-cc480144a05e\", \"j1d563e8-e714-4393-8f99-cc480144a05e\"",
246 "\"s1d563e8-e714-4393-8f99-cc480144a05e\", \"b1d563e8-e714-4393-8f99-cc480144a05e\""),
247 resourceARHomingString);
248 assertEquals(homingSolutionService("service", "testSIID2", "testVnfHostname2", "aic", "testCloudRegionId2",
249 "testAicClli2", "3.0", null, null), resourceARHoming2String);
251 homingSolutionCloud("cloud", "", "", "aic", "testCloudRegionId3", "testAicClli3", "3.0",
252 "\"91d563e8-e714-4393-8f99-cc480144a05e\", \"21d563e8-e714-4393-8f99-cc480144a05e\"",
253 "\"31d563e8-e714-4393-8f99-cc480144a05e\", \"71d563e8-e714-4393-8f99-cc480144a05e\""),
254 resourceVNFHomingString);
255 assertEquals(homingSolutionService("service", "testServiceInstanceIdNet", "testVnfHostNameNet", "aic",
256 "testCloudRegionIdNet", "testAicClliNet", "3.0", null, null), resourceNetHomingString);
258 homingSolutionCloud("cloud", "", "", "aic", "testCloudRegionIdNet2", "testAicClliNet2", "3.0",
259 "\"f1d563e8-e714-4393-8f99-cc480144a05n\", \"j1d563e8-e714-4393-8f99-cc480144a05n\"",
260 "\"s1d563e8-e714-4393-8f99-cc480144a05n\", \"b1d563e8-e714-4393-8f99-cc480144a05n\""),
261 resourceNetHoming2String);
262 assertEquals(verifySniroRequest(), expectedSniroRequest);
268 public void testHoming_success_vnfResourceList() throws Exception {
270 // Create a Service Decomposition
271 MockGetServiceResourcesCatalogDataByModelUuid(wireMockServer, "2f7f309d-c842-4644-a2e4-34167be5eeb4",
272 "/BuildingBlocks/catalogResp.json");
273 String busKey = UUID.randomUUID().toString();
274 Map<String, Object> vars = new HashMap<>();
275 setVariablesForServiceDecomposition(vars, "testRequestId123", "ff5256d2-5a33-55df-13ab-12abad84e7ff");
276 invokeSubProcess("DecomposeService", busKey, vars);
278 ServiceDecomposition sd = (ServiceDecomposition) getVariableFromHistory(busKey, "serviceDecomposition");
279 List<VnfResource> vnfResourceList = sd.getVnfResources();
280 vnfResourceList.get(0).setResourceId("test-resource-id-000");
284 mockSNIRO(wireMockServer);
286 String businessKey = UUID.randomUUID().toString();
287 Map<String, Object> variables = new HashMap<>();
288 variables.put("homingService", "sniro");
289 variables.put("isDebugLogEnabled", "true");
290 variables.put("msoRequestId", "testRequestId");
291 variables.put("serviceInstanceId", "testServiceInstanceId");
292 variables.put("serviceDecomposition", sd);
293 variables.put("subscriberInfo", subscriber2);
295 invokeSubProcess("Homing", businessKey, variables);
296 injectWorkflowMessages(callbacks, "sniro3");
297 waitForProcessEnd(businessKey, 10000);
301 WorkflowException workflowException =
302 (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
303 ServiceDecomposition serviceDecompositionExp =
304 (ServiceDecomposition) getVariableFromHistory(businessKey, "serviceDecomposition");
306 Resource resourceVnf = serviceDecompositionExp.getServiceResource("test-resource-id-000");
307 HomingSolution resourceVnfHoming = resourceVnf.getHomingSolution();
309 String resourceVnfHomingString = resourceVnfHoming.toString();
310 resourceVnfHomingString = resourceVnfHomingString.replaceAll("\\s+", " ");
312 assertNull(workflowException);
315 String sniroRequest = (String) getVariableFromHistory(businessKey, "sniroRequest");
317 FileUtil.readResourceFile("__files/BuildingBlocks/sniroRequest_infravnf").replaceAll("\n", "")
318 .replaceAll("\r", "").replaceAll("\t", ""),
319 sniroRequest.replaceAll("\n", "").replaceAll("\r", "").replaceAll("\t", ""));
321 assertEquals(homingSolutionService("service", "service-instance-01234", "MDTNJ01", "CloudOwner", "mtmnj1a",
322 "KDTNJ01", "3.0", "\"f1d563e8-e714-4393-8f99-cc480144a05e\", \"j1d563e8-e714-4393-8f99-cc480144a05e\"",
323 "\"s1d563e8-e714-4393-8f99-cc480144a05e\", \"b1d563e8-e714-4393-8f99-cc480144a05e\""),
324 resourceVnfHomingString);
329 public void testHoming_success_existingLicense() throws Exception {
331 mockSNIRO(wireMockServer);
333 String businessKey = UUID.randomUUID().toString();
334 Map<String, Object> variables = new HashMap<String, Object>();
335 setVariablesExistingLicense(variables);
337 invokeSubProcess("Homing", businessKey, variables);
339 injectWorkflowMessages(callbacks, "sniro");
341 waitForProcessEnd(businessKey, 10000);
344 WorkflowException workflowException =
345 (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
346 ServiceDecomposition serviceDecompositionExp =
347 (ServiceDecomposition) getVariableFromHistory(businessKey, "serviceDecomposition");
348 String sniroRequest = (String) getVariableFromHistory(businessKey, "sniroRequest");
350 Resource resourceAR = serviceDecompositionExp.getServiceResource("testResourceIdAR");
351 HomingSolution resourceARHoming = resourceAR.getHomingSolution();
352 Resource resourceAR2 = serviceDecompositionExp.getServiceResource("testResourceIdAR2");
353 HomingSolution resourceARHoming2 = resourceAR2.getHomingSolution();
354 Resource resourceVNF = serviceDecompositionExp.getServiceResource("testResourceIdVNF");
355 HomingSolution resourceVNFHoming = resourceVNF.getHomingSolution();
356 String resourceARHomingString = resourceARHoming.toString();
357 resourceARHomingString = resourceARHomingString.replaceAll("\\s+", " ");
358 String resourceARHoming2String = resourceARHoming2.toString();
359 resourceARHoming2String = resourceARHoming2String.replaceAll("\\s+", " ");
360 String resourceVNFHomingString = resourceVNFHoming.toString();
361 resourceVNFHomingString = resourceVNFHomingString.replaceAll("\\s+", " ");
362 sniroRequest = sniroRequest.replaceAll("\\s+", "");
364 assertNull(workflowException);
366 homingSolutionService("service", "testSIID1", "MDTNJ01", "aic", "dfwtx", "KDTNJ01", "3.0",
367 "\"f1d563e8-e714-4393-8f99-cc480144a05e\", \"j1d563e8-e714-4393-8f99-cc480144a05e\"",
368 "\"s1d563e8-e714-4393-8f99-cc480144a05e\", \"b1d563e8-e714-4393-8f99-cc480144a05e\""),
369 resourceARHomingString);
370 assertEquals(homingSolutionService("service", "testSIID2", "testVnfHostname2", "aic", "testCloudRegionId2",
371 "testAicClli2", "3.0", null, null), resourceARHoming2String);
373 homingSolutionCloud("cloud", "", "", "aic", "testCloudRegionId3", "testAicClli3", "3.0",
374 "\"91d563e8-e714-4393-8f99-cc480144a05e\", \"21d563e8-e714-4393-8f99-cc480144a05e\"",
375 "\"31d563e8-e714-4393-8f99-cc480144a05e\", \"71d563e8-e714-4393-8f99-cc480144a05e\""),
376 resourceVNFHomingString);
377 assertEquals(verifySniroRequest_existingLicense(), sniroRequest);
384 public void testHoming_error_inputVariable() throws Exception {
386 String businessKey = UUID.randomUUID().toString();
387 Map<String, Object> variables = new HashMap<>();
388 setVariables3(variables);
390 invokeSubProcess("Homing", businessKey, variables);
392 waitForProcessEnd(businessKey, 10000);
395 WorkflowException workflowException =
396 (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
399 "WorkflowException[processKey=Homing,errorCode=4000,errorMessage=A required input variable is missing or null]",
400 workflowException.toString());
405 public void testHoming_error_badResponse() throws Exception {
406 mockSNIRO_500(wireMockServer);
408 String businessKey = UUID.randomUUID().toString();
409 Map<String, Object> variables = new HashMap<>();
410 setVariables(variables);
412 invokeSubProcess("Homing", businessKey, variables);
414 waitForProcessEnd(businessKey, 10000);
417 WorkflowException workflowException =
418 (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
421 "WorkflowException[processKey=Homing,errorCode=500,errorMessage=Received a Bad Sync Response from Sniro/OOF.]",
422 workflowException.toString());
428 public void testHoming_error_sniroNoSolution() throws Exception {
429 mockSNIRO(wireMockServer);
431 String businessKey = UUID.randomUUID().toString();
432 Map<String, Object> variables = new HashMap<>();
433 setVariables(variables);
435 invokeSubProcess("Homing", businessKey, variables);
437 injectWorkflowMessages(callbacks, "sniroNoSol");
439 waitForProcessEnd(businessKey, 10000);
442 WorkflowException workflowException =
443 (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
446 "WorkflowException[processKey=Homing,errorCode=400,errorMessage=No solution found for plan 08e1b8cf-144a-4bac-b293-d5e2eedc97e8]",
447 workflowException.toString());
452 public void testHoming_error_sniroPolicyException() throws Exception {
453 mockSNIRO(wireMockServer);
455 String businessKey = UUID.randomUUID().toString();
456 Map<String, Object> variables = new HashMap<>();
457 setVariables(variables);
459 invokeSubProcess("Homing", businessKey, variables);
461 injectWorkflowMessages(callbacks, "sniroPolicyEx");
463 waitForProcessEnd(businessKey, 10000);
466 WorkflowException workflowException =
467 (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
470 "WorkflowException[processKey=Homing,errorCode=400,errorMessage=Sniro Async Callback Response contains a Request Error Policy Exception: Message content size exceeds the allowable limit]",
471 workflowException.toString());
476 public void testHoming_error_sniroServiceException() throws Exception {
477 mockSNIRO(wireMockServer);
479 String businessKey = UUID.randomUUID().toString();
480 Map<String, Object> variables = new HashMap<>();
481 setVariables(variables);
483 invokeSubProcess("Homing", businessKey, variables);
485 injectWorkflowMessages(callbacks, "sniroServiceEx");
487 waitForProcessEnd(businessKey, 10000);
490 WorkflowException workflowException =
491 (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
494 "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]",
495 workflowException.toString());
500 private void setVariables(Map<String, Object> variables) {
501 variables.put("homingService", "sniro");
502 variables.put("isDebugLogEnabled", "true");
503 // variables.put("mso-request-id", "testRequestId");
504 variables.put("msoRequestId", "testRequestId");
505 variables.put("serviceInstanceId", "testServiceInstanceId");
506 variables.put("serviceDecomposition", serviceDecomposition);
507 variables.put("subscriberInfo", subscriber2);
511 private void setVariables2(Map<String, Object> variables) {
512 List<NetworkResource> netList = new ArrayList<NetworkResource>();
513 NetworkResource net = new NetworkResource();
514 net.setResourceId("testResourceIdNet");
515 ModelInfo netModel = new ModelInfo();
516 netModel.setModelCustomizationUuid("testModelCustomizationUuidNet");
517 netModel.setModelInvariantUuid("testModelInvariantIdNet");
518 netModel.setModelName("testModelNameNet");
519 netModel.setModelVersion("testModelVersionNet");
520 net.setModelInfo(netModel);
522 NetworkResource net2 = new NetworkResource();
523 net2.setResourceId("testResourceIdNet2");
524 ModelInfo netModel2 = new ModelInfo();
525 netModel2.setModelCustomizationUuid("testModelCustomizationUuidNet2");
526 netModel2.setModelInvariantUuid("testModelInvariantIdNet2");
527 netModel2.setModelName("testModelNameNet2");
528 netModel2.setModelVersion("testModelVersionNet2");
529 net2.setModelInfo(netModel2);
531 serviceDecomposition.setNetworkResources(netList);
533 variables.put("homingService", "sniro");
534 variables.put("isDebugLogEnabled", "true");
535 variables.put("msoRequestId", "testRequestId");
536 variables.put("serviceInstanceId", "testServiceInstanceId");
537 variables.put("serviceDecomposition", serviceDecomposition);
538 variables.put("subscriberInfo", subscriber2);
541 private void setVariables3(Map<String, Object> variables) {
542 variables.put("homingService", "sniro");
543 variables.put("isDebugLogEnabled", "true");
544 // variables.put("mso-request-id", "testRequestId");
545 variables.put("msoRequestId", "testRequestId");
546 variables.put("serviceInstanceId", "testServiceInstanceId");
547 variables.put("serviceDecomposition", null);
548 variables.put("subscriberInfo", subscriber2);
552 private void setVariablesExistingLicense(Map<String, Object> variables) {
553 HomingSolution currentHomingSolution = new HomingSolution();
554 serviceDecomposition.getVnfResources().get(0).setCurrentHomingSolution(currentHomingSolution);
555 serviceDecomposition.getVnfResources().get(0).getCurrentHomingSolution().getLicense()
556 .addEntitlementPool("testEntitlementPoolId1");
557 serviceDecomposition.getVnfResources().get(0).getCurrentHomingSolution().getLicense()
558 .addEntitlementPool("testEntitlementPoolId2");
560 serviceDecomposition.getVnfResources().get(0).getCurrentHomingSolution().getLicense()
561 .addLicenseKeyGroup("testLicenseKeyGroupId1");
562 serviceDecomposition.getVnfResources().get(0).getCurrentHomingSolution().getLicense()
563 .addLicenseKeyGroup("testLicenseKeyGroupId2");
565 variables.put("isDebugLogEnabled", "true");
566 // variables.put("mso-request-id", "testRequestId");
567 variables.put("msoRequestId", "testRequestId");
568 variables.put("serviceInstanceId", "testServiceInstanceId");
569 variables.put("serviceDecomposition", serviceDecomposition);
570 variables.put("subscriberInfo", subscriber2);
574 private String homingSolutionService(String type, String serviceInstanceId, String vnfHostname, String cloudOwner,
575 String cloudRegionId, String aicClli, String aicVersion, String enList, String licenseList) {
576 String solution = "";
577 if (enList == null) {
578 solution = "{ \"homingSolution\" : { \"inventoryType\" : \"" + type + "\", \"serviceInstanceId\" : \""
579 + serviceInstanceId + "\", \"vnfHostname\" : \"" + vnfHostname + "\", \"cloudOwner\" : \""
580 + cloudOwner + "\", \"cloudRegionId\" : \"" + cloudRegionId + "\", \"aicClli\" : \"" + aicClli
581 + "\", \"aicVersion\" : \"" + aicVersion + "\", \"license\" : { }, \"rehome\" : false } }";
583 solution = "{ \"homingSolution\" : { \"inventoryType\" : \"" + type + "\", \"serviceInstanceId\" : \""
584 + serviceInstanceId + "\", \"vnfHostname\" : \"" + vnfHostname + "\", \"cloudOwner\" : \""
585 + cloudOwner + "\", \"cloudRegionId\" : \"" + cloudRegionId + "\", \"aicClli\" : \"" + aicClli
586 + "\", \"aicVersion\" : \"" + aicVersion + "\", \"license\" : { \"entitlementPoolList\" : [ "
587 + enList + " ], \"licenseKeyGroupList\" : [ " + licenseList + " ] }, \"rehome\" : false } }";
592 private String homingSolutionCloud(String type, String serviceInstanceId, String vnfHostname, String cloudOwner,
593 String cloudRegionId, String aicClli, String aicVersion, String enList, String licenseList) {
594 String solution = "";
595 if (enList == null) {
596 solution = "{ \"homingSolution\" : { \"inventoryType\" : \"" + type + "\", \"cloudOwner\" : \"" + cloudOwner
597 + "\", \"cloudRegionId\" : \"" + cloudRegionId + "\", \"aicClli\" : \"" + aicClli
598 + "\", \"aicVersion\" : \"" + aicVersion + "\", \"license\" : { }, \"rehome\" : false } }";
600 solution = "{ \"homingSolution\" : { \"inventoryType\" : \"" + type + "\", \"cloudOwner\" : \"" + cloudOwner
601 + "\", \"cloudRegionId\" : \"" + cloudRegionId + "\", \"aicClli\" : \"" + aicClli
602 + "\", \"aicVersion\" : \"" + aicVersion + "\", \"license\" : { \"entitlementPoolList\" : [ "
603 + enList + " ], \"licenseKeyGroupList\" : [ " + licenseList + " ] }, \"rehome\" : false } }";
608 private void setVariablesForServiceDecomposition(Map<String, Object> variables, String requestId, String siId) {
609 variables.put("homingService", "sniro");
610 variables.put("isDebugLogEnabled", "true");
611 variables.put("mso-request-id", requestId);
612 variables.put("msoRequestId", requestId);
613 variables.put("serviceInstanceId", siId);
615 String serviceModelInfo = "{ " + "\"modelType\": \"service\","
616 + "\"modelInvariantUuid\": \"1cc4e2e4-eb6e-404d-a66f-c8733cedcce8\","
617 + "\"modelUuid\": \"2f7f309d-c842-4644-a2e4-34167be5eeb4\","
618 + "\"modelName\": \"ADIOD vRouter vCE 011017 Service\"," + "\"modelVersion\": \"5.0\"," + "}";
619 variables.put("serviceModelInfo", serviceModelInfo);
622 private String verifySniroRequest() {
624 "{\"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}\"}}";
628 private String verifySniroRequest_existingLicense() {
630 "{\"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}\"}}";