2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 - 2018 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.infrastructure.workflow.tasks;
25 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
26 import static org.hamcrest.CoreMatchers.containsString;
27 import static org.hamcrest.CoreMatchers.equalTo;
28 import static org.junit.Assert.assertEquals;
29 import static org.junit.Assert.assertFalse;
30 import static org.junit.Assert.assertNotNull;
31 import static org.junit.Assert.assertNull;
32 import static org.junit.Assert.assertThat;
33 import static org.junit.Assert.assertTrue;
34 import static org.junit.Assert.fail;
35 import static org.mockito.ArgumentMatchers.anyObject;
36 import static org.mockito.ArgumentMatchers.anyString;
37 import static org.mockito.ArgumentMatchers.isA;
38 import static org.mockito.Mockito.doReturn;
39 import static org.mockito.Mockito.when;
40 import com.fasterxml.jackson.databind.ObjectMapper;
41 import java.io.IOException;
42 import java.net.MalformedURLException;
43 import java.nio.file.Files;
44 import java.nio.file.Paths;
45 import java.util.ArrayList;
46 import java.util.Arrays;
47 import java.util.HashMap;
48 import java.util.List;
50 import java.util.Optional;
51 import java.util.UUID;
52 import org.camunda.bpm.engine.delegate.BpmnError;
53 import org.camunda.bpm.engine.delegate.DelegateExecution;
54 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
55 import org.javatuples.Pair;
56 import org.junit.Before;
57 import org.junit.Ignore;
58 import org.junit.Rule;
59 import org.junit.Test;
60 import org.junit.rules.ExpectedException;
61 import org.mockito.InjectMocks;
62 import org.mockito.Mock;
63 import org.mockito.Spy;
64 import org.onap.aai.domain.yang.GenericVnf;
65 import org.onap.aai.domain.yang.GenericVnfs;
66 import org.onap.aai.domain.yang.L3Network;
67 import org.onap.aai.domain.yang.Relationship;
68 import org.onap.aai.domain.yang.RelationshipList;
69 import org.onap.aai.domain.yang.ServiceInstance;
70 import org.onap.aai.domain.yang.ServiceInstances;
71 import org.onap.aai.domain.yang.VfModule;
72 import org.onap.aai.domain.yang.VfModules;
73 import org.onap.aai.domain.yang.VolumeGroup;
74 import org.onap.so.bpmn.BaseTaskTest;
75 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
76 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
77 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
78 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
79 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
80 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.DuplicateNameException;
81 import org.onap.so.client.aai.AAIObjectType;
82 import org.onap.so.client.aai.entities.AAIResultWrapper;
83 import org.onap.so.client.aai.entities.Relationships;
84 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
85 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
86 import org.onap.so.client.orchestration.AAIEntityNotFoundException;
87 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
88 import org.onap.so.db.catalog.beans.CollectionResource;
89 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
90 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
91 import org.onap.so.db.catalog.beans.ConfigurationResource;
92 import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
93 import org.onap.so.db.catalog.beans.CvnfcCustomization;
94 import org.onap.so.db.catalog.beans.HeatEnvironment;
95 import org.onap.so.db.catalog.beans.HeatTemplate;
96 import org.onap.so.db.catalog.beans.InstanceGroup;
97 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
98 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
99 import org.onap.so.db.catalog.beans.Service;
100 import org.onap.so.db.catalog.beans.VfModuleCustomization;
101 import org.onap.so.db.catalog.beans.macro.NorthBoundRequest;
102 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
103 import org.onap.so.serviceinstancebeans.ModelInfo;
104 import org.onap.so.serviceinstancebeans.RequestDetails;
105 import org.onap.so.serviceinstancebeans.RequestParameters;
106 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
107 import org.onap.so.serviceinstancebeans.SubscriberInfo;
108 import org.springframework.core.env.Environment;
110 public class WorkflowActionTest extends BaseTaskTest {
114 protected Environment environment;
116 protected WorkflowAction workflowAction;
117 private DelegateExecution execution;
121 protected WorkflowAction SPY_workflowAction;
124 public ExpectedException thrown = ExpectedException.none();
126 private String RESOURCE_PATH = "src/test/resources/__files/";
128 private List<OrchestrationFlow> replaceVfModuleOrchFlows =
129 createFlowList("DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
130 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
131 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
132 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
133 private List<OrchestrationFlow> replaceRetainAssignmentsVfModuleOrchFlows = createFlowList("DeactivateVfModuleBB",
134 "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "UnassignVolumeGroupBB",
135 "AssignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
136 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
139 public void before() throws Exception {
140 execution = new DelegateExecutionFake();
141 org.onap.aai.domain.yang.ServiceInstance servInstance = new org.onap.aai.domain.yang.ServiceInstance();
142 servInstance.setServiceInstanceId("TEST");
143 when(bbSetupUtils.getAAIServiceInstanceByName(anyString(), anyObject())).thenReturn(servInstance);
144 workflowAction.setBbInputSetupUtils(bbSetupUtils);
145 workflowAction.setBbInputSetup(bbInputSetup);
152 public void selectExecutionListALaCarteNetworkCreateTest() throws Exception {
153 String gAction = "createInstance";
154 String resource = "Network";
155 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
156 execution.setVariable("requestAction", gAction);
158 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
159 execution.setVariable("bpmnRequest", bpmnRequest);
160 execution.setVariable("aLaCarte", true);
161 execution.setVariable("apiVersion", "7");
162 execution.setVariable("requestUri", "v6/networks/123");
164 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
165 List<OrchestrationFlow> orchFlows =
166 createFlowList("AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
167 northBoundRequest.setOrchestrationFlowList(orchFlows);
169 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
170 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
171 workflowAction.selectExecutionList(execution);
172 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
173 assertEqualsBulkFlowName(ebbs, "AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
177 public void selectExecutionListALaCarteNetworkDeleteTest() throws Exception {
178 String gAction = "deleteInstance";
179 String resource = "Network";
180 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
181 execution.setVariable("requestAction", gAction);
183 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
184 execution.setVariable("bpmnRequest", bpmnRequest);
185 execution.setVariable("aLaCarte", true);
186 execution.setVariable("apiVersion", "7");
187 execution.setVariable("requestUri", "v6/networks/123");
189 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
190 List<OrchestrationFlow> orchFlows =
191 createFlowList("DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
192 northBoundRequest.setOrchestrationFlowList(orchFlows);
194 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
195 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
196 workflowAction.selectExecutionList(execution);
197 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
198 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
202 public void selectExecutionListALaCarteServiceCreateTest() throws Exception {
203 String gAction = "createInstance";
204 String resource = "Service";
205 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
206 execution.setVariable("requestAction", gAction);
208 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
209 execution.setVariable("bpmnRequest", bpmnRequest);
210 execution.setVariable("aLaCarte", true);
211 execution.setVariable("apiVersion", "7");
212 execution.setVariable("requestUri", "v6/serviceInstances/123");
215 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
216 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "ActivateServiceInstanceBB");
217 northBoundRequest.setOrchestrationFlowList(orchFlows);
219 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
220 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
221 workflowAction.selectExecutionList(execution);
222 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
223 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
227 * SERVICE MACRO TESTS
230 public void selectExecutionListServiceMacroAssignTest() throws Exception {
231 String gAction = "assignInstance";
232 String resource = "Service";
233 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
234 execution.setVariable("requestAction", gAction);
236 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
237 execution.setVariable("bpmnRequest", bpmnRequest);
238 execution.setVariable("aLaCarte", false);
239 execution.setVariable("apiVersion", "7");
240 execution.setVariable("requestUri", "v6/serviceInstances/123");
243 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
244 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
245 "AssignVolumeGroupBB", "AssignVfModuleBB");
246 northBoundRequest.setOrchestrationFlowList(orchFlows);
248 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
249 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
250 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
251 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
252 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
253 HeatTemplate volumeHeatTemplate = new HeatTemplate();
254 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
255 vfModuleCustomization.setVfModule(vfModule);
257 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
258 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
259 HeatEnvironment heatEnvironment = new HeatEnvironment();
260 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
261 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
262 HeatTemplate moduleHeatTemplate = new HeatTemplate();
263 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
264 vfModuleCustomization2.setVfModule(vfModule2);
266 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
267 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
269 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
270 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
271 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
272 .thenReturn(vfModuleCustomization);
273 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
274 .thenReturn(vfModuleCustomization2);
275 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
276 .thenReturn(vfModuleCustomization3);
277 workflowAction.selectExecutionList(execution);
278 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
279 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
280 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
284 public void selectExecutionListServiceMacroAssignNoCloudTest() throws Exception {
285 String gAction = "assignInstance";
286 String resource = "Service";
287 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
288 execution.setVariable("requestAction", gAction);
289 String bpmnRequest = new String(
290 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssignNoCloud.json")));
291 execution.setVariable("bpmnRequest", bpmnRequest);
292 execution.setVariable("aLaCarte", false);
293 execution.setVariable("apiVersion", "7");
294 execution.setVariable("requestUri", "v6/serviceInstances/123");
297 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
298 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
299 "AssignVolumeGroupBB", "AssignVfModuleBB");
300 northBoundRequest.setOrchestrationFlowList(orchFlows);
302 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
303 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
304 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
305 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
306 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
307 HeatTemplate volumeHeatTemplate = new HeatTemplate();
308 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
309 vfModuleCustomization.setVfModule(vfModule);
311 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
312 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
313 HeatEnvironment heatEnvironment = new HeatEnvironment();
314 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
315 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
316 HeatTemplate moduleHeatTemplate = new HeatTemplate();
317 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
318 vfModuleCustomization2.setVfModule(vfModule2);
320 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
321 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
323 when(environment.getProperty("org.onap.so.cloud-owner")).thenReturn("att-aic");
324 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
325 false, "att-aic")).thenReturn(northBoundRequest);
326 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
327 .thenReturn(vfModuleCustomization);
328 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
329 .thenReturn(vfModuleCustomization2);
330 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
331 .thenReturn(vfModuleCustomization3);
332 workflowAction.selectExecutionList(execution);
333 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
334 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
335 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
339 public void selectExecutionListServiceMacroActivateTest() throws Exception {
340 String gAction = "activateInstance";
341 String resource = "Service";
342 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
343 execution.setVariable("requestAction", gAction);
344 String bpmnRequest = new String(Files
345 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
346 execution.setVariable("bpmnRequest", bpmnRequest);
347 execution.setVariable("aLaCarte", false);
348 execution.setVariable("apiVersion", "7");
349 execution.setVariable("requestUri", "v6/serviceInstances/si0");
352 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
353 List<OrchestrationFlow> orchFlows =
354 createFlowList("CreateNetworkBB", "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
355 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "ActivateServiceInstanceBB");
356 northBoundRequest.setOrchestrationFlowList(orchFlows);
358 ServiceInstance serviceInstanceAAI = new ServiceInstance();
359 serviceInstanceAAI.setServiceInstanceId("si0");
360 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
361 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
362 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
363 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
364 vnf.setVnfId("vnf0");
367 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
368 vnf.getVfModules().add(vfModule);
369 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
370 vnf.getVfModules().add(vfModule2);
372 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
373 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
374 volumeGroup.setVolumeGroupId("volumeGroup0");
375 vnf.getVolumeGroups().add(volumeGroup);
377 serviceInstanceMSO.getVnfs().add(vnf);
379 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("si0");
380 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
381 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
382 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
383 workflowAction.selectExecutionList(execution);
384 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
385 assertEqualsBulkFlowName(ebbs, "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
386 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
387 "ActivateServiceInstanceBB");
388 assertEquals("volumeGroup0", ebbs.get(0).getWorkflowResourceIds().getVolumeGroupId());
389 assertEquals("volumeGroup0", ebbs.get(1).getWorkflowResourceIds().getVolumeGroupId());
390 assertEquals("testVfModuleId1", ebbs.get(2).getWorkflowResourceIds().getVfModuleId());
391 assertEquals("testVfModuleId2", ebbs.get(3).getWorkflowResourceIds().getVfModuleId());
392 assertEquals("testVfModuleId1", ebbs.get(4).getWorkflowResourceIds().getVfModuleId());
393 assertEquals("testVfModuleId2", ebbs.get(5).getWorkflowResourceIds().getVfModuleId());
394 assertEquals("vnf0", ebbs.get(6).getWorkflowResourceIds().getVnfId());
395 assertEquals("si0", ebbs.get(7).getWorkflowResourceIds().getServiceInstanceId());
400 public void selectExecutionListServiceMacroDeactivateTest() throws Exception {
401 String gAction = "deactivateInstance";
402 String resource = "Service";
403 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
404 execution.setVariable("requestAction", gAction);
405 String bpmnRequest = new String(Files
406 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
407 execution.setVariable("bpmnRequest", bpmnRequest);
408 execution.setVariable("aLaCarte", false);
409 execution.setVariable("apiVersion", "7");
410 execution.setVariable("requestUri", "v6/serviceInstances/123");
413 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
414 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateServiceInstanceBB");
415 northBoundRequest.setOrchestrationFlowList(orchFlows);
417 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
418 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
419 workflowAction.selectExecutionList(execution);
420 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
421 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(), "DeactivateServiceInstanceBB");
425 public void selectExecutionListServiceMacroEmptyServiceTest() throws Exception {
426 String gAction = "createInstance";
427 String resource = "Service";
428 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
429 execution.setVariable("requestAction", gAction);
430 String bpmnRequest = new String(Files
431 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
432 execution.setVariable("bpmnRequest", bpmnRequest);
433 execution.setVariable("aLaCarte", false);
434 execution.setVariable("apiVersion", "7");
435 execution.setVariable("requestUri", "v6/serviceInstances/123");
438 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
439 northBoundRequest.setIsToplevelflow(true);
440 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
441 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
442 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
443 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
444 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
445 northBoundRequest.setOrchestrationFlowList(orchFlows);
447 Service service = new Service();
448 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
449 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
450 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
451 workflowAction.selectExecutionList(execution);
452 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
453 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
457 public void selectExecutionListServiceMacroCreateJustNetworkTest() throws Exception {
458 String gAction = "createInstance";
459 String resource = "Service";
460 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
461 execution.setVariable("requestAction", gAction);
462 String bpmnRequest = new String(Files
463 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
464 execution.setVariable("bpmnRequest", bpmnRequest);
465 execution.setVariable("aLaCarte", false);
466 execution.setVariable("apiVersion", "7");
467 execution.setVariable("requestUri", "v6/serviceInstances/123");
470 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
471 northBoundRequest.setIsToplevelflow(true);
472 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
473 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
474 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
475 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
476 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
477 northBoundRequest.setOrchestrationFlowList(orchFlows);
479 Service service = new Service();
480 NetworkResourceCustomization networkCustomization = new NetworkResourceCustomization();
481 networkCustomization.setModelCustomizationUUID("1234");
482 service.getNetworkCustomizations().add(networkCustomization);
483 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
484 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
485 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
486 workflowAction.selectExecutionList(execution);
487 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
488 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignNetworkBB", "CreateNetworkBB",
489 "ActivateNetworkBB", "ActivateServiceInstanceBB");
493 public void selectExecutionListServiceMacroCreateWithNetworkCollectionTest() throws Exception {
494 String gAction = "createInstance";
495 String resource = "Service";
496 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
497 execution.setVariable("requestAction", gAction);
498 String bpmnRequest = new String(Files
499 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
500 execution.setVariable("bpmnRequest", bpmnRequest);
501 execution.setVariable("aLaCarte", false);
502 execution.setVariable("apiVersion", "7");
503 execution.setVariable("requestUri", "v6/serviceInstances/123");
506 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
507 northBoundRequest.setIsToplevelflow(true);
508 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
509 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
510 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
511 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
512 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
513 northBoundRequest.setOrchestrationFlowList(orchFlows);
515 Service service = new Service();
516 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
517 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
518 networkCust.setModelCustomizationUUID("123");
519 networkCustomizations.add(networkCust);
520 service.setNetworkCustomizations(networkCustomizations);
521 NetworkCollectionResourceCustomization collectionResourceCustomization =
522 new NetworkCollectionResourceCustomization();
523 collectionResourceCustomization.setModelCustomizationUUID("123");
525 CollectionResource collectionResource = new CollectionResource();
526 collectionResource.setToscaNodeType("NetworkCollection");
527 InstanceGroup instanceGroup = new InstanceGroup();
528 instanceGroup.setToscaNodeType("NetworkCollectionResource");
529 instanceGroup.setCollectionNetworkResourceCustomizations(new ArrayList<>());
530 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
531 new CollectionNetworkResourceCustomization();
532 collectionNetworkResourceCust.setModelCustomizationUUID("123");
533 collectionNetworkResourceCust.setNetworkResourceCustomization(collectionResourceCustomization);
534 instanceGroup.getCollectionNetworkResourceCustomizations().add(collectionNetworkResourceCust);
535 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
536 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
537 new CollectionResourceInstanceGroupCustomization();
538 collectionInstanceGroupCustomization.setModelCustomizationUUID("123");
539 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
540 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
541 collectionInstanceGroupCustomization.setInstanceGroup(instanceGroup);
542 collectionInstanceGroupCustomization.setCollectionResourceCust(collectionResourceCustomization);
543 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
544 collectionResource.setInstanceGroup(instanceGroup);
545 collectionResourceCustomization.setCollectionResource(collectionResource);;
546 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
547 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
548 doReturn(collectionResourceCustomization).when(catalogDbClient)
549 .getNetworkCollectionResourceCustomizationByID("123");
550 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
551 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
552 workflowAction.selectExecutionList(execution);
553 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
554 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "CreateNetworkCollectionBB", "AssignNetworkBB",
555 "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
556 "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB",
557 "ActivateServiceInstanceBB");
558 assertEquals("Network id not empty", !ebbs.get(2).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
559 assertEquals("Network id not empty", !ebbs.get(3).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
560 assertEquals("Network id not empty", !ebbs.get(4).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
561 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
562 ebbs.get(2).getWorkflowResourceIds().getNetworkId() == ebbs.get(3).getWorkflowResourceIds()
564 && ebbs.get(3).getWorkflowResourceIds().getNetworkId() == ebbs.get(4).getWorkflowResourceIds()
567 assertEquals("Network id not empty", !ebbs.get(5).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
568 assertEquals("Network id not empty", !ebbs.get(6).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
569 assertEquals("Network id not empty", !ebbs.get(7).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
570 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
571 ebbs.get(5).getWorkflowResourceIds().getNetworkId() == ebbs.get(6).getWorkflowResourceIds()
573 && ebbs.get(6).getWorkflowResourceIds().getNetworkId() == ebbs.get(7).getWorkflowResourceIds()
576 assertEquals("Network id not empty", !ebbs.get(8).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
577 assertEquals("Network id not empty", !ebbs.get(9).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
578 assertEquals("Network id not empty", !ebbs.get(10).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
579 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
580 ebbs.get(8).getWorkflowResourceIds().getNetworkId() == ebbs.get(9).getWorkflowResourceIds()
582 && ebbs.get(9).getWorkflowResourceIds().getNetworkId() == ebbs.get(10).getWorkflowResourceIds()
588 public void selectExecutionListServiceMacroCreateWithUserParams() throws Exception {
589 String gAction = "createInstance";
590 String resource = "Service";
591 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
592 execution.setVariable("requestAction", gAction);
594 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
595 execution.setVariable("bpmnRequest", bpmnRequest);
596 execution.setVariable("aLaCarte", false);
597 execution.setVariable("apiVersion", "7");
598 execution.setVariable("requestUri", "v6/serviceInstances/123");
601 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
602 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
603 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
604 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
605 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
606 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
607 northBoundRequest.setOrchestrationFlowList(orchFlows);
609 Service service = new Service();
610 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
612 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
613 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
614 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
615 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
616 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
617 HeatTemplate volumeHeatTemplate = new HeatTemplate();
618 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
619 vfModuleCustomization.setVfModule(vfModule);
621 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
622 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
623 HeatEnvironment heatEnvironment = new HeatEnvironment();
624 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
625 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
626 HeatTemplate moduleHeatTemplate = new HeatTemplate();
627 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
628 vfModuleCustomization2.setVfModule(vfModule2);
630 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
631 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
633 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
634 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
635 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
636 .thenReturn(vfModuleCustomization);
637 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
638 .thenReturn(vfModuleCustomization2);
639 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
640 .thenReturn(vfModuleCustomization3);
641 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
642 workflowAction.selectExecutionList(execution);
643 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
644 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
645 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB", "CreateVolumeGroupBB",
646 "ActivateVolumeGroupBB", "CreateVfModuleBB", "CreateVfModuleBB", "CreateVfModuleBB",
647 "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
648 "ActivateServiceInstanceBB");
649 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
650 int randomUUIDLength = UUID.randomUUID().toString().length();
651 assertEquals(randomUUIDLength, ebbs.get(1).getWorkflowResourceIds().getVnfId().length());
652 assertEquals(randomUUIDLength, ebbs.get(2).getWorkflowResourceIds().getVolumeGroupId().length());
653 assertEquals(randomUUIDLength, ebbs.get(3).getWorkflowResourceIds().getVfModuleId().length());
654 assertEquals(randomUUIDLength, ebbs.get(4).getWorkflowResourceIds().getVfModuleId().length());
655 assertEquals(randomUUIDLength, ebbs.get(5).getWorkflowResourceIds().getVfModuleId().length());
656 assertEquals(randomUUIDLength, ebbs.get(6).getWorkflowResourceIds().getVolumeGroupId().length());
657 assertEquals(randomUUIDLength, ebbs.get(7).getWorkflowResourceIds().getVolumeGroupId().length());
658 assertEquals(randomUUIDLength, ebbs.get(8).getWorkflowResourceIds().getVfModuleId().length());
659 assertEquals(randomUUIDLength, ebbs.get(9).getWorkflowResourceIds().getVfModuleId().length());
660 assertEquals(randomUUIDLength, ebbs.get(10).getWorkflowResourceIds().getVfModuleId().length());
661 assertEquals(randomUUIDLength, ebbs.get(11).getWorkflowResourceIds().getVfModuleId().length());
662 assertEquals(randomUUIDLength, ebbs.get(12).getWorkflowResourceIds().getVfModuleId().length());
663 assertEquals(randomUUIDLength, ebbs.get(13).getWorkflowResourceIds().getVfModuleId().length());
664 assertEquals(randomUUIDLength, ebbs.get(14).getWorkflowResourceIds().getVnfId().length());
665 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
666 assertEquals(true, execution.getVariable("homing"));
670 public void selectExecutionListServiceMacroDeleteTest() throws Exception {
671 String gAction = "deleteInstance";
672 String resource = "Service";
673 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
674 execution.setVariable("requestAction", gAction);
675 String bpmnRequest = new String(Files
676 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
677 execution.setVariable("bpmnRequest", bpmnRequest);
678 execution.setVariable("aLaCarte", false);
679 execution.setVariable("apiVersion", "7");
680 execution.setVariable("requestUri", "v6/serviceInstances/123");
683 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
684 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
685 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
686 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
687 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
688 northBoundRequest.setOrchestrationFlowList(orchFlows);
690 ServiceInstance serviceInstanceAAI = new ServiceInstance();
691 serviceInstanceAAI.setServiceInstanceId("aaisi123");
692 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
693 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
694 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
695 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
696 vnf.setVnfId("vnfId123");
698 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
699 vnf.getVfModules().add(vfModule);
700 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
701 vnf.getVfModules().add(vfModule2);
703 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
704 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
705 volumeGroup.setVolumeGroupId("vg123");
706 vnf.getVolumeGroups().add(volumeGroup);
708 serviceInstanceMSO.getVnfs().add(vnf);
710 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
711 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
712 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
713 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
714 workflowAction.selectExecutionList(execution);
715 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
716 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
717 "DeleteVfModuleBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB",
718 "DeactivateServiceInstanceBB", "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
719 "UnassignVnfBB", "UnassignServiceInstanceBB");
723 public void selectExecutionListServiceMacroUnassignTest() throws Exception {
724 String gAction = "unassignInstance";
725 String resource = "Service";
726 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
727 execution.setVariable("requestAction", gAction);
728 String bpmnRequest = new String(Files
729 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
730 execution.setVariable("bpmnRequest", bpmnRequest);
731 execution.setVariable("aLaCarte", false);
732 execution.setVariable("apiVersion", "7");
733 execution.setVariable("requestUri", "v6/serviceInstances/123");
736 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
737 List<OrchestrationFlow> orchFlows = createFlowList("UnassignVfModuleBB", "UnassignVolumeGroupBB",
738 "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
739 northBoundRequest.setOrchestrationFlowList(orchFlows);
741 ServiceInstance serviceInstanceAAI = new ServiceInstance();
742 serviceInstanceAAI.setServiceInstanceId("aaisi123");
743 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
744 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
745 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
746 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
747 vnf.setVnfId("vnfId123");
749 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
750 vnf.getVfModules().add(vfModule);
751 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
752 vnf.getVfModules().add(vfModule2);
754 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
755 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
756 volumeGroup.setVolumeGroupId("vg123");
757 vnf.getVolumeGroups().add(volumeGroup);
759 serviceInstanceMSO.getVnfs().add(vnf);
761 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
762 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
763 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
764 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
765 workflowAction.selectExecutionList(execution);
766 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
767 assertEqualsBulkFlowName(ebbs, "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
768 "UnassignVnfBB", "UnassignServiceInstanceBB");
772 public void selectExecutionListServiceMacroDeleteNetworkCollectionTest() throws Exception {
773 String gAction = "deleteInstance";
774 String resource = "Service";
775 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
776 execution.setVariable("requestAction", gAction);
777 String bpmnRequest = new String(Files
778 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
779 execution.setVariable("bpmnRequest", bpmnRequest);
780 execution.setVariable("aLaCarte", false);
781 execution.setVariable("apiVersion", "7");
782 execution.setVariable("requestUri", "v6/serviceInstances/123");
785 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
786 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
787 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
788 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
789 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
790 northBoundRequest.setOrchestrationFlowList(orchFlows);
792 ServiceInstance serviceInstanceAAI = new ServiceInstance();
793 serviceInstanceAAI.setServiceInstanceId("aaisi123");
794 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
795 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
797 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network =
798 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
799 network.setNetworkId("123");
800 serviceInstanceMSO.getNetworks().add(network);
801 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network2 =
802 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
803 network2.setNetworkId("321");
804 serviceInstanceMSO.getNetworks().add(network2);
806 Collection collection = new Collection();
807 serviceInstanceMSO.setCollection(collection);
809 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
810 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
811 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
812 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
813 workflowAction.selectExecutionList(execution);
814 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
815 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
816 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeleteNetworkCollectionBB",
817 "DeactivateServiceInstanceBB", "UnassignServiceInstanceBB");
821 public void selectExecutionListVnfMacroRecreateTest() throws Exception {
822 String gAction = "recreateInstance";
823 String resource = "Vnf";
824 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
825 execution.setVariable("requestAction", gAction);
827 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/VnfMacroReplace.json")));
828 execution.setVariable("bpmnRequest", bpmnRequest);
829 execution.setVariable("aLaCarte", false);
830 execution.setVariable("apiVersion", "7");
831 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/recreate");
832 execution.setVariable("serviceInstanceId", "123");
833 execution.setVariable("vnfId", "1234");
835 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
836 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
837 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
838 "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB",
839 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
840 "AAIUnsetVnfInMaintBB");
841 northBoundRequest.setOrchestrationFlowList(orchFlows);
843 ServiceInstance serviceInstanceAAI = new ServiceInstance();
844 serviceInstanceAAI.setServiceInstanceId("123");
845 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
846 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
847 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
848 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
849 vnf.setVnfId("1234");
851 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
852 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
853 vfModule.setVfModuleId("vfModule1");
854 vnf.getVfModules().add(vfModule);
855 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
856 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
857 vfModule2.setVfModuleId("vfModule2");
858 vnf.getVfModules().add(vfModule2);
860 serviceInstanceMSO.getVnfs().add(vnf);
862 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
863 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
864 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
865 false, "cloud-owner")).thenReturn(northBoundRequest);
866 workflowAction.selectExecutionList(execution);
867 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
868 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateVfModuleBB",
869 "DeactivateVfModuleBB", "DeleteVfModuleBB", "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB",
870 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
871 "AAIUnsetVnfInMaintBB");
875 public void selectExecutionListVnfMacroReplaceTest() throws Exception {
876 String gAction = "replaceInstance";
877 String resource = "Vnf";
878 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
879 execution.setVariable("requestAction", gAction);
881 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/VnfMacroReplace.json")));
882 execution.setVariable("bpmnRequest", bpmnRequest);
883 execution.setVariable("aLaCarte", false);
884 execution.setVariable("apiVersion", "7");
885 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/replace");
886 execution.setVariable("serviceInstanceId", "123");
887 execution.setVariable("vnfId", "1234");
889 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
890 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
891 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
892 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
893 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB",
894 "ChangeModelVnfBB", "ActivateVnfBB", "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB",
895 "AAIUnsetVnfInMaintBB");
896 northBoundRequest.setOrchestrationFlowList(orchFlows);
898 ServiceInstance serviceInstanceAAI = new ServiceInstance();
899 serviceInstanceAAI.setServiceInstanceId("123");
900 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
901 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
902 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
903 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
904 vnf.setVnfId("1234");
905 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
906 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
907 vfModule.setVfModuleId("vfModule1");
908 vnf.getVfModules().add(vfModule);
909 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
910 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
911 vfModule2.setVfModuleId("vfModule2");
912 vnf.getVfModules().add(vfModule2);
913 serviceInstanceMSO.getVnfs().add(vnf);
914 VfModule vfModuleAAI = new VfModule();
915 vfModuleAAI.setVfModuleId("vfModule2");
916 RelationshipList relationshipList = new RelationshipList();
917 Relationship relationship = new Relationship();
918 relationshipList.getRelationship().add(relationship);
919 vfModuleAAI.setRelationshipList(relationshipList);
920 Relationships relationships = new Relationships("abc");
921 Configuration config = new Configuration();
922 config.setConfigurationId("configId");
923 Optional<Configuration> configOp = Optional.of(config);
924 Optional<Relationships> relationshipsOp = Optional.of(relationships);
926 doReturn(relationshipsOp).when(workflowActionUtils).extractRelationshipsVnfc(isA(Relationships.class));
927 doReturn(configOp).when(workflowActionUtils).extractRelationshipsConfiguration(isA(Relationships.class));
928 doReturn(vfModuleAAI).when(bbSetupUtils).getAAIVfModule("1234", "vfModule2");
929 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
930 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
931 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
932 false, "cloud-owner")).thenReturn(northBoundRequest);
933 workflowAction.selectExecutionList(execution);
934 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
935 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateFabricConfigurationBB",
936 "UnassignFabricConfigurationBB", "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
937 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "ChangeModelVfModuleBB",
938 "CreateVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB",
939 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ChangeModelVnfBB", "ActivateVnfBB",
940 "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
941 for (ExecuteBuildingBlock executeBuildingBlock : ebbs) {
942 assertEquals("123", executeBuildingBlock.getWorkflowResourceIds().getServiceInstanceId());
948 public void selectExecutionListNetworkCollectionMacroCreate() throws Exception {
949 String gAction = "createInstance";
950 String resource = "NetworkCollection";
951 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
952 execution.setVariable("requestAction", gAction);
953 String bpmnRequest = new String(
954 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/CreateNetworkCollection.json")));
955 execution.setVariable("bpmnRequest", bpmnRequest);
956 execution.setVariable("aLaCarte", false);
957 execution.setVariable("apiVersion", "7");
958 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
961 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
962 List<OrchestrationFlow> orchFlows = createFlowList("CreateNetworkCollectionBB", "AssignNetworkBB",
963 "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB");
964 northBoundRequest.setOrchestrationFlowList(orchFlows);
966 Service service = new Service();
967 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
968 CollectionResource collectionResource = new CollectionResource();
969 collectionResource.setToscaNodeType("Data NetworkCollection Data");
970 collectionResourceCustomization.setCollectionResource(collectionResource);
971 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
973 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
974 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
975 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
976 workflowAction.selectExecutionList(execution);
977 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
978 assertEqualsBulkFlowName(ebbs, "CreateNetworkCollectionBB", "AssignNetworkBB", "CreateNetworkBB",
979 "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
980 "ActivateNetworkCollectionBB");
985 public void selectExecutionListNetworkCollectionMacroDelete() throws Exception {
986 String gAction = "deleteInstance";
987 String resource = "NetworkCollection";
988 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
989 execution.setVariable("requestAction", gAction);
990 String bpmnRequest = new String(
991 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/CreateNetworkCollection.json")));
992 execution.setVariable("bpmnRequest", bpmnRequest);
993 execution.setVariable("aLaCarte", false);
994 execution.setVariable("apiVersion", "7");
995 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
997 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
998 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateNetworkBB", "DeleteNetworkBB",
999 "UnassignNetworkBB", "DeactivateNetworkCollectionBB", "DeleteNetworkCollectionBB");
1000 northBoundRequest.setOrchestrationFlowList(orchFlows);
1002 Service service = new Service();
1003 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
1004 CollectionResource collectionResource = new CollectionResource();
1005 collectionResource.setToscaNodeType("Data NetworkCollection Data");
1006 collectionResourceCustomization.setCollectionResource(collectionResource);
1007 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
1009 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1010 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1011 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1012 workflowAction.selectExecutionList(execution);
1013 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1014 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1015 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeactivateNetworkCollectionBB",
1016 "DeleteNetworkCollectionBB");
1020 public void selectExecutionListALaCarteVfModuleNoFabricCreateTest() throws Exception {
1021 String gAction = "createInstance";
1022 String resource = "VfModule";
1023 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1024 execution.setVariable("requestAction", gAction);
1025 String bpmnRequest =
1026 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1027 execution.setVariable("bpmnRequest", bpmnRequest);
1028 execution.setVariable("aLaCarte", true);
1029 execution.setVariable("apiVersion", "7");
1030 execution.setVariable("requestUri",
1031 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1034 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1035 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1036 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1037 northBoundRequest.setOrchestrationFlowList(orchFlows);
1039 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1040 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1041 workflowAction.selectExecutionList(execution);
1042 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1043 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB");
1047 public void selectExecutionListALaCarteVfModuleFabricCreateTest() throws Exception {
1048 String gAction = "createInstance";
1049 String resource = "VfModule";
1050 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1051 execution.setVariable("requestAction", gAction);
1052 String bpmnRequest =
1053 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1054 execution.setVariable("bpmnRequest", bpmnRequest);
1055 execution.setVariable("aLaCarte", true);
1056 execution.setVariable("apiVersion", "7");
1057 execution.setVariable("requestUri",
1058 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1060 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1061 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1062 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1063 northBoundRequest.setOrchestrationFlowList(orchFlows);
1065 List<CvnfcCustomization> cvnfcCustomizations = new ArrayList<CvnfcCustomization>();
1066 CvnfcCustomization cvnfcCustomization = new CvnfcCustomization();
1067 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1068 new CvnfcConfigurationCustomization();
1069 ConfigurationResource configurationResource = new ConfigurationResource();
1070 configurationResource.setToscaNodeType("FabricConfiguration");
1071 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1072 vnfVfmoduleCvnfcConfigurationCustomization.setModelInstanceName("modelInstanceName1");
1073 vnfVfmoduleCvnfcConfigurationCustomization.setCvnfcCustomization(cvnfcCustomization);
1074 List<CvnfcConfigurationCustomization> custSet = new ArrayList<CvnfcConfigurationCustomization>();
1075 custSet.add(vnfVfmoduleCvnfcConfigurationCustomization);
1076 cvnfcCustomization.setCvnfcConfigurationCustomization(custSet);
1077 cvnfcCustomization.setDescription("description");
1078 cvnfcCustomizations.add(cvnfcCustomization);
1080 CvnfcCustomization cvnfcCustomization2 = new CvnfcCustomization();
1081 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization2 =
1082 new CvnfcConfigurationCustomization();
1083 ConfigurationResource configurationResource2 = new ConfigurationResource();
1084 configurationResource2.setToscaNodeType("FabricConfiguration");
1085 vnfVfmoduleCvnfcConfigurationCustomization2.setConfigurationResource(configurationResource2);
1086 vnfVfmoduleCvnfcConfigurationCustomization2.setModelInstanceName("modelInstanceName2");
1087 vnfVfmoduleCvnfcConfigurationCustomization2.setCvnfcCustomization(cvnfcCustomization2);
1088 List<CvnfcConfigurationCustomization> custSet2 = new ArrayList<CvnfcConfigurationCustomization>();
1089 custSet2.add(vnfVfmoduleCvnfcConfigurationCustomization2);
1090 cvnfcCustomization2.setCvnfcConfigurationCustomization(custSet2);
1091 cvnfcCustomization2.setDescription("description2");
1092 cvnfcCustomizations.add(cvnfcCustomization2);
1094 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1095 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1096 // when(catalogDbClient.getCvnfcCustomizationByVnfCustomizationUUIDAndVfModuleCustomizationUUID("fc25201d-36d6-43a3-8d39-fdae88e526ae",
1097 // "9a6d01fd-19a7-490a-9800-460830a12e0b")).thenReturn(cvnfcCustomizations);
1098 workflowAction.selectExecutionList(execution);
1099 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1100 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1101 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "AssignFabricConfigurationBB",
1102 "ActivateFabricConfigurationBB");
1106 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceTest() throws Exception {
1107 String gAction = "replaceInstance";
1108 String resource = "VfModule";
1109 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1110 execution.setVariable("requestAction", gAction);
1111 String bpmnRequest =
1112 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1113 execution.setVariable("bpmnRequest", bpmnRequest);
1114 execution.setVariable("aLaCarte", true);
1115 execution.setVariable("apiVersion", "7");
1116 execution.setVariable("requestUri",
1117 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1119 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1120 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1121 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1122 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1123 workflowAction.selectExecutionList(execution);
1124 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1126 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1127 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1128 "ChangeModelServiceInstanceBB");
1132 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1133 String gAction = "replaceInstanceRetainAssignments";
1134 String resource = "VfModule";
1135 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1136 execution.setVariable("requestAction", gAction);
1137 String bpmnRequest =
1138 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1139 execution.setVariable("bpmnRequest", bpmnRequest);
1140 execution.setVariable("aLaCarte", true);
1141 execution.setVariable("apiVersion", "7");
1142 execution.setVariable("requestUri",
1143 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1145 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1146 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1147 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1148 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1149 workflowAction.selectExecutionList(execution);
1150 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1152 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1153 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1157 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceTest() throws Exception {
1158 String gAction = "replaceInstance";
1159 String resource = "VfModule";
1160 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1161 execution.setVariable("requestAction", gAction);
1162 String bpmnRequest =
1163 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1164 execution.setVariable("bpmnRequest", bpmnRequest);
1165 execution.setVariable("aLaCarte", true);
1166 execution.setVariable("apiVersion", "7");
1167 execution.setVariable("requestUri",
1168 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1169 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1170 execution.setVariable("vfModuleId", "1234");
1172 VolumeGroup volumeGroup = new VolumeGroup();
1173 volumeGroup.setVolumeGroupId("volumeGroupId");
1174 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1175 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1176 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1177 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1178 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1179 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1180 workflowAction.selectExecutionList(execution);
1181 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1183 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1184 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVfModuleBB",
1185 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1189 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceRetainAssignmentsTest()
1191 String gAction = "replaceInstanceRetainAssignments";
1192 String resource = "VfModule";
1193 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1194 execution.setVariable("requestAction", gAction);
1195 String bpmnRequest =
1196 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1197 execution.setVariable("bpmnRequest", bpmnRequest);
1198 execution.setVariable("aLaCarte", true);
1199 execution.setVariable("apiVersion", "7");
1200 execution.setVariable("requestUri",
1201 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1202 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1203 execution.setVariable("vfModuleId", "1234");
1205 VolumeGroup volumeGroup = new VolumeGroup();
1206 volumeGroup.setVolumeGroupId("volumeGroupId");
1207 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1208 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1210 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1211 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1212 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1213 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1214 workflowAction.selectExecutionList(execution);
1215 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1217 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1218 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
1219 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1223 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceTest() throws Exception {
1224 String gAction = "replaceInstance";
1225 String resource = "VfModule";
1226 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1227 execution.setVariable("requestAction", gAction);
1228 String bpmnRequest =
1229 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1230 execution.setVariable("bpmnRequest", bpmnRequest);
1231 execution.setVariable("aLaCarte", true);
1232 execution.setVariable("apiVersion", "7");
1233 execution.setVariable("requestUri",
1234 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1235 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1236 execution.setVariable("vfModuleId", "1234");
1238 VolumeGroup volumeGroup = new VolumeGroup();
1239 volumeGroup.setVolumeGroupId("volumeGroupId");
1240 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1241 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1243 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1244 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1245 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1246 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1247 vfModuleCustomization.setVfModule(vfModule);
1248 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1249 .thenReturn(vfModuleCustomization);
1251 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1252 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1253 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1254 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1255 workflowAction.selectExecutionList(execution);
1256 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1258 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1259 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1260 "ChangeModelServiceInstanceBB");
1264 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1265 String gAction = "replaceInstanceRetainAssignments";
1266 String resource = "VfModule";
1267 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1268 execution.setVariable("requestAction", gAction);
1269 String bpmnRequest =
1270 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1271 execution.setVariable("bpmnRequest", bpmnRequest);
1272 execution.setVariable("aLaCarte", true);
1273 execution.setVariable("apiVersion", "7");
1274 execution.setVariable("requestUri",
1275 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1276 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1277 execution.setVariable("vfModuleId", "1234");
1279 VolumeGroup volumeGroup = new VolumeGroup();
1280 volumeGroup.setVolumeGroupId("volumeGroupId");
1281 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1282 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1284 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1285 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1286 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1287 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1288 vfModuleCustomization.setVfModule(vfModule);
1289 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1290 .thenReturn(vfModuleCustomization);
1292 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1293 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1294 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1295 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1296 workflowAction.selectExecutionList(execution);
1297 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1299 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1300 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1304 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceTest() throws Exception {
1305 String gAction = "replaceInstance";
1306 String resource = "VfModule";
1307 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1308 execution.setVariable("requestAction", gAction);
1309 String bpmnRequest =
1310 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1311 execution.setVariable("bpmnRequest", bpmnRequest);
1312 execution.setVariable("aLaCarte", true);
1313 execution.setVariable("apiVersion", "7");
1314 execution.setVariable("requestUri",
1315 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1316 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1317 execution.setVariable("vfModuleId", "1234");
1319 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1320 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1321 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1322 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1323 vfModuleCustomization.setVfModule(vfModule);
1324 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1325 .thenReturn(vfModuleCustomization);
1327 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1328 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1329 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1330 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1331 workflowAction.selectExecutionList(execution);
1332 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1334 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1335 "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1336 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1340 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceRetainAssignmentsTest()
1342 String gAction = "replaceInstanceRetainAssignments";
1343 String resource = "VfModule";
1344 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1345 execution.setVariable("requestAction", gAction);
1346 String bpmnRequest =
1347 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1348 execution.setVariable("bpmnRequest", bpmnRequest);
1349 execution.setVariable("aLaCarte", true);
1350 execution.setVariable("apiVersion", "7");
1351 execution.setVariable("requestUri",
1352 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1353 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1354 execution.setVariable("vfModuleId", "1234");
1356 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1357 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1358 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1359 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1360 vfModuleCustomization.setVfModule(vfModule);
1361 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1362 .thenReturn(vfModuleCustomization);
1364 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1365 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1366 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1367 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1368 workflowAction.selectExecutionList(execution);
1369 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1371 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "AssignVolumeGroupBB",
1372 "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
1373 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1377 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceTest() throws Exception {
1378 String gAction = "replaceInstance";
1379 String resource = "VfModule";
1380 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1381 execution.setVariable("requestAction", gAction);
1382 String bpmnRequest = new String(
1383 Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleReplaceRebuildVolumeGroups.json")));
1384 execution.setVariable("bpmnRequest", bpmnRequest);
1385 execution.setVariable("aLaCarte", true);
1386 execution.setVariable("apiVersion", "7");
1387 execution.setVariable("requestUri",
1388 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1389 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1390 execution.setVariable("vfModuleId", "1234");
1392 VolumeGroup volumeGroup = new VolumeGroup();
1393 volumeGroup.setVolumeGroupId("volumeGroupId");
1394 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1395 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1397 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1398 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1399 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1400 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1401 vfModuleCustomization.setVfModule(vfModule);
1402 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1403 .thenReturn(vfModuleCustomization);
1405 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1406 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1407 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1408 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1409 workflowAction.selectExecutionList(execution);
1410 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1412 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1413 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
1414 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
1415 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1419 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1420 String gAction = "replaceInstanceRetainAssignments";
1421 String resource = "VfModule";
1422 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1423 execution.setVariable("requestAction", gAction);
1424 String bpmnRequest = new String(
1425 Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleReplaceRebuildVolumeGroups.json")));
1426 execution.setVariable("bpmnRequest", bpmnRequest);
1427 execution.setVariable("aLaCarte", true);
1428 execution.setVariable("apiVersion", "7");
1429 execution.setVariable("requestUri",
1430 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1431 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1432 execution.setVariable("vfModuleId", "1234");
1434 VolumeGroup volumeGroup = new VolumeGroup();
1435 volumeGroup.setVolumeGroupId("volumeGroupId");
1436 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1437 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1439 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1440 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1441 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1442 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1443 vfModuleCustomization.setVfModule(vfModule);
1444 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1445 .thenReturn(vfModuleCustomization);
1447 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1448 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1449 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1450 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1451 workflowAction.selectExecutionList(execution);
1452 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1454 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1455 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB", "ChangeModelVfModuleBB",
1456 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1457 "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1462 public void selectExecutionListALaCarteVfModuleFabricDeleteTest() throws Exception {
1463 String gAction = "deleteInstance";
1464 String resource = "VfModule";
1465 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1466 execution.setVariable("requestAction", gAction);
1467 String bpmnRequest =
1468 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1469 execution.setVariable("bpmnRequest", bpmnRequest);
1470 execution.setVariable("aLaCarte", true);
1471 execution.setVariable("apiVersion", "7");
1472 execution.setVariable("requestUri",
1473 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1475 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1476 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1477 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1478 northBoundRequest.setOrchestrationFlowList(orchFlows);
1480 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1481 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1483 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1484 vnf.setVnfId("vnf0");
1485 vnf.setModelCustomizationId("modelCustomizationId");
1486 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1488 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1489 vfModule.setModelCustomizationId("modelCustomizationId");
1490 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1492 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1493 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1494 vnfc.setModelInvariantId("modelInvariantId");
1495 vnfc.setVnfcName("testVnfcName");
1497 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1500 List<org.onap.aai.domain.yang.Configuration> configurations =
1501 new ArrayList<org.onap.aai.domain.yang.Configuration>();
1502 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1503 configuration.setConfigurationId("configurationId");
1504 configuration.setModelCustomizationId("modelCustimizationId");
1505 configuration.setConfigurationName("testConfigurationName");
1506 configurations.add(configuration);
1507 doReturn(configurations).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1510 doReturn("testName").when(SPY_workflowAction).getVnfcNameForConfiguration(anyObject());
1512 SPY_workflowAction.selectExecutionList(execution);
1513 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1514 assertEqualsBulkFlowName(ebbs, "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB",
1515 "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1519 public void getConfigBuildingBlocksNoVfModuleFabricDeleteTest() throws Exception {
1520 String gAction = "deleteInstance";
1521 ObjectMapper mapper = new ObjectMapper();
1522 WorkflowType resourceType = WorkflowType.VFMODULE;
1523 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1524 execution.setVariable("requestAction", gAction);
1525 String bpmnRequest =
1526 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1527 execution.setVariable("bpmnRequest", bpmnRequest);
1528 execution.setVariable("vnfId", "1234");
1529 execution.setVariable("vfModuleId", "vfModuleId1234");
1530 execution.setVariable("requestUri",
1531 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1532 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1533 RequestDetails requestDetails = sIRequest.getRequestDetails();
1534 String requestAction = "deleteInstance";
1535 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1536 boolean aLaCarte = true;
1537 String apiVersion = "7";
1538 String vnfType = "vnfType";
1539 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1540 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1541 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1542 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1544 thrown.expect(AAIEntityNotFoundException.class);
1545 thrown.expectMessage(containsString(
1546 "No matching VfModule is found in Generic-Vnf in AAI for vnfId: 1234 and vfModuleId : vfModuleId1234"));
1548 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1549 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1551 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1552 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1553 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1554 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1556 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1557 vnf.setVnfId("vnf0");
1558 vnf.setModelCustomizationId("modelCustomizationId");
1559 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1561 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1562 vfModule.setModelCustomizationId("modelCustomizationId");
1563 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(null);
1565 SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1569 public void selectExecutionListALaCarteVfModuleNoFabricDeleteTest() throws Exception {
1570 String gAction = "deleteInstance";
1571 String resource = "VfModule";
1572 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1573 execution.setVariable("requestAction", gAction);
1574 String bpmnRequest =
1575 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1576 execution.setVariable("bpmnRequest", bpmnRequest);
1577 execution.setVariable("aLaCarte", true);
1578 execution.setVariable("apiVersion", "7");
1579 execution.setVariable("requestUri",
1580 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1582 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1583 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1584 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1585 northBoundRequest.setOrchestrationFlowList(orchFlows);
1587 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1588 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1590 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1591 vnf.setVnfId("vnf0");
1592 vnf.setModelCustomizationId("modelCustomizationId");
1593 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1595 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1596 vfModule.setModelCustomizationId("modelCustomizationId");
1597 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1599 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1600 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1601 vnfc.setModelInvariantId("modelInvariantId");
1602 vnfc.setVnfcName("testVnfcName");
1604 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1607 List<org.onap.aai.domain.yang.Configuration> configurations =
1608 new ArrayList<org.onap.aai.domain.yang.Configuration>();
1609 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1610 doReturn(configurations).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1613 doReturn("testName").when(SPY_workflowAction).getVnfcNameForConfiguration(anyObject());
1615 SPY_workflowAction.selectExecutionList(execution);
1616 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1617 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1621 public void selectExecutionListMacroResumeTest() throws Exception {
1622 String gAction = "createInstance";
1623 String resource = "Service";
1624 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1625 execution.setVariable("requestAction", gAction);
1626 String bpmnRequest =
1627 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
1628 execution.setVariable("bpmnRequest", bpmnRequest);
1629 execution.setVariable("aLaCarte", false);
1630 execution.setVariable("apiVersion", "7");
1631 execution.setVariable("requestUri", "v6/serviceInstances/123");
1633 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1634 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1635 northBoundRequest.setOrchestrationFlowList(orchFlows);
1637 Service service = new Service();
1638 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
1640 ServiceInstance si = new ServiceInstance();
1642 when(bbSetupUtils.getAAIServiceInstanceById("123")).thenReturn(si);
1643 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1645 String flowsToExecuteString =
1646 "[{\"buildingBlock\":{\"mso-id\":\"2f9ddc4b-4dcf-4129-a35f-be1625ae0176\",\"bpmn-flow-name\":\"AssignServiceInstanceBB\",\"key\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"is-virtual-link\":false,\"virtual-link-key\":null},\"requestId\":\"9c944122-d161-4280-8594-48c06a9d96d5\",\"apiVersion\":\"7\",\"resourceId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"requestAction\":\"deleteInstance\",\"vnfType\":\"\",\"aLaCarte\":true,\"homing\":false,\"workflowResourceIds\":{\"serviceInstanceId\":\"ff9dae72-05bb-4277-ad2b-1b082467c138\",\"vnfId\":\"84a29830-e533-4f20-a838-910c740bf24c\",\"networkId\":\"\",\"volumeGroupId\":\"\",\"vfModuleId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"networkCollectionId\":null,\"configurationId\":\"10f8a3a3-91bf-4821-9515-c01b2864dff0\",\"instanceGroupId\":\"\"},\"requestDetails\":{\"modelInfo\":{\"modelCustomizationName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelInvariantId\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelType\":\"vfModule\",\"modelId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelVersion\":\"1\",\"modelCustomizationUuid\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelVersionId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelCustomizationId\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelUuid\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelInvariantUuid\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelInstanceName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\"},\"requestInfo\":{\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"pj8646\"},\"cloudConfiguration\":{\"tenantId\":\"e2a6af59d1cb43b2874e943bbbf8470a\",\"cloudOwner\":\"att-nc\",\"lcpCloudRegionId\":\"auk51b\"},\"requestParameters\":{\"testApi\":\"GR_API\"}},\"configurationResourceKeys\":{\"vfModuleCustomizationUUID\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"vnfResourceCustomizationUUID\":\"a80f05b8-d651-44af-b999-8ed78fb4582f\",\"cvnfcCustomizationUUID\":\"69cce457-9ffd-4359-962b-0596a1e83ad1\",\"vnfcName\":\"zauk51bmcmr01mcm001\"}}]";
1647 ObjectMapper om = new ObjectMapper();
1648 List<ExecuteBuildingBlock> flowsToExecute = null;
1650 ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
1651 flowsToExecute = Arrays.asList(asArray);
1652 } catch (Exception e) {
1653 e.printStackTrace();
1656 when(bbSetupUtils.loadOriginalFlowExecutionPath(anyString())).thenReturn(flowsToExecute);
1658 workflowAction.selectExecutionList(execution);
1659 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1660 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB");
1664 public void getRelatedResourcesInVfModuleTest() throws Exception {
1665 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1666 vnfc.setModelInvariantId("modelInvariantId");
1667 vnfc.setVnfcName("testVnfcName");
1669 String vfncPayload =
1670 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/vnfcResponse.json")));
1671 AAIResultWrapper vfncWrapper = new AAIResultWrapper(vfncPayload);
1673 String configurationPayload =
1674 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/configurationResponse.json")));
1675 AAIResultWrapper configurationWrapper = new AAIResultWrapper(configurationPayload);
1676 List<AAIResultWrapper> configurationResultWrappers = new ArrayList<AAIResultWrapper>();
1677 configurationResultWrappers.add(configurationWrapper);
1679 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VNFC, vnfc.getVnfcName());
1680 when(bbSetupUtils.getAAIResourceDepthOne(uri)).thenReturn(vfncWrapper);
1682 doReturn(configurationResultWrappers).when(SPY_workflowAction).getResultWrappersFromRelationships(anyObject(),
1684 List<org.onap.aai.domain.yang.Configuration> configurationsList = SPY_workflowAction.getRelatedResourcesInVnfc(
1685 vnfc, org.onap.aai.domain.yang.Configuration.class, AAIObjectType.CONFIGURATION);
1686 assertEquals(1, configurationsList.size());
1687 assertEquals("testConfigurationId", configurationsList.get(0).getConfigurationId());
1691 * WorkflowActionBB Tests
1695 public void pluralTest() {
1696 List<String> items = Arrays.asList("serviceInstances, Service", "vnfs, Vnf", "vfModules, VfModule",
1697 "networks, Network", "invalidNames, invalidNames");
1698 items.forEach(item -> {
1699 String[] split = item.split(",");
1700 String type = split[0].trim();
1701 String expected = split[1].trim();
1702 assertThat(workflowAction.convertTypeFromPlural(type), equalTo(expected));
1707 public void sortExecutionPathByObjectForVlanTaggingCreateTest() throws Exception {
1708 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1709 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock();
1710 BuildingBlock bb = new BuildingBlock();
1711 bb.setBpmnFlowName("AssignNetworkBB");
1713 ebb.setBuildingBlock(bb);
1714 executeFlows.add(ebb);
1715 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock();
1716 BuildingBlock bb2 = new BuildingBlock();
1717 bb2.setBpmnFlowName("AssignNetworkBB");
1719 ebb2.setBuildingBlock(bb2);
1720 executeFlows.add(ebb2);
1721 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock();
1722 BuildingBlock bb3 = new BuildingBlock();
1723 bb3.setBpmnFlowName("CreateNetworkBB");
1725 ebb3.setBuildingBlock(bb3);
1726 executeFlows.add(ebb3);
1727 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock();
1728 BuildingBlock bb4 = new BuildingBlock();
1729 bb4.setBpmnFlowName("CreateNetworkBB");
1731 ebb4.setBuildingBlock(bb4);
1732 executeFlows.add(ebb4);
1733 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock();
1734 BuildingBlock bb5 = new BuildingBlock();
1735 bb5.setBpmnFlowName("ActivateNetworkBB");
1737 ebb5.setBuildingBlock(bb5);
1738 executeFlows.add(ebb5);
1739 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock();
1740 BuildingBlock bb6 = new BuildingBlock();
1741 bb6.setBpmnFlowName("ActivateNetworkBB");
1743 ebb6.setBuildingBlock(bb6);
1744 executeFlows.add(ebb6);
1746 List<ExecuteBuildingBlock> sorted =
1747 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "createInstance");
1748 assertEqualsBulkFlowName(sorted, "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB",
1749 "CreateNetworkBB", "ActivateNetworkBB");
1753 public void sortExecutionPathByObjectForVlanTaggingDeleteTest() throws Exception {
1754 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1755 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock();
1756 BuildingBlock bb = new BuildingBlock();
1757 bb.setBpmnFlowName("DeactivateNetworkBB");
1759 ebb.setBuildingBlock(bb);
1760 executeFlows.add(ebb);
1761 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock();
1762 BuildingBlock bb2 = new BuildingBlock();
1763 bb2.setBpmnFlowName("DeactivateNetworkBB");
1765 ebb2.setBuildingBlock(bb2);
1766 executeFlows.add(ebb2);
1767 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock();
1768 BuildingBlock bb3 = new BuildingBlock();
1769 bb3.setBpmnFlowName("DeleteNetworkBB");
1771 ebb3.setBuildingBlock(bb3);
1772 executeFlows.add(ebb3);
1773 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock();
1774 BuildingBlock bb4 = new BuildingBlock();
1775 bb4.setBpmnFlowName("DeleteNetworkBB");
1777 ebb4.setBuildingBlock(bb4);
1778 executeFlows.add(ebb4);
1779 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock();
1780 BuildingBlock bb5 = new BuildingBlock();
1781 bb5.setBpmnFlowName("UnassignNetworkBB");
1783 ebb5.setBuildingBlock(bb5);
1784 executeFlows.add(ebb5);
1785 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock();
1786 BuildingBlock bb6 = new BuildingBlock();
1787 bb6.setBpmnFlowName("UnassignNetworkBB");
1789 ebb6.setBuildingBlock(bb6);
1790 executeFlows.add(ebb6);
1792 List<ExecuteBuildingBlock> sorted =
1793 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "deleteInstance");
1794 assertEqualsBulkFlowName(sorted, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1795 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB");
1799 public void queryNorthBoundRequestCatalogDbNestedTest() throws MalformedURLException {
1800 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1801 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
1802 "VNF-Macro-Replace", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
1803 northBoundRequest.setOrchestrationFlowList(orchFlows);
1804 List<OrchestrationFlow> macroFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1805 "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB");
1807 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner("replaceInstance",
1808 "Vnf", false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1809 when(catalogDbClient.getOrchestrationFlowByAction("VNF-Macro-Replace")).thenReturn(macroFlows);
1810 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "replaceInstance",
1811 WorkflowType.VNF, false, "my-custom-cloud-owner");
1812 assertEquals(flows.get(0).getFlowName(), "AAICheckVnfInMaintBB");
1813 assertEquals(flows.get(1).getFlowName(), "AAISetVnfInMaintBB");
1814 assertEquals(flows.get(2).getFlowName(), "DeactivateVfModuleBB");
1815 assertEquals(flows.get(3).getFlowName(), "DeleteVfModuleBB");
1816 assertEquals(flows.get(4).getFlowName(), "DeactivateVnfBB");
1817 assertEquals(flows.get(5).getFlowName(), "CreateVfModuleBB");
1818 assertEquals(flows.get(6).getFlowName(), "ActivateVfModuleBB");
1819 assertEquals(flows.get(7).getFlowName(), "ActivateVnfBB");
1820 assertEquals(flows.get(8).getFlowName(), "SDNOVnfHealthCheckBB");
1821 assertEquals(flows.get(9).getFlowName(), "AAIUnsetVnfInMaintBB");
1825 public void queryNorthBoundRequestCatalogDbTransportTest() throws MalformedURLException {
1826 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1827 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1828 northBoundRequest.setOrchestrationFlowList(orchFlows);
1829 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwnerAndServiceType(
1830 "createInstance", "Service", true, "my-custom-cloud-owner", "TRANSPORT")).thenReturn(northBoundRequest);
1832 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "createInstance",
1833 WorkflowType.SERVICE, true, "my-custom-cloud-owner", "TRANSPORT");
1834 assertEquals(flows.get(0).getFlowName(), "AssignServiceInstanceBB");
1838 public void extractResourceIdAndTypeFromUriTest() {
1839 String uri = "/v6/serviceInstances/123";
1840 String uri2 = "/v6/serviceInstances/123/vnfs/1234";
1841 String uri3 = "/v6/serviceInstances";
1842 String uri4 = "/v6/serviceInstances/assign";
1843 String uri5 = "'/v6/serviceInstances/123/vnfs";
1844 String uri6 = "/v6/serviceInstances/123/vnfs/1234/someAction";
1845 String uri7 = "/v6/serviceInstances/123/vnfs/1234/vfModules/5678/replace";
1846 String uri8 = "/v6/serviceInstances/123/vnfs/1234/vfModules/scaleOut";
1847 Resource expected1 = new Resource(WorkflowType.SERVICE, "123", true);
1848 Resource expected2 = new Resource(WorkflowType.VNF, "1234", false);
1849 Resource expected3 = new Resource(WorkflowType.VNF, "1234", false);
1850 Resource expected4 = new Resource(WorkflowType.VFMODULE, "5678", false);
1851 Resource result = workflowAction.extractResourceIdAndTypeFromUri(uri);
1852 assertEquals(expected1.getResourceId(), result.getResourceId());
1853 assertEquals(expected1.getResourceType(), result.getResourceType());
1854 result = workflowAction.extractResourceIdAndTypeFromUri(uri2);
1855 assertEquals(expected2.getResourceId(), result.getResourceId());
1856 assertEquals(expected2.getResourceType(), result.getResourceType());
1857 result = workflowAction.extractResourceIdAndTypeFromUri(uri3);
1858 assertEquals("Service", result.getResourceType().toString());
1859 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1860 result = workflowAction.extractResourceIdAndTypeFromUri(uri4);
1861 assertEquals("Service", result.getResourceType().toString());
1862 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1863 result = workflowAction.extractResourceIdAndTypeFromUri(uri5);
1864 assertEquals("Vnf", result.getResourceType().toString());
1865 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1866 result = workflowAction.extractResourceIdAndTypeFromUri(uri6);
1867 assertEquals(expected3.getResourceId(), result.getResourceId());
1868 assertEquals(expected3.getResourceType(), result.getResourceType());
1869 result = workflowAction.extractResourceIdAndTypeFromUri(uri7);
1870 assertEquals(expected4.getResourceId(), result.getResourceId());
1871 assertEquals(expected4.getResourceType(), result.getResourceType());
1872 result = workflowAction.extractResourceIdAndTypeFromUri(uri8);
1873 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1874 assertEquals("VfModule", result.getResourceType().toString());
1879 public void extractResourceIdAndTypeFromUriInvalidTypeTest() {
1880 this.expectedException.expect(IllegalArgumentException.class);
1881 this.expectedException.expectMessage(containsString("Uri could not be parsed. No type found."));
1882 workflowAction.extractResourceIdAndTypeFromUri("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace");
1886 public void extractResourceIdAndTypeFromUriInvalidUriTest() {
1887 this.expectedException.expect(IllegalArgumentException.class);
1888 this.expectedException.expectMessage(containsString("Uri could not be parsed:"));
1889 workflowAction.extractResourceIdAndTypeFromUri("something that doesn't match anything");
1893 public void extractResourceIdAndTypeFromUriResumeTest() {
1894 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1895 "http://localhost:9100/onap/so/infra/serviceInstantiation/v7/serviceInstances/4ff87c63-461b-4d83-8121-d351e6db216c/vnfs/eea9b93b-b5b9-4fad-9c35-12d52e4b683f/vfModules/33cb74cd-9cb3-4090-a3c0-1b8c8e235847/resume");
1896 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1900 public void extractResourceIdAndTypeFromUriReplaceResumeTest() {
1901 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1902 "http://localhost:9100/onap/so/infra/serviceInstantiation/v7/serviceInstances/4ff87c63-461b-4d83-8121-d351e6db216c/vnfs/eea9b93b-b5b9-4fad-9c35-12d52e4b683f/vfModules/33cb74cd-9cb3-4090-a3c0-1b8c8e235847/deactivateAndCloudDelete/resume");
1903 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1907 public void extractResourceIdAndTypeFromUriDeActiveResumeTest() {
1908 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1909 "http://localhost:9100/onap/so/infra/serviceInstantiation/v7/serviceInstances/4ff87c63-461b-4d83-8121-d351e6db216c/vnfs/eea9b93b-b5b9-4fad-9c35-12d52e4b683f/vfModules/33cb74cd-9cb3-4090-a3c0-1b8c8e235847/replace/resume");
1910 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1914 public void extractResourceIdAndTypeFromUriResumeIdOnly() {
1915 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1916 "http://localhost:9100/onap/so/infra/serviceInstantiation/v7/serviceInstances/4ff87c63-461b-4d83-8121-d351e6db216c/vnfs/eea9b93b-b5b9-4fad-9c35-12d52e4b683f/vfModules/33cb74cd-9cb3-4090-a3c0-1b8c8e235847/resume");
1917 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1921 public void isUriResumeTest() {
1922 assertTrue(workflowAction.isUriResume(
1923 "http://localhost:9100/onap/so/infra/orchestrationRequests/v7/requests/2f8ab587-ef6a-4456-b7b2-d73f9363dabd/resume"));
1924 assertTrue(workflowAction.isUriResume(
1925 " http://localhost:9100/onap/so/infra/serviceInstantiation/v7/serviceInstances/4ff87c63-461b-4d83-8121-d351e6db216c/vnfs/eea9b93b-b5b9-4fad-9c35-12d52e4b683f/vfModules/33cb74cd-9cb3-4090-a3c0-1b8c8e235847/resume"));
1927 assertFalse(workflowAction.isUriResume("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace"));
1931 public void isRequestMacroServiceResumeTest() {
1932 ServiceInstance si = new ServiceInstance();
1933 when(bbSetupUtils.getAAIServiceInstanceById(anyString())).thenReturn(si);
1934 assertFalse(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", ""));
1935 assertTrue(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", "123"));
1939 public void populateResourceIdsFromApiHandlerTest() {
1940 execution.setVariable("serviceInstanceId", "123");
1941 execution.setVariable("vnfId", "888");
1942 WorkflowResourceIds x = workflowAction.populateResourceIdsFromApiHandler(execution);
1943 assertEquals("123", x.getServiceInstanceId());
1944 assertEquals("888", x.getVnfId());
1945 assertNull(x.getVolumeGroupId());
1948 private RequestDetails setupRequestDetails(String globalSubscriberId, String subscriptionServiceType,
1949 String modelCustomizationId) {
1950 RequestDetails reqDetails = new RequestDetails();
1951 SubscriberInfo subInfo = new SubscriberInfo();
1952 subInfo.setGlobalSubscriberId(globalSubscriberId);
1953 reqDetails.setSubscriberInfo(subInfo);
1954 RequestParameters reqParams = new RequestParameters();
1955 reqParams.setSubscriptionServiceType(subscriptionServiceType);
1956 reqDetails.setRequestParameters(reqParams);
1957 ModelInfo modelInfo = new ModelInfo();
1958 modelInfo.setModelCustomizationId(modelCustomizationId);
1959 reqDetails.setModelInfo(modelInfo);
1964 public void validateResourceIdInAAIVnfTest() throws Exception {
1965 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
1966 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1967 workflowResourceIds.setServiceInstanceId("siId123");
1969 GenericVnf vnf = new GenericVnf();
1970 vnf.setVnfId("id123");
1971 vnf.setVnfName("vnfName123");
1972 vnf.setModelCustomizationId("1234567");
1973 Optional<GenericVnf> opVnf = Optional.of(vnf);
1974 GenericVnf vnf2 = new GenericVnf();
1975 vnf2.setVnfId("id123");
1976 vnf2.setVnfName("vnfName222");
1977 vnf2.setModelCustomizationId("222");
1978 Optional<GenericVnf> opVnf2 = Optional.of(vnf2);
1979 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
1980 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName222")).thenReturn(opVnf2);
1981 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
1982 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName123", reqDetails,
1983 workflowResourceIds);
1984 assertEquals("id123", id);
1985 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "111111", reqDetails,
1986 workflowResourceIds);
1987 assertEquals("generatedId123", id2);
1989 this.expectedException.expect(DuplicateNameException.class);
1990 this.expectedException.expectMessage(containsString(
1991 "generic-vnf with name (vnfName222), same parent and different customization id (222) already exists. The name must be unique."));
1992 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName222", reqDetails,
1993 workflowResourceIds);
1997 public void validateResourceIdInAAIVnfNotGloballyUniqueTest() throws Exception {
1998 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
1999 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2000 workflowResourceIds.setServiceInstanceId("siId123");
2003 GenericVnfs genericVnfs = new GenericVnfs();
2004 GenericVnf vnf3 = new GenericVnf();
2005 vnf3.setVnfId("id123");
2006 vnf3.setVnfName("vnfName333");
2007 genericVnfs.getGenericVnf().add(vnf3);
2008 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName333")).thenReturn(Optional.empty());
2009 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName333")).thenReturn(genericVnfs);
2011 this.expectedException.expect(DuplicateNameException.class);
2012 this.expectedException.expectMessage(containsString(
2013 "generic-vnf with name (vnfName333) id (id123) and different parent relationship already exists. The name must be unique."));
2014 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName333", reqDetails,
2015 workflowResourceIds);
2019 public void validateResourceIdInAAINetworkTest() throws Exception {
2020 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2021 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2022 workflowResourceIds.setServiceInstanceId("siId123");
2025 L3Network network = new L3Network();
2026 network.setNetworkId("id123");
2027 network.setNetworkName("name123");
2028 network.setModelCustomizationId("1234567");
2029 workflowResourceIds.setServiceInstanceId("siId123");
2030 Optional<L3Network> opNetwork = Optional.of(network);
2031 L3Network network2 = new L3Network();
2032 network2.setNetworkId("id123");
2033 network2.setNetworkName("networkName222");
2034 network2.setModelCustomizationId("222");
2035 Optional<L3Network> opNetwork2 = Optional.of(network2);
2036 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2037 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "networkName222"))
2038 .thenReturn(opNetwork2);
2039 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2040 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "name123",
2041 reqDetails, workflowResourceIds);
2042 assertEquals("id123", id);
2043 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "111111",
2044 reqDetails, workflowResourceIds);
2045 assertEquals("generatedId123", id2);
2047 this.expectedException.expect(DuplicateNameException.class);
2048 this.expectedException.expectMessage(containsString(
2049 "l3Network with name (networkName222), same parent and different customization id (222) already exists. The name must be unique."));
2050 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName222", reqDetails,
2051 workflowResourceIds);
2055 public void validateNetworkResourceNameExistsInAAITest() throws Exception {
2056 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2057 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2058 workflowResourceIds.setServiceInstanceId("siId123");
2061 L3Network network = new L3Network();
2062 network.setNetworkId("id123");
2063 network.setNetworkName("name123");
2064 network.setModelCustomizationId("1234567");
2065 workflowResourceIds.setServiceInstanceId("siId123");
2067 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("networkName333", "111111"))
2068 .thenReturn(Optional.empty());
2069 when(bbSetupUtils.existsAAINetworksGloballyByName("networkName333")).thenReturn(true);
2071 this.expectedException.expect(DuplicateNameException.class);
2072 this.expectedException.expectMessage(containsString(
2073 "l3Network with name (networkName333) id (siId123) and different parent relationship already exists. The name must be unique."));
2074 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName333", reqDetails,
2075 workflowResourceIds);
2079 public void validateResourceIdInAAIVfModuleTest() throws Exception {
2080 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2081 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2082 workflowResourceIds.setServiceInstanceId("siId123");
2084 GenericVnf vnf = new GenericVnf();
2085 vnf.setVnfId("id123");
2086 vnf.setVnfName("vnfName123");
2087 vnf.setModelCustomizationId("222");
2090 VfModules vfModules = new VfModules();
2091 VfModule vfModule = new VfModule();
2092 vfModule.setVfModuleId("id123");
2093 vfModule.setVfModuleName("name123");
2094 vfModule.setModelCustomizationId("1234567");
2095 vfModules.getVfModule().add(vfModule);
2096 vnf.setVfModules(vfModules);
2097 workflowResourceIds.setVnfId("id123");
2098 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2099 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "name123",
2100 reqDetails, workflowResourceIds);
2101 assertEquals("id123", id);
2103 GenericVnf vnf1 = new GenericVnf();
2104 VfModules vfModules2 = new VfModules();
2105 VfModule vfModule2 = new VfModule();
2106 vfModule2.setVfModuleId("id123");
2107 vfModule2.setVfModuleName("vFModName222");
2108 vfModule2.setModelCustomizationId("222");
2109 vfModules2.getVfModule().add(vfModule2);
2110 vnf1.setVfModules(vfModules2);
2111 workflowResourceIds.setVnfId("id111");
2112 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2113 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "111111",
2114 reqDetails, workflowResourceIds);
2115 assertEquals("generatedId123", id2);
2117 this.expectedException.expect(DuplicateNameException.class);
2118 this.expectedException.expectMessage(containsString(
2119 "vfModule with name (vFModName222), same parent and different customization id (1234567) already exists. The name must be unique."));
2120 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName222", reqDetails,
2121 workflowResourceIds);
2125 public void validateResourceIdInAAIVfModuleNotGloballyUniqueTest() throws Exception {
2126 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2127 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2128 workflowResourceIds.setVnfId("id111");
2130 GenericVnf vnf1 = new GenericVnf();
2131 workflowResourceIds.setVnfId("id111");
2132 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2134 when(bbSetupUtils.existsAAIVfModuleGloballyByName("vFModName333")).thenReturn(true);
2135 this.expectedException.expect(DuplicateNameException.class);
2136 this.expectedException.expectMessage(
2137 containsString("vfModule with name vFModName333 already exists. The name must be unique."));
2138 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName333", reqDetails,
2139 workflowResourceIds);
2143 public void validateResourceIdInAAIVolumeGroupTest() throws Exception {
2144 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2145 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2146 workflowResourceIds.setServiceInstanceId("siId123");
2148 GenericVnf vnf = new GenericVnf();
2149 vnf.setVnfId("id123");
2150 vnf.setVnfName("vnfName123");
2151 vnf.setModelCustomizationId("1234567");
2153 GenericVnf vnf2 = new GenericVnf();
2154 vnf2.setVnfId("id123");
2155 vnf2.setVnfName("vnfName123");
2156 vnf2.setModelCustomizationId("222");
2159 VolumeGroup volumeGroup = new VolumeGroup();
2160 volumeGroup.setVolumeGroupId("id123");
2161 volumeGroup.setVolumeGroupName("name123");
2162 volumeGroup.setVfModuleModelCustomizationId("1234567");
2163 workflowResourceIds.setVnfId("id123");
2164 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2166 workflowResourceIds.setVnfId("id123");
2168 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2169 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(opVolumeGroup);
2170 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2171 reqDetails, workflowResourceIds);
2172 assertEquals("id123", id);
2174 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf2);
2175 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "111111"))
2176 .thenReturn(opVolumeGroup);
2178 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "111111")).thenReturn(Optional.empty());
2179 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "111111",
2180 reqDetails, workflowResourceIds);
2181 assertEquals("generatedId123", id2);
2185 public void validatesourceIdInAAIVolumeGroupNotGloballyUniqueTest() throws Exception {
2186 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2187 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2188 workflowResourceIds.setVnfId("id123");
2189 GenericVnf vnf = new GenericVnf();
2190 vnf.setVnfId("id123");
2191 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2192 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "testVolumeGroup")).thenReturn(Optional.empty());
2194 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("testVolumeGroup")).thenReturn(true);
2195 this.expectedException.expect(DuplicateNameException.class);
2196 this.expectedException.expectMessage(
2197 containsString("volumeGroup with name testVolumeGroup already exists. The name must be unique."));
2198 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "testVolumeGroup",
2199 reqDetails, workflowResourceIds);
2203 public void validateResourceIdInAAIConfigurationTest() throws Exception {
2204 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2205 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2206 workflowResourceIds.setServiceInstanceId("siId123");
2209 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2210 configuration.setConfigurationId("id123");
2211 configuration.setConfigurationName("name123");
2212 configuration.setModelCustomizationId("1234567");
2213 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2215 org.onap.aai.domain.yang.Configuration configuration2 = new org.onap.aai.domain.yang.Configuration();
2216 configuration2.setConfigurationId("id123");
2217 configuration2.setConfigurationName("name123");
2218 configuration2.setModelCustomizationId("222");
2219 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration2 = Optional.of(configuration2);
2221 workflowResourceIds.setVnfId("id123");
2223 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2224 .thenReturn(opConfiguration);
2225 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name123",
2226 reqDetails, workflowResourceIds);
2227 assertEquals("id123", id);
2229 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "111111"))
2230 .thenReturn(Optional.empty());
2231 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "111111",
2232 reqDetails, workflowResourceIds);
2233 assertEquals("generatedId123", id2);
2235 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name222"))
2236 .thenReturn(opConfiguration2);
2237 this.expectedException.expect(DuplicateNameException.class);
2238 this.expectedException.expectMessage(containsString(
2239 "configuration with name (name222), same parent and different customization id (id123) already exists. The name must be unique."));
2240 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name222", reqDetails,
2241 workflowResourceIds);
2245 public void validateResourceIdInAAIConfigurationNotGloballyUniqueTest() throws Exception {
2246 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2247 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2248 workflowResourceIds.setServiceInstanceId("siId123");
2250 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "testConfig"))
2251 .thenReturn(Optional.empty());
2252 when(bbSetupUtils.existsAAIConfigurationGloballyByName("testConfig")).thenReturn(true);
2253 this.expectedException.expect(DuplicateNameException.class);
2254 this.expectedException.expectMessage(
2255 containsString("configuration with name testConfig already exists. The name must be unique."));
2256 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "testConfig", reqDetails,
2257 workflowResourceIds);
2261 public void validateResourceIdInAAISITest() throws Exception {
2262 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2263 workflowResourceIds.setServiceInstanceId("siId123");
2264 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2265 reqDetails.getModelInfo().setModelVersionId("1234567");
2267 ServiceInstance si = new ServiceInstance();
2268 si.setServiceInstanceId("siId123");
2269 si.setModelVersionId("1234567");
2270 ServiceInstances serviceInstances = new ServiceInstances();
2271 serviceInstances.getServiceInstance().add(si);
2272 Optional<ServiceInstance> siOp = Optional.of(si);
2273 ServiceInstance si2 = new ServiceInstance();
2274 si2.setServiceInstanceId("siId222");
2275 si2.setModelVersionId("22222");
2276 si2.setServiceInstanceName("siName222");
2277 Optional<ServiceInstance> siOp2 = Optional.of(si2);
2278 ServiceInstances serviceInstances2 = new ServiceInstances();
2279 serviceInstances2.getServiceInstance().add(si2);
2281 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2282 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName222")).thenReturn(siOp2);
2283 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "111111"))
2284 .thenReturn(Optional.empty());
2286 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2287 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123",
2288 reqDetails, workflowResourceIds);
2289 assertEquals("siId123", id);
2290 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "111111",
2291 reqDetails, workflowResourceIds);
2292 assertEquals("generatedId123", id2);
2294 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName222")).thenReturn(serviceInstances2);
2295 this.expectedException.expect(DuplicateNameException.class);
2296 this.expectedException.expectMessage(containsString(
2297 "serviceInstance with name (siName222) and different version id (1234567) already exists. The name must be unique."));
2298 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName222", reqDetails,
2299 workflowResourceIds);
2303 public void validateResourceIdInAAIMultipleSITest() throws Exception {
2304 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2305 workflowResourceIds.setServiceInstanceId("siId123");
2306 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2307 reqDetails.getModelInfo().setModelVersionId("1234567");
2309 ServiceInstance si = new ServiceInstance();
2310 si.setServiceInstanceId("siId123");
2311 si.setModelVersionId("1234567");
2312 ServiceInstances serviceInstances = new ServiceInstances();
2313 serviceInstances.getServiceInstance().add(si);
2315 ServiceInstance si2 = new ServiceInstance();
2316 si2.setServiceInstanceId("siId222");
2317 si2.setModelVersionId("22222");
2318 si2.setServiceInstanceName("siName222");
2319 serviceInstances.getServiceInstance().add(si2);
2321 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2322 .thenReturn(Optional.empty());
2324 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2326 this.expectedException.expect(DuplicateNameException.class);
2327 this.expectedException.expectMessage(containsString(
2328 "serviceInstance with name (siName123) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2329 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2330 workflowResourceIds);
2334 public void validateResourceIdInAAISIExistsTest() throws Exception {
2335 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2336 workflowResourceIds.setServiceInstanceId("siId123");
2337 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2338 reqDetails.getModelInfo().setModelVersionId("1234567");
2340 ServiceInstance si = new ServiceInstance();
2341 si.setServiceInstanceId("siId123");
2342 si.setModelVersionId("1234567");
2343 ServiceInstances serviceInstances = new ServiceInstances();
2344 serviceInstances.getServiceInstance().add(si);
2346 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2347 .thenReturn(Optional.empty());
2349 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2351 Map<String, String> uriKeys = new HashMap<>();
2352 uriKeys.put("global-customer-id", "globalCustomerId");
2353 uriKeys.put("service-type", "serviceType");
2355 when(bbSetupUtils.getURIKeysFromServiceInstance("siId123")).thenReturn(uriKeys);
2357 this.expectedException.expect(DuplicateNameException.class);
2358 this.expectedException.expectMessage(containsString(
2359 "serviceInstance with name (siName123) and global-customer-id (globalCustomerId), service-type (serviceType), model-version-id (1234567) already exists. The name must be unique."));
2360 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2361 workflowResourceIds);
2365 public void validateServiceResourceIdInAAINoDupTest() throws Exception {
2366 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2367 reqDetails.getModelInfo().setModelVersionId("1234567");
2368 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123"))
2369 .thenReturn(Optional.empty());
2370 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(null);
2371 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2372 assertEquals("generatedId123", id);
2376 public void validateServiceResourceIdInAAISameModelVersionId() throws Exception {
2377 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2378 reqDetails.getModelInfo().setModelVersionId("1234567");
2380 ServiceInstance si = new ServiceInstance();
2381 si.setServiceInstanceId("siId123");
2382 si.setModelVersionId("1234567");
2383 Optional<ServiceInstance> siOp = Optional.of(si);
2385 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2386 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2387 assertEquals("siId123", id);
2391 public void validateServiceResourceIdInAAIDifferentModelVersionId() throws Exception {
2392 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2393 reqDetails.getModelInfo().setModelVersionId("1234567");
2395 ServiceInstance si = new ServiceInstance();
2396 si.setServiceInstanceId("siId123");
2397 si.setModelVersionId("9999999");
2398 ServiceInstances serviceInstances = new ServiceInstances();
2399 serviceInstances.getServiceInstance().add(si);
2400 Optional<ServiceInstance> siOp = Optional.of(si);
2402 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2404 this.expectedException.expect(DuplicateNameException.class);
2405 this.expectedException.expectMessage(containsString(
2406 "serviceInstance with name (siName123) and different version id (1234567) already exists. The name must be unique."));
2408 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2409 assertEquals("siId123", id);
2413 public void validateServiceResourceIdInAAIDuplicateNameTest() throws Exception {
2415 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2416 reqDetails.getModelInfo().setModelVersionId("1234567");
2418 ServiceInstance si = new ServiceInstance();
2419 si.setServiceInstanceId("siId123");
2420 si.setModelVersionId("1234567");
2422 ServiceInstances serviceInstances = new ServiceInstances();
2423 serviceInstances.getServiceInstance().add(si);
2425 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2426 .thenReturn(Optional.empty());
2427 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2429 this.expectedException.expect(DuplicateNameException.class);
2430 this.expectedException.expectMessage(containsString(
2431 "serviceInstance with name (siName) and global-customer-id (null), service-type (null), model-version-id (1234567) already exists. The name must be unique."));
2433 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2437 public void validateServiceResourceIdInAAIDuplicateNameMultipleTest() throws Exception {
2439 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2440 reqDetails.getModelInfo().setModelVersionId("1234567");
2442 ServiceInstance si = new ServiceInstance();
2443 si.setServiceInstanceId("siId123");
2444 si.setModelVersionId("1234567");
2446 ServiceInstance si2 = new ServiceInstance();
2447 si2.setServiceInstanceId("siId222");
2448 si2.setModelVersionId("22222");
2449 si2.setServiceInstanceName("siName222");
2451 ServiceInstances serviceInstances = new ServiceInstances();
2452 serviceInstances.getServiceInstance().add(si);
2453 serviceInstances.getServiceInstance().add(si2);
2455 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2456 .thenReturn(Optional.empty());
2457 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2459 this.expectedException.expect(DuplicateNameException.class);
2460 this.expectedException.expectMessage(containsString(
2461 "serviceInstance with name (siName) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2463 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2467 public void validateNetworkResourceIdInAAITest() throws Exception {
2468 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2469 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2470 workflowResourceIds.setServiceInstanceId("siId123");
2472 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2473 .thenReturn(Optional.empty());
2474 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(false);
2476 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2477 workflowResourceIds);
2478 assertEquals("generatedId123", id);
2482 public void validateNetworkResourceIdInAAISameModelCustIdTest() throws Exception {
2483 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2484 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2485 workflowResourceIds.setServiceInstanceId("siId123");
2487 L3Network network = new L3Network();
2488 network.setNetworkId("id123");
2489 network.setNetworkName("name123");
2490 network.setModelCustomizationId("1234567");
2491 Optional<L3Network> opNetwork = Optional.of(network);
2493 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2495 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2496 workflowResourceIds);
2497 assertEquals("id123", id);
2501 public void validateNetworkResourceIdInAAIDuplicateNameTest() throws Exception {
2502 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2503 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2504 workflowResourceIds.setServiceInstanceId("siId123");
2506 L3Network network = new L3Network();
2507 network.setNetworkId("id123");
2508 network.setNetworkName("name123");
2509 network.setModelCustomizationId("9999999");
2510 Optional<L3Network> opNetwork = Optional.of(network);
2512 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2514 this.expectedException.expect(DuplicateNameException.class);
2515 this.expectedException.expectMessage(containsString(
2516 "l3Network with name (name123), same parent and different customization id (9999999) already exists. The name must be unique."));
2518 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2522 public void validateNetworkResourceIdInAAINotGloballyUniqueTest() throws Exception {
2523 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2524 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2525 workflowResourceIds.setServiceInstanceId("siId123");
2527 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2528 .thenReturn(Optional.empty());
2529 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(true);
2531 this.expectedException.expect(DuplicateNameException.class);
2532 this.expectedException.expectMessage(containsString(
2533 "l3Network with name (name123) id (siId123) and different parent relationship already exists. The name must be unique."));
2535 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2539 public void validateVnfResourceIdInAAITest() throws Exception {
2540 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2541 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2542 workflowResourceIds.setServiceInstanceId("siId123");
2543 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2544 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2545 workflowResourceIds);
2546 assertEquals("generatedId123", id);
2550 public void validateVnfResourceIdInAAISameModelCustomizationIdTest() throws Exception {
2551 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2552 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2553 workflowResourceIds.setServiceInstanceId("siId123");
2555 GenericVnf vnf = new GenericVnf();
2556 vnf.setVnfId("id123");
2557 vnf.setVnfName("vnfName123");
2558 vnf.setModelCustomizationId("1234567");
2559 Optional<GenericVnf> opVnf = Optional.of(vnf);
2561 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2562 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2563 workflowResourceIds);
2564 assertEquals("id123", id);
2568 public void validateVnfResourceIdInAAIDiffModelCustomizationIdTest() throws Exception {
2569 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2570 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2571 workflowResourceIds.setServiceInstanceId("siId123");
2573 GenericVnf vnf = new GenericVnf();
2574 vnf.setVnfId("id123");
2575 vnf.setVnfName("vnfName123");
2576 vnf.setModelCustomizationId("9999999");
2577 Optional<GenericVnf> opVnf = Optional.of(vnf);
2579 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2581 this.expectedException.expect(DuplicateNameException.class);
2582 this.expectedException.expectMessage(containsString(
2583 "generic-vnf with name (vnfName123), same parent and different customization id (9999999) already exists. The name must be unique."));
2585 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2589 public void validateVnfResourceIdInAAINotGloballyUniqueTest() throws Exception {
2590 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2591 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2592 workflowResourceIds.setServiceInstanceId("siId123");
2595 GenericVnf vnf = new GenericVnf();
2596 vnf.setVnfId("id123");
2597 vnf.setVnfName("vnfName123");
2598 GenericVnfs genericVnfs = new GenericVnfs();
2599 genericVnfs.getGenericVnf().add(vnf);
2601 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2602 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName123")).thenReturn(genericVnfs);
2604 this.expectedException.expect(DuplicateNameException.class);
2605 this.expectedException.expectMessage(containsString(
2606 "generic-vnf with name (vnfName123) id (id123) and different parent relationship already exists. The name must be unique."));
2608 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2612 public void validateVfModuleResourceIdTest() throws Exception {
2613 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2614 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2615 workflowResourceIds.setVnfId("vnfId123");
2617 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2618 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(false);
2620 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2621 workflowResourceIds);
2622 assertEquals("generatedId123", id);
2626 public void validateVfModuleResourceIdSameModelCustIdTest() throws Exception {
2627 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2628 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2629 workflowResourceIds.setVnfId("vnfId123");
2631 VfModules vfModules = new VfModules();
2632 VfModule vfModule = new VfModule();
2633 vfModule.setVfModuleId("id123");
2634 vfModule.setVfModuleName("name123");
2635 vfModule.setModelCustomizationId("1234567");
2636 vfModules.getVfModule().add(vfModule);
2638 GenericVnf vnf = new GenericVnf();
2639 vnf.setVnfId("id123");
2640 vnf.setVnfName("vnfName123");
2641 vnf.setVfModules(vfModules);
2643 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2645 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2646 workflowResourceIds);
2647 assertEquals("id123", id);
2651 public void validateVfModuleResourceIdDifferentModelCustIdTest() throws Exception {
2652 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2653 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2654 workflowResourceIds.setVnfId("vnfId123");
2656 VfModules vfModules = new VfModules();
2657 VfModule vfModule = new VfModule();
2658 vfModule.setVfModuleId("id123");
2659 vfModule.setVfModuleName("name123");
2660 vfModule.setModelCustomizationId("9999999");
2661 vfModules.getVfModule().add(vfModule);
2663 GenericVnf vnf = new GenericVnf();
2664 vnf.setVnfId("id123");
2665 vnf.setVnfName("vnfName123");
2666 vnf.setVfModules(vfModules);
2668 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2670 this.expectedException.expect(DuplicateNameException.class);
2671 this.expectedException.expectMessage(containsString(
2672 "vfModule with name (name123), same parent and different customization id (1234567) already exists. The name must be unique."));
2674 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2679 public void validateVfModuleResourceIdNotGloballyUniqueTest() throws Exception {
2680 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2681 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2682 workflowResourceIds.setVnfId("vnfId123");
2684 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2685 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(true);
2687 this.expectedException.expect(DuplicateNameException.class);
2688 this.expectedException
2689 .expectMessage(containsString("vfModule with name name123 already exists. The name must be unique."));
2691 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2695 public void validateVolumeGroupResourceIdInAAITest() throws Exception {
2696 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2697 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2698 workflowResourceIds.setVnfId("vnfId123");
2700 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(Optional.empty());
2701 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(false);
2703 String id = workflowAction.validateVolumeGroupResourceIdInAAI("generatedId123", "name123", reqDetails,
2704 workflowResourceIds);
2705 assertEquals("generatedId123", id);
2709 public void validateVolumeGroupResourceIdInAAISameModelCustIdTest() throws Exception {
2710 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2711 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2712 workflowResourceIds.setServiceInstanceId("siId123");
2713 workflowResourceIds.setVnfId("vnfId123");
2715 VolumeGroup volumeGroup = new VolumeGroup();
2716 volumeGroup.setVolumeGroupId("id123");
2717 volumeGroup.setVolumeGroupName("name123");
2718 volumeGroup.setVfModuleModelCustomizationId("1234567");
2720 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2722 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2723 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2724 reqDetails, workflowResourceIds);
2726 assertEquals("id123", id);
2730 public void validateVolumeGroupResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2731 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2732 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2733 workflowResourceIds.setServiceInstanceId("siId123");
2734 workflowResourceIds.setVnfId("vnfId123");
2736 VolumeGroup volumeGroup = new VolumeGroup();
2737 volumeGroup.setVolumeGroupId("id123");
2738 volumeGroup.setVolumeGroupName("name123");
2739 volumeGroup.setVfModuleModelCustomizationId("9999999");
2741 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2743 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2745 this.expectedException.expect(DuplicateNameException.class);
2746 this.expectedException.expectMessage(
2747 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2749 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2750 workflowResourceIds);
2754 public void validateVolumeGroupResourceIdInAAINotGloballyUniqueTest() throws Exception {
2755 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2756 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2757 workflowResourceIds.setVnfId("vnfId123");
2759 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(Optional.empty());
2760 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(true);
2762 this.expectedException.expect(DuplicateNameException.class);
2763 this.expectedException.expectMessage(
2764 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2766 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2767 workflowResourceIds);
2771 public void validateConfigurationResourceIdInAAITest() throws Exception {
2772 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2773 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2774 workflowResourceIds.setServiceInstanceId("siId123");
2776 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2777 .thenReturn(Optional.empty());
2778 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2780 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2781 workflowResourceIds);
2782 assertEquals("generatedId123", id);
2786 public void validateConfigurationResourceIdInAAISameModelCustIdTest() throws Exception {
2787 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2788 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2789 workflowResourceIds.setServiceInstanceId("siId123");
2791 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2792 configuration.setConfigurationId("id123");
2793 configuration.setConfigurationName("name123");
2794 configuration.setModelCustomizationId("1234567");
2795 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2797 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2798 .thenReturn(opConfiguration);
2799 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2801 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2802 workflowResourceIds);
2803 assertEquals("id123", id);
2807 public void validateConfigurationResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2808 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2809 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2810 workflowResourceIds.setServiceInstanceId("siId123");
2812 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2813 configuration.setConfigurationId("id123");
2814 configuration.setConfigurationName("name123");
2815 configuration.setModelCustomizationId("9999999");
2816 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2818 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2819 .thenReturn(opConfiguration);
2820 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2822 this.expectedException.expect(DuplicateNameException.class);
2823 this.expectedException.expectMessage(containsString(
2824 "configuration with name (name123), same parent and different customization id (id123) already exists. The name must be unique."));
2826 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2827 workflowResourceIds);
2831 public void validateConfigurationResourceIdInAAINotGloballyUniqueTest() throws Exception {
2832 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2833 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2834 workflowResourceIds.setServiceInstanceId("siId123");
2836 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2837 .thenReturn(Optional.empty());
2838 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(true);
2840 this.expectedException.expect(DuplicateNameException.class);
2841 this.expectedException.expectMessage(
2842 containsString("configuration with name name123 already exists. The name must be unique."));
2844 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2845 workflowResourceIds);
2849 public void handleRuntimeExceptionTest() {
2850 execution.setVariable("BPMN_javaExpMsg", "test runtime error message");
2851 execution.setVariable("testProcessKey", "testProcessKeyValue");
2853 workflowAction.handleRuntimeException(execution);
2854 } catch (BpmnError wfe) {
2855 assertEquals("MSOWorkflowException", wfe.getErrorCode());
2861 public void traverseCatalogDbServiceMultipleNetworkTest() throws IOException, VrfBondingServiceException {
2862 execution.setVariable("testProcessKey", "testProcessKeyValue");
2863 Service service = new Service();
2864 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
2865 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
2866 networkCust.setModelCustomizationUUID("123");
2867 networkCustomizations.add(networkCust);
2868 service.setNetworkCustomizations(networkCustomizations);
2869 NetworkCollectionResourceCustomization collectionResourceCustomization =
2870 new NetworkCollectionResourceCustomization();
2871 collectionResourceCustomization.setModelCustomizationUUID("123");
2872 CollectionResource collectionResource = new CollectionResource();
2873 collectionResource.setToscaNodeType("NetworkCollection");
2874 InstanceGroup instanceGroup = new InstanceGroup();
2875 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
2876 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
2877 new CollectionResourceInstanceGroupCustomization();
2878 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
2879 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
2880 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
2881 collectionResource.setInstanceGroup(instanceGroup);
2882 collectionResourceCustomization.setCollectionResource(collectionResource);;
2883 service.setModelUUID("abc");
2884 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2885 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2886 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
2887 doReturn(collectionResourceCustomization).when(catalogDbClient)
2888 .getNetworkCollectionResourceCustomizationByID("123");
2889 String bpmnRequest = new String(Files
2890 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
2891 ObjectMapper mapper = new ObjectMapper();
2892 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
2893 List<Resource> resourceCounter = new ArrayList<>();
2894 thrown.expect(BpmnError.class);
2895 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
2896 workflowAction.traverseCatalogDbService(execution, sIRequest, resourceCounter, aaiResourceIds);
2900 public void sortVfModulesByBaseFirstTest() {
2901 List<Resource> resources = new ArrayList<>();
2902 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2903 resource1.setBaseVfModule(false);
2904 resources.add(resource1);
2905 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2906 resource2.setBaseVfModule(false);
2907 resources.add(resource2);
2908 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
2909 resource3.setBaseVfModule(true);
2910 resources.add(resource3);
2911 List<Resource> result = workflowAction.sortVfModulesByBaseFirst(resources);
2912 assertEquals("333", result.get(0).getResourceId());
2913 assertEquals("222", result.get(1).getResourceId());
2914 assertEquals("111", result.get(2).getResourceId());
2918 public void sortVfModulesByBaseLastTest() {
2919 List<Resource> resources = new ArrayList<>();
2920 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2921 resource1.setBaseVfModule(true);
2922 resources.add(resource1);
2923 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2924 resource2.setBaseVfModule(false);
2925 resources.add(resource2);
2926 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
2927 resource3.setBaseVfModule(false);
2928 resources.add(resource3);
2929 List<Resource> result = workflowAction.sortVfModulesByBaseLast(resources);
2930 assertEquals("333", result.get(0).getResourceId());
2931 assertEquals("222", result.get(1).getResourceId());
2932 assertEquals("111", result.get(2).getResourceId());
2936 public void findCatalogNetworkCollectionTest() {
2937 Service service = new Service();
2938 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
2939 networkCustomization.setModelCustomizationUUID("123");
2940 service.getCollectionResourceCustomizations().add(networkCustomization);
2941 doReturn(networkCustomization).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
2942 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
2943 assertNotNull(customization);
2947 public void findCatalogNetworkCollectionEmptyTest() {
2948 Service service = new Service();
2949 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
2950 networkCustomization.setModelCustomizationUUID("123");
2951 service.getCollectionResourceCustomizations().add(networkCustomization);
2952 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
2953 assertNull(customization);
2957 public void findCatalogNetworkCollectionMoreThanOneTest() {
2958 Service service = new Service();
2959 NetworkCollectionResourceCustomization networkCustomization1 = new NetworkCollectionResourceCustomization();
2960 networkCustomization1.setModelCustomizationUUID("123");
2961 NetworkCollectionResourceCustomization networkCustomization2 = new NetworkCollectionResourceCustomization();
2962 networkCustomization2.setModelCustomizationUUID("321");
2963 service.getCollectionResourceCustomizations().add(networkCustomization1);
2964 service.getCollectionResourceCustomizations().add(networkCustomization2);
2965 doReturn(networkCustomization1).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
2966 doReturn(networkCustomization2).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("321");
2967 workflowAction.findCatalogNetworkCollection(execution, service);
2968 assertEquals("Found multiple Network Collections in the Service model, only one per Service is supported.",
2969 execution.getVariable("WorkflowActionErrorMessage"));
2973 public void verifyLackOfNullPointerExceptionForNullResource() {
2974 ExecuteBuildingBlock result = null;
2976 result = workflowAction.buildExecuteBuildingBlock(new OrchestrationFlow(), null, null, null, null, null,
2977 false, null, null, null, false, null, true);
2978 } catch (NullPointerException e) {
2979 fail("NullPointerException should not be thrown when 'resource' is null");
2981 assertNotNull(result);
2985 public void traverseAAIServiceTest() {
2986 List<Resource> resourceCounter = new ArrayList<>();
2987 String resourceId = "si0";
2988 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
2990 ServiceInstance serviceInstanceAAI = new ServiceInstance();
2991 serviceInstanceAAI.setServiceInstanceId(resourceId);
2993 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstance = setServiceInstance();
3001 Configuration config = new Configuration();
3002 config.setConfigurationId("testConfigurationId2");
3003 serviceInstance.getConfigurations().add(config);
3005 Relationship relationship1 = new Relationship();
3006 relationship1.setRelatedTo("vnfc");
3007 RelationshipList relationshipList1 = new RelationshipList();
3008 relationshipList1.getRelationship().add(relationship1);
3010 Relationship relationship2 = new Relationship();
3011 relationship2.setRelatedTo("vpn-binding");
3012 RelationshipList relationshipList2 = new RelationshipList();
3013 relationshipList2.getRelationship().add(relationship2);
3015 org.onap.aai.domain.yang.Configuration aaiConfiguration1 = new org.onap.aai.domain.yang.Configuration();
3016 aaiConfiguration1.setConfigurationId("testConfigurationId");
3017 aaiConfiguration1.setRelationshipList(relationshipList1);
3019 org.onap.aai.domain.yang.Configuration aaiConfiguration2 = new org.onap.aai.domain.yang.Configuration();
3020 aaiConfiguration2.setConfigurationId("testConfigurationId2");
3021 aaiConfiguration2.setRelationshipList(relationshipList1);
3024 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById(resourceId);
3025 doReturn(serviceInstance).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
3026 doReturn(Optional.of(aaiConfiguration1)).when(aaiConfigurationResources)
3027 .getConfiguration("testConfigurationId");
3028 doReturn(Optional.of(aaiConfiguration2)).when(aaiConfigurationResources)
3029 .getConfiguration("testConfigurationId2");
3030 workflowAction.traverseAAIService(execution, resourceCounter, resourceId, aaiResourceIds);
3031 assertEquals(8, resourceCounter.size());
3032 assertTrue(resourceCounter.get(2).isBaseVfModule());
3033 assertThat(aaiResourceIds, sameBeanAs(getExpectedResourceIds()));
3034 } catch (Exception e) {
3035 fail("Unexpected exception was thrown.");
3039 private List<Pair<WorkflowType, String>> getExpectedResourceIds() {
3040 List<Pair<WorkflowType, String>> resourceIds = new ArrayList<>();
3041 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VNF, "testVnfId1"));
3042 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VFMODULE, "testVfModuleId1"));
3043 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VOLUMEGROUP, "testVolumeGroupId1"));
3044 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORK, "testNetworkId1"));
3045 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORKCOLLECTION, "testId"));
3046 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId"));
3047 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId2"));
3051 private List<OrchestrationFlow> createFlowList(String... flowNames) {
3052 List<OrchestrationFlow> result = new ArrayList<>();
3053 for (String flowName : flowNames) {
3054 OrchestrationFlow orchFlow = new OrchestrationFlow();
3055 orchFlow.setFlowName(flowName);
3056 result.add(orchFlow);
3061 private void assertEqualsBulkFlowName(List<ExecuteBuildingBlock> ebbs, String... flowNames) {
3062 for (int i = 0; i < ebbs.size(); i++) {
3063 assertEquals(ebbs.get(i).getBuildingBlock().getBpmnFlowName(), flowNames[i]);