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 * Modifications Copyright (c) 2020 Nokia
10 * ================================================================================
11 * Licensed under the Apache License, Version 2.0 (the "License");
12 * you may not use this file except in compliance with the License.
13 * You may obtain a copy of the License at
15 * http://www.apache.org/licenses/LICENSE-2.0
17 * Unless required by applicable law or agreed to in writing, software
18 * distributed under the License is distributed on an "AS IS" BASIS,
19 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 * See the License for the specific language governing permissions and
21 * limitations under the License.
22 * ============LICENSE_END=========================================================
25 package org.onap.so.bpmn.infrastructure.workflow.tasks;
27 import static org.hamcrest.CoreMatchers.containsString;
28 import static org.hamcrest.CoreMatchers.equalTo;
29 import static org.junit.Assert.assertEquals;
30 import static org.junit.Assert.assertFalse;
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.mockito.ArgumentMatchers.any;
35 import static org.mockito.ArgumentMatchers.anyList;
36 import static org.mockito.ArgumentMatchers.anyObject;
37 import static org.mockito.ArgumentMatchers.anyString;
38 import static org.mockito.ArgumentMatchers.eq;
39 import static org.mockito.ArgumentMatchers.isA;
40 import static org.mockito.Mockito.doReturn;
41 import static org.mockito.Mockito.doThrow;
42 import static org.mockito.Mockito.when;
43 import com.fasterxml.jackson.databind.DeserializationFeature;
44 import com.fasterxml.jackson.databind.ObjectMapper;
45 import java.io.IOException;
46 import java.net.MalformedURLException;
47 import java.nio.file.Files;
48 import java.nio.file.Paths;
49 import java.util.ArrayList;
50 import java.util.Arrays;
51 import java.util.List;
52 import java.util.Optional;
53 import java.util.UUID;
54 import org.camunda.bpm.engine.delegate.BpmnError;
55 import org.camunda.bpm.engine.delegate.DelegateExecution;
56 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
57 import org.junit.Before;
58 import org.junit.Ignore;
59 import org.junit.Rule;
60 import org.junit.Test;
61 import org.junit.rules.ExpectedException;
62 import org.mockito.InjectMocks;
63 import org.mockito.Mock;
64 import org.mockito.Spy;
65 import org.onap.aai.domain.yang.Relationship;
66 import org.onap.aai.domain.yang.RelationshipList;
67 import org.onap.aai.domain.yang.ServiceInstance;
68 import org.onap.aai.domain.yang.VfModule;
69 import org.onap.aai.domain.yang.VolumeGroup;
70 import org.onap.aaiclient.client.aai.entities.AAIResultWrapper;
71 import org.onap.aaiclient.client.aai.entities.Relationships;
72 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
73 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
74 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder;
75 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder.Types;
76 import org.onap.so.bpmn.BaseTaskTest;
77 import org.onap.so.bpmn.infrastructure.workflow.tasks.ebb.loader.ServiceEBBLoader;
78 import org.onap.so.bpmn.infrastructure.workflow.tasks.ebb.loader.UserParamsServiceTraversal;
79 import org.onap.so.bpmn.infrastructure.workflow.tasks.ebb.loader.VnfEBBLoader;
80 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
81 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
82 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
83 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
84 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
85 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.DuplicateNameException;
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.RequestDetails;
104 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
105 import org.springframework.core.env.Environment;
107 public class WorkflowActionTest extends BaseTaskTest {
109 private static final String MACRO_ACTIVATE_DELETE_UNASSIGN_JSON = "Macro/ServiceMacroActivateDeleteUnassign.json";
110 private static final String MACRO_ASSIGN_JSON = "Macro/ServiceMacroAssign.json";
111 private static final String MACRO_ASSIGN_NO_CLOUD_JSON = "Macro/ServiceMacroAssignNoCloud.json";
112 private static final String VF_MODULE_CREATE_WITH_FABRIC_JSON = "VfModuleCreateWithFabric.json";
113 private static final String VF_MODULE_CREATE_WITH_FABRIC_NO_PARAMS_JSON = "VfModuleCreateWithFabricNoParams.json";
114 private static final String VF_MODULE_REPLACE_REBUILD_VOLUME_GROUPS_JSON =
115 "VfModuleReplaceRebuildVolumeGroups.json";
116 private static final String MACRO_CREATE_NETWORK_COLLECTION_JSON = "Macro/CreateNetworkCollection.json";
117 private static final String MACRO_VNF_MACRO_REPLACE_JSON = "Macro/VnfMacroReplace.json";
120 protected Environment environment;
122 protected UserParamsServiceTraversal userParamsServiceTraversal;
125 private AaiResourceIdValidator aaiResourceIdValidator;
127 protected WorkflowAction workflowAction;
129 private DelegateExecution execution;
133 protected WorkflowAction SPY_workflowAction;
136 protected ExecuteBuildingBlockBuilder executeBuildingBlockBuilder;
140 protected VnfEBBLoader vnfEBBLoaderSpy;
144 protected ServiceEBBLoader serviceEBBLoader;
147 public ExpectedException thrown = ExpectedException.none();
149 private String RESOURCE_PATH = "src/test/resources/__files/";
151 private List<OrchestrationFlow> replaceVfModuleOrchFlows =
152 createFlowList("DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
153 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
154 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
155 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
156 private List<OrchestrationFlow> replaceRetainAssignmentsVfModuleOrchFlows = createFlowList("DeactivateVfModuleBB",
157 "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "UnassignVolumeGroupBB",
158 "AssignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
159 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
160 private List<OrchestrationFlow> replaceVfModuleWithFabricOrchFlows = createFlowList("DeleteFabricConfigurationBB",
161 "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB",
162 "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB", "AssignVfModuleBB",
163 "CreateVfModuleBB", "ActivateVfModuleBB", "AddFabricConfigurationBB", "CreateVolumeGroupBB",
164 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
167 public void before() throws Exception {
168 execution = new DelegateExecutionFake();
169 org.onap.aai.domain.yang.ServiceInstance servInstance = new org.onap.aai.domain.yang.ServiceInstance();
170 servInstance.setServiceInstanceId("TEST");
171 when(bbSetupUtils.getAAIServiceInstanceByName(anyString(), anyObject())).thenReturn(servInstance);
172 workflowAction.setBbInputSetupUtils(bbSetupUtils);
173 workflowAction.setBbInputSetup(bbInputSetup);
181 public void selectExecutionListALaCarteNetworkCreateTest() throws Exception {
182 String gAction = "createInstance";
183 String resource = "Network";
184 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
185 initExecution(gAction, bpmnRequest, true);
186 execution.setVariable("requestUri", "v6/networks/123");
188 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
189 List<OrchestrationFlow> orchFlows =
190 createFlowList("AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
191 northBoundRequest.setOrchestrationFlowList(orchFlows);
193 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
194 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
196 workflowAction.selectExecutionList(execution);
197 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
198 assertEqualsBulkFlowName(ebbs, "AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
202 public void selectExecutionListALaCarteNetworkDeleteTest() throws Exception {
203 String gAction = "deleteInstance";
204 String resource = "Network";
205 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
206 initExecution(gAction, bpmnRequest, true);
207 execution.setVariable("requestUri", "v6/networks/123");
209 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
210 List<OrchestrationFlow> orchFlows =
211 createFlowList("DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
212 northBoundRequest.setOrchestrationFlowList(orchFlows);
214 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
215 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
217 workflowAction.selectExecutionList(execution);
218 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
219 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
223 public void selectExecutionListALaCarteServiceCreateTest() throws Exception {
224 String gAction = "createInstance";
225 String resource = "Service";
226 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
227 initExecution(gAction, bpmnRequest, true);
228 execution.setVariable("requestUri", "v6/serviceInstances/123");
231 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
232 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "ActivateServiceInstanceBB");
233 northBoundRequest.setOrchestrationFlowList(orchFlows);
235 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
236 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
237 workflowAction.selectExecutionList(execution);
238 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
239 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
243 public void selectExecutionListDuplicateNameExceptionTest() throws Exception {
244 String gAction = "createInstance";
245 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
246 initExecution(gAction, bpmnRequest, true);
247 execution.setVariable("requestUri", "v6/serviceInstances");
249 doThrow(new DuplicateNameException(
250 "serviceInstance with name (instanceName) and different version id (3c40d244-808e-42ca-b09a-256d83d19d0a) already exists. The name must be unique."))
251 .when(aaiResourceIdValidator).validateResourceIdInAAI(anyString(), eq(WorkflowType.SERVICE),
252 eq("test"), any(RequestDetails.class), any(WorkflowResourceIds.class));
254 SPY_workflowAction.selectExecutionList(execution);
255 assertEquals(execution.getVariable("WorkflowActionErrorMessage"),
256 "Exception while setting execution list. serviceInstance with name (instanceName) and different version id (3c40d244-808e-42ca-b09a-256d83d19d0a) already exists. The name must be unique.");
258 // verify default values are present in failure case
259 assertEquals(true, execution.getVariable("isTopLevelFlow"));
260 assertEquals(false, execution.getVariable("sentSyncResponse"));
264 * SERVICE MACRO TESTS
267 public void selectExecutionListServiceMacroAssignTest() throws Exception {
268 String gAction = "assignInstance";
269 String resource = "Service";
270 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
271 initExecution(gAction, bpmnRequest, false);
272 execution.setVariable("requestUri", "v6/serviceInstances/123");
274 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
275 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
276 "AssignVolumeGroupBB", "AssignVfModuleBB");
277 northBoundRequest.setOrchestrationFlowList(orchFlows);
279 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
280 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
281 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
282 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
283 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
284 HeatTemplate volumeHeatTemplate = new HeatTemplate();
285 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
286 vfModuleCustomization.setVfModule(vfModule);
288 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
289 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
290 HeatEnvironment heatEnvironment = new HeatEnvironment();
291 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
292 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
293 HeatTemplate moduleHeatTemplate = new HeatTemplate();
294 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
295 vfModuleCustomization2.setVfModule(vfModule2);
297 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
298 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
300 when(userParamsServiceTraversal.getResourceListFromUserParams(any(), anyList(), anyString(), anyString()))
301 .thenReturn(prepareListWithResources());
302 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
303 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
304 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
305 .thenReturn(vfModuleCustomization);
306 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
307 .thenReturn(vfModuleCustomization2);
308 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
309 .thenReturn(vfModuleCustomization3);
311 workflowAction.selectExecutionList(execution);
312 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
313 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
314 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
318 public void selectExecutionListServiceMacroAssignNoCloudTest() throws Exception {
319 String gAction = "assignInstance";
320 String resource = "Service";
321 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_NO_CLOUD_JSON);
322 initExecution(gAction, bpmnRequest, false);
323 execution.setVariable("requestUri", "v6/serviceInstances/123");
325 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
326 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
327 "AssignVolumeGroupBB", "AssignVfModuleBB");
328 northBoundRequest.setOrchestrationFlowList(orchFlows);
330 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
331 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
332 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
333 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
334 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
335 HeatTemplate volumeHeatTemplate = new HeatTemplate();
336 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
337 vfModuleCustomization.setVfModule(vfModule);
339 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
340 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
341 HeatEnvironment heatEnvironment = new HeatEnvironment();
342 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
343 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
344 HeatTemplate moduleHeatTemplate = new HeatTemplate();
345 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
346 vfModuleCustomization2.setVfModule(vfModule2);
348 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
349 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
351 when(userParamsServiceTraversal.getResourceListFromUserParams(any(), anyList(), anyString(), anyString()))
352 .thenReturn(prepareListWithResources());
353 when(environment.getProperty("org.onap.so.cloud-owner")).thenReturn("att-aic");
354 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
355 false, "att-aic")).thenReturn(northBoundRequest);
356 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
357 .thenReturn(vfModuleCustomization);
358 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
359 .thenReturn(vfModuleCustomization2);
360 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
361 .thenReturn(vfModuleCustomization3);
362 workflowAction.selectExecutionList(execution);
363 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
364 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
365 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
369 public void selectExecutionListServiceMacroActivateTest() throws Exception {
370 String gAction = "activateInstance";
371 String resource = "Service";
372 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
373 initExecution(gAction, bpmnRequest, false);
374 execution.setVariable("requestUri", "v6/serviceInstances/si0");
376 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
377 List<OrchestrationFlow> orchFlows =
378 createFlowList("CreateNetworkBB", "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
379 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "ActivateServiceInstanceBB");
380 northBoundRequest.setOrchestrationFlowList(orchFlows);
382 ServiceInstance serviceInstanceAAI = new ServiceInstance();
383 serviceInstanceAAI.setServiceInstanceId("si0");
384 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
385 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
386 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
387 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
388 vnf.setVnfId("vnf0");
390 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
391 vnf.getVfModules().add(vfModule);
392 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
393 vnf.getVfModules().add(vfModule2);
395 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
396 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
397 volumeGroup.setVolumeGroupId("volumeGroup0");
398 vnf.getVolumeGroups().add(volumeGroup);
400 serviceInstanceMSO.getVnfs().add(vnf);
402 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("si0");
403 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
404 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
405 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
406 workflowAction.selectExecutionList(execution);
407 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
408 assertEqualsBulkFlowName(ebbs, "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
409 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
410 "ActivateServiceInstanceBB");
411 assertEquals("volumeGroup0", ebbs.get(0).getWorkflowResourceIds().getVolumeGroupId());
412 assertEquals("volumeGroup0", ebbs.get(1).getWorkflowResourceIds().getVolumeGroupId());
413 assertEquals("testVfModuleId1", ebbs.get(2).getWorkflowResourceIds().getVfModuleId());
414 assertEquals("testVfModuleId2", ebbs.get(3).getWorkflowResourceIds().getVfModuleId());
415 assertEquals("testVfModuleId1", ebbs.get(4).getWorkflowResourceIds().getVfModuleId());
416 assertEquals("testVfModuleId2", ebbs.get(5).getWorkflowResourceIds().getVfModuleId());
417 assertEquals("vnf0", ebbs.get(6).getWorkflowResourceIds().getVnfId());
418 assertEquals("si0", ebbs.get(7).getWorkflowResourceIds().getServiceInstanceId());
422 public void selectExecutionListServiceMacroDeactivateTest() throws Exception {
423 String gAction = "deactivateInstance";
424 String resource = "Service";
425 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
426 initExecution(gAction, bpmnRequest, false);
427 execution.setVariable("requestUri", "v6/serviceInstances/123");
429 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
430 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateServiceInstanceBB");
431 northBoundRequest.setOrchestrationFlowList(orchFlows);
433 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
434 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
435 workflowAction.selectExecutionList(execution);
436 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
437 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(), "DeactivateServiceInstanceBB");
441 public void selectExecutionListServiceMacroEmptyServiceTest() throws Exception {
442 String gAction = "createInstance";
443 String resource = "Service";
444 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
445 initExecution(gAction, bpmnRequest, false);
446 execution.setVariable("requestUri", "v6/serviceInstances/123");
448 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
449 northBoundRequest.setIsToplevelflow(true);
450 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
451 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
452 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
453 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
454 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
455 northBoundRequest.setOrchestrationFlowList(orchFlows);
457 Service service = new Service();
458 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
459 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
460 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
461 workflowAction.selectExecutionList(execution);
462 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
463 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
467 public void selectExecutionListServiceMacroCreateJustNetworkTest() throws Exception {
468 String gAction = "createInstance";
469 String resource = "Service";
470 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
471 initExecution(gAction, bpmnRequest, false);
472 execution.setVariable("requestUri", "v6/serviceInstances/123");
474 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
475 northBoundRequest.setIsToplevelflow(true);
476 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
477 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
478 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
479 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
480 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
481 northBoundRequest.setOrchestrationFlowList(orchFlows);
483 Service service = new Service();
484 NetworkResourceCustomization networkCustomization = new NetworkResourceCustomization();
485 networkCustomization.setModelCustomizationUUID("1234");
486 service.getNetworkCustomizations().add(networkCustomization);
487 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
488 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
489 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
491 workflowAction.selectExecutionList(execution);
492 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
493 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignNetworkBB", "CreateNetworkBB",
494 "ActivateNetworkBB", "ActivateServiceInstanceBB");
498 public void selectExecutionListServiceMacroCreateWithNetworkCollectionTest() throws Exception {
499 String gAction = "createInstance";
500 String resource = "Service";
501 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
502 initExecution(gAction, bpmnRequest, false);
503 execution.setVariable("requestUri", "v6/serviceInstances/123");
505 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
506 northBoundRequest.setIsToplevelflow(true);
507 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
508 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
509 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
510 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
511 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
512 northBoundRequest.setOrchestrationFlowList(orchFlows);
514 Service service = new Service();
515 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
516 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
517 networkCust.setModelCustomizationUUID("123");
518 networkCustomizations.add(networkCust);
519 service.setNetworkCustomizations(networkCustomizations);
520 NetworkCollectionResourceCustomization collectionResourceCustomization =
521 new NetworkCollectionResourceCustomization();
522 collectionResourceCustomization.setModelCustomizationUUID("123");
524 CollectionResource collectionResource = new CollectionResource();
525 collectionResource.setToscaNodeType("NetworkCollection");
526 InstanceGroup instanceGroup = new InstanceGroup();
527 instanceGroup.setToscaNodeType("NetworkCollectionResource");
528 instanceGroup.setCollectionNetworkResourceCustomizations(new ArrayList<>());
529 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
530 new CollectionNetworkResourceCustomization();
531 collectionNetworkResourceCust.setModelCustomizationUUID("123");
532 collectionNetworkResourceCust.setNetworkResourceCustomization(collectionResourceCustomization);
533 instanceGroup.getCollectionNetworkResourceCustomizations().add(collectionNetworkResourceCust);
534 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
535 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
536 new CollectionResourceInstanceGroupCustomization();
537 collectionInstanceGroupCustomization.setModelCustomizationUUID("123");
538 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
539 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
540 collectionInstanceGroupCustomization.setInstanceGroup(instanceGroup);
541 collectionInstanceGroupCustomization.setCollectionResourceCust(collectionResourceCustomization);
542 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
543 collectionResource.setInstanceGroup(instanceGroup);
544 collectionResourceCustomization.setCollectionResource(collectionResource);;
545 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
546 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
547 doReturn(collectionResourceCustomization).when(catalogDbClient)
548 .getNetworkCollectionResourceCustomizationByID("123");
549 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
550 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
551 workflowAction.selectExecutionList(execution);
552 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
553 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "CreateNetworkCollectionBB", "AssignNetworkBB",
554 "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
555 "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB",
556 "ActivateServiceInstanceBB");
557 assertEquals("Network id not empty", !ebbs.get(2).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
558 assertEquals("Network id not empty", !ebbs.get(3).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
559 assertEquals("Network id not empty", !ebbs.get(4).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
560 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
561 ebbs.get(2).getWorkflowResourceIds().getNetworkId() == ebbs.get(3).getWorkflowResourceIds()
563 && ebbs.get(3).getWorkflowResourceIds().getNetworkId() == ebbs.get(4).getWorkflowResourceIds()
566 assertEquals("Network id not empty", !ebbs.get(5).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
567 assertEquals("Network id not empty", !ebbs.get(6).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
568 assertEquals("Network id not empty", !ebbs.get(7).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
569 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
570 ebbs.get(5).getWorkflowResourceIds().getNetworkId() == ebbs.get(6).getWorkflowResourceIds()
572 && ebbs.get(6).getWorkflowResourceIds().getNetworkId() == ebbs.get(7).getWorkflowResourceIds()
575 assertEquals("Network id not empty", !ebbs.get(8).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
576 assertEquals("Network id not empty", !ebbs.get(9).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
577 assertEquals("Network id not empty", !ebbs.get(10).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
578 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
579 ebbs.get(8).getWorkflowResourceIds().getNetworkId() == ebbs.get(9).getWorkflowResourceIds()
581 && ebbs.get(9).getWorkflowResourceIds().getNetworkId() == ebbs.get(10).getWorkflowResourceIds()
587 public void selectExecutionListServiceMacroCreateWithUserParams() throws Exception {
588 String gAction = "createInstance";
589 String resource = "Service";
590 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
591 initExecution(gAction, bpmnRequest, false);
592 execution.setVariable("requestUri", "v6/serviceInstances/123");
594 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
595 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
596 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
597 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
598 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
599 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
600 northBoundRequest.setOrchestrationFlowList(orchFlows);
602 Service service = new Service();
603 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
605 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
606 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
607 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
608 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
609 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
610 HeatTemplate volumeHeatTemplate = new HeatTemplate();
611 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
612 vfModuleCustomization.setVfModule(vfModule);
614 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
615 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
616 HeatEnvironment heatEnvironment = new HeatEnvironment();
617 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
618 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
619 HeatTemplate moduleHeatTemplate = new HeatTemplate();
620 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
621 vfModuleCustomization2.setVfModule(vfModule2);
623 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
624 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
626 when(userParamsServiceTraversal.getResourceListFromUserParams(any(), anyList(), anyString(), anyString()))
627 .thenReturn(prepareListWithResources());
628 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
629 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
630 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
631 .thenReturn(vfModuleCustomization);
632 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
633 .thenReturn(vfModuleCustomization2);
634 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
635 .thenReturn(vfModuleCustomization3);
636 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
637 workflowAction.selectExecutionList(execution);
638 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
639 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
640 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB", "CreateVolumeGroupBB",
641 "ActivateVolumeGroupBB", "CreateVfModuleBB", "CreateVfModuleBB", "CreateVfModuleBB",
642 "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
643 "ActivateServiceInstanceBB");
645 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
646 int randomUUIDLength = UUID.randomUUID().toString().length();
647 assertEquals(randomUUIDLength, ebbs.get(1).getWorkflowResourceIds().getVnfId().length());
648 assertEquals(randomUUIDLength, ebbs.get(2).getWorkflowResourceIds().getVolumeGroupId().length());
649 assertEquals(randomUUIDLength, ebbs.get(3).getWorkflowResourceIds().getVfModuleId().length());
650 assertEquals(randomUUIDLength, ebbs.get(4).getWorkflowResourceIds().getVfModuleId().length());
651 assertEquals(randomUUIDLength, ebbs.get(5).getWorkflowResourceIds().getVfModuleId().length());
652 assertEquals(randomUUIDLength, ebbs.get(6).getWorkflowResourceIds().getVolumeGroupId().length());
653 assertEquals(randomUUIDLength, ebbs.get(7).getWorkflowResourceIds().getVolumeGroupId().length());
654 assertEquals(randomUUIDLength, ebbs.get(8).getWorkflowResourceIds().getVfModuleId().length());
655 assertEquals(randomUUIDLength, ebbs.get(9).getWorkflowResourceIds().getVfModuleId().length());
656 assertEquals(randomUUIDLength, ebbs.get(10).getWorkflowResourceIds().getVfModuleId().length());
657 assertEquals(randomUUIDLength, ebbs.get(11).getWorkflowResourceIds().getVfModuleId().length());
658 assertEquals(randomUUIDLength, ebbs.get(12).getWorkflowResourceIds().getVfModuleId().length());
659 assertEquals(randomUUIDLength, ebbs.get(13).getWorkflowResourceIds().getVfModuleId().length());
660 assertEquals(randomUUIDLength, ebbs.get(14).getWorkflowResourceIds().getVnfId().length());
661 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
662 assertEquals(true, execution.getVariable("homing"));
666 public void selectExecutionListServiceMacroDeleteTest() throws Exception {
667 String gAction = "deleteInstance";
668 String resource = "Service";
669 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
670 initExecution(gAction, bpmnRequest, false);
671 execution.setVariable("requestUri", "v6/serviceInstances/123");
673 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
674 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
675 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivatePnfBB",
676 "DeactivateNetworkBB", "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB",
677 "UnassignVfModuleBB", "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB",
678 "UnassignServiceInstanceBB");
679 northBoundRequest.setOrchestrationFlowList(orchFlows);
681 ServiceInstance serviceInstanceAAI = new ServiceInstance();
682 serviceInstanceAAI.setServiceInstanceId("aaisi123");
683 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
684 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
685 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
686 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
687 org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf pnf =
688 new org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf();
689 vnf.setVnfId("vnfId123");
690 pnf.setPnfId("pnfId123");
692 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
693 vnf.getVfModules().add(vfModule);
694 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
695 vnf.getVfModules().add(vfModule2);
697 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
698 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
699 volumeGroup.setVolumeGroupId("vg123");
700 vnf.getVolumeGroups().add(volumeGroup);
702 serviceInstanceMSO.getVnfs().add(vnf);
703 serviceInstanceMSO.getPnfs().add(pnf);
705 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
706 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
707 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
708 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
709 workflowAction.selectExecutionList(execution);
710 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
711 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
712 "DeleteVfModuleBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB",
713 "DeactivatePnfBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB", "UnassignVfModuleBB",
714 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignServiceInstanceBB");
718 public void selectExecutionListServiceMacroDeleteWithPnfTest() throws Exception {
719 String gAction = "deleteInstance";
720 String resource = "Service";
721 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
722 initExecution(gAction, bpmnRequest, false);
723 execution.setVariable("requestUri", "v6/serviceInstances/123");
725 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
726 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
727 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivatePnfBB",
728 "DeactivateNetworkBB", "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB",
729 "UnassignVfModuleBB", "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB",
730 "UnassignServiceInstanceBB");
731 northBoundRequest.setOrchestrationFlowList(orchFlows);
733 ServiceInstance serviceInstanceAAI = new ServiceInstance();
734 serviceInstanceAAI.setServiceInstanceId("aaisi123");
735 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
736 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
737 org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf pnf =
738 new org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf();
739 pnf.setPnfId("pnfId123");
741 serviceInstanceMSO.getPnfs().add(pnf);
743 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
744 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
745 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
746 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
747 workflowAction.selectExecutionList(execution);
748 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
749 assertEqualsBulkFlowName(ebbs, "DeactivatePnfBB", "DeactivateServiceInstanceBB", "UnassignServiceInstanceBB");
753 public void selectExecutionListServiceMacroUnassignTest() throws Exception {
754 String gAction = "unassignInstance";
755 String resource = "Service";
756 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
757 initExecution(gAction, bpmnRequest, false);
758 execution.setVariable("requestUri", "v6/serviceInstances/123");
760 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
761 List<OrchestrationFlow> orchFlows = createFlowList("UnassignVfModuleBB", "UnassignVolumeGroupBB",
762 "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
763 northBoundRequest.setOrchestrationFlowList(orchFlows);
765 ServiceInstance serviceInstanceAAI = new ServiceInstance();
766 serviceInstanceAAI.setServiceInstanceId("aaisi123");
767 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
768 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
769 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
770 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
771 vnf.setVnfId("vnfId123");
773 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
774 vnf.getVfModules().add(vfModule);
775 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
776 vnf.getVfModules().add(vfModule2);
778 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
779 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
780 volumeGroup.setVolumeGroupId("vg123");
781 vnf.getVolumeGroups().add(volumeGroup);
783 serviceInstanceMSO.getVnfs().add(vnf);
785 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
786 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
787 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
788 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
789 workflowAction.selectExecutionList(execution);
790 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
791 assertEqualsBulkFlowName(ebbs, "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
792 "UnassignVnfBB", "UnassignServiceInstanceBB");
796 public void selectExecutionListServiceMacroDeleteNetworkCollectionTest() throws Exception {
797 String gAction = "deleteInstance";
798 String resource = "Service";
799 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
800 initExecution(gAction, bpmnRequest, false);
801 execution.setVariable("requestUri", "v6/serviceInstances/123");
803 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
804 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
805 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
806 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
807 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
808 northBoundRequest.setOrchestrationFlowList(orchFlows);
810 ServiceInstance serviceInstanceAAI = new ServiceInstance();
811 serviceInstanceAAI.setServiceInstanceId("aaisi123");
812 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
813 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
815 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network =
816 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
817 network.setNetworkId("123");
818 serviceInstanceMSO.getNetworks().add(network);
819 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network2 =
820 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
821 network2.setNetworkId("321");
822 serviceInstanceMSO.getNetworks().add(network2);
824 Collection collection = new Collection();
825 serviceInstanceMSO.setCollection(collection);
827 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
828 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
829 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
830 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
831 workflowAction.selectExecutionList(execution);
832 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
833 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
834 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeleteNetworkCollectionBB",
835 "DeactivateServiceInstanceBB", "UnassignServiceInstanceBB");
839 public void selectExecutionListVnfMacroRecreateTest() throws Exception {
840 String gAction = "recreateInstance";
841 String resource = "Vnf";
842 String bpmnRequest = readBpmnRequestFromFile(MACRO_VNF_MACRO_REPLACE_JSON);
843 initExecution(gAction, bpmnRequest, false);
844 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/recreate");
845 execution.setVariable("serviceInstanceId", "123");
846 execution.setVariable("vnfId", "1234");
848 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
849 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
850 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
851 "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB",
852 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
853 "AAIUnsetVnfInMaintBB");
854 northBoundRequest.setOrchestrationFlowList(orchFlows);
856 ServiceInstance serviceInstanceAAI = new ServiceInstance();
857 serviceInstanceAAI.setServiceInstanceId("123");
858 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
859 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
860 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
861 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
862 vnf.setVnfId("1234");
864 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
865 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
866 vfModule.setVfModuleId("vfModule1");
867 vnf.getVfModules().add(vfModule);
868 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
869 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
870 vfModule2.setVfModuleId("vfModule2");
871 vnf.getVfModules().add(vfModule2);
873 serviceInstanceMSO.getVnfs().add(vnf);
875 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
876 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
877 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
878 false, "cloud-owner")).thenReturn(northBoundRequest);
879 workflowAction.selectExecutionList(execution);
880 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
881 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateVfModuleBB",
882 "DeactivateVfModuleBB", "DeleteVfModuleBB", "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB",
883 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
884 "AAIUnsetVnfInMaintBB");
888 public void selectExecutionListVnfMacroReplaceTest() throws Exception {
889 String gAction = "replaceInstance";
890 String resource = "Vnf";
891 String bpmnRequest = readBpmnRequestFromFile(MACRO_VNF_MACRO_REPLACE_JSON);
892 initExecution(gAction, bpmnRequest, false);
893 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/replace");
894 execution.setVariable("serviceInstanceId", "123");
895 execution.setVariable("vnfId", "1234");
897 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
898 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
899 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
900 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
901 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB",
902 "ChangeModelVnfBB", "ActivateVnfBB", "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB",
903 "AAIUnsetVnfInMaintBB");
904 northBoundRequest.setOrchestrationFlowList(orchFlows);
906 ServiceInstance serviceInstanceAAI = new ServiceInstance();
907 serviceInstanceAAI.setServiceInstanceId("123");
908 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
909 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
910 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
911 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
912 vnf.setVnfId("1234");
913 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
914 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
915 vfModule.setVfModuleId("vfModule1");
916 vnf.getVfModules().add(vfModule);
917 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
918 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
919 vfModule2.setVfModuleId("vfModule2");
920 vnf.getVfModules().add(vfModule2);
921 serviceInstanceMSO.getVnfs().add(vnf);
922 VfModule vfModuleAAI = new VfModule();
923 vfModuleAAI.setVfModuleId("vfModule2");
924 RelationshipList relationshipList = new RelationshipList();
925 Relationship relationship = new Relationship();
926 relationshipList.getRelationship().add(relationship);
927 vfModuleAAI.setRelationshipList(relationshipList);
928 Relationships relationships = new Relationships("abc");
929 Configuration config = new Configuration();
930 config.setConfigurationId("configId");
931 Optional<Configuration> configOp = Optional.of(config);
932 Optional<Relationships> relationshipsOp = Optional.of(relationships);
934 doReturn(relationshipsOp).when(workflowActionUtils).extractRelationshipsVnfc(isA(Relationships.class));
935 doReturn(configOp).when(workflowActionUtils).extractRelationshipsConfiguration(isA(Relationships.class));
936 doReturn(vfModuleAAI).when(bbSetupUtils).getAAIVfModule("1234", "vfModule2");
937 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
938 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
939 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
940 false, "cloud-owner")).thenReturn(northBoundRequest);
941 workflowAction.selectExecutionList(execution);
942 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
943 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateFabricConfigurationBB",
944 "UnassignFabricConfigurationBB", "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
945 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "ChangeModelVfModuleBB",
946 "CreateVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB",
947 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ChangeModelVnfBB", "ActivateVnfBB",
948 "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
949 for (ExecuteBuildingBlock executeBuildingBlock : ebbs) {
950 assertEquals("123", executeBuildingBlock.getWorkflowResourceIds().getServiceInstanceId());
956 public void selectExecutionListNetworkCollectionMacroCreate() throws Exception {
957 String gAction = "createInstance";
958 String resource = "NetworkCollection";
959 String bpmnRequest = readBpmnRequestFromFile(MACRO_CREATE_NETWORK_COLLECTION_JSON);
960 initExecution(gAction, bpmnRequest, false);
961 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
963 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
964 List<OrchestrationFlow> orchFlows = createFlowList("CreateNetworkCollectionBB", "AssignNetworkBB",
965 "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB");
966 northBoundRequest.setOrchestrationFlowList(orchFlows);
968 Service service = new Service();
969 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
970 CollectionResource collectionResource = new CollectionResource();
971 collectionResource.setToscaNodeType("Data NetworkCollection Data");
972 collectionResourceCustomization.setCollectionResource(collectionResource);
973 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
975 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
976 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
977 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
978 workflowAction.selectExecutionList(execution);
979 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
980 assertEqualsBulkFlowName(ebbs, "CreateNetworkCollectionBB", "AssignNetworkBB", "CreateNetworkBB",
981 "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
982 "ActivateNetworkCollectionBB");
987 public void selectExecutionListNetworkCollectionMacroDelete() throws Exception {
988 String gAction = "deleteInstance";
989 String resource = "NetworkCollection";
990 String bpmnRequest = readBpmnRequestFromFile(MACRO_CREATE_NETWORK_COLLECTION_JSON);
991 initExecution(gAction, bpmnRequest, false);
992 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
994 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
995 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateNetworkBB", "DeleteNetworkBB",
996 "UnassignNetworkBB", "DeactivateNetworkCollectionBB", "DeleteNetworkCollectionBB");
997 northBoundRequest.setOrchestrationFlowList(orchFlows);
999 Service service = new Service();
1000 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
1001 CollectionResource collectionResource = new CollectionResource();
1002 collectionResource.setToscaNodeType("Data NetworkCollection Data");
1003 collectionResourceCustomization.setCollectionResource(collectionResource);
1004 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
1006 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1007 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1008 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1009 workflowAction.selectExecutionList(execution);
1010 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1011 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1012 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeactivateNetworkCollectionBB",
1013 "DeleteNetworkCollectionBB");
1017 public void selectExecutionListALaCarteVfModuleNoFabricCreateTest() throws Exception {
1018 String gAction = "createInstance";
1019 String resource = "VfModule";
1020 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1021 initExecution(gAction, bpmnRequest, true);
1022 execution.setVariable("requestUri",
1023 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1025 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1026 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1027 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1028 northBoundRequest.setOrchestrationFlowList(orchFlows);
1030 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1031 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1032 workflowAction.selectExecutionList(execution);
1033 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1034 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB");
1038 public void selectExecutionListALaCarteVfModuleFabricCreateTest() throws Exception {
1039 String gAction = "createInstance";
1040 String resource = "VfModule";
1041 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1042 initExecution(gAction, bpmnRequest, true);
1043 execution.setVariable("requestUri",
1044 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1046 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1047 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1048 "AddFabricConfigurationBB");
1049 northBoundRequest.setOrchestrationFlowList(orchFlows);
1051 List<CvnfcCustomization> cvnfcCustomizations = new ArrayList<CvnfcCustomization>();
1052 CvnfcCustomization cvnfcCustomization = new CvnfcCustomization();
1053 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1054 new CvnfcConfigurationCustomization();
1055 ConfigurationResource configurationResource = new ConfigurationResource();
1056 configurationResource.setToscaNodeType("FabricConfiguration");
1057 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1058 vnfVfmoduleCvnfcConfigurationCustomization.setModelInstanceName("modelInstanceName1");
1059 vnfVfmoduleCvnfcConfigurationCustomization.setCvnfcCustomization(cvnfcCustomization);
1060 List<CvnfcConfigurationCustomization> custSet = new ArrayList<CvnfcConfigurationCustomization>();
1061 custSet.add(vnfVfmoduleCvnfcConfigurationCustomization);
1062 cvnfcCustomization.setCvnfcConfigurationCustomization(custSet);
1063 cvnfcCustomization.setDescription("description");
1064 cvnfcCustomizations.add(cvnfcCustomization);
1066 CvnfcCustomization cvnfcCustomization2 = new CvnfcCustomization();
1067 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization2 =
1068 new CvnfcConfigurationCustomization();
1069 ConfigurationResource configurationResource2 = new ConfigurationResource();
1070 configurationResource2.setToscaNodeType("FabricConfiguration");
1071 vnfVfmoduleCvnfcConfigurationCustomization2.setConfigurationResource(configurationResource2);
1072 vnfVfmoduleCvnfcConfigurationCustomization2.setModelInstanceName("modelInstanceName2");
1073 vnfVfmoduleCvnfcConfigurationCustomization2.setCvnfcCustomization(cvnfcCustomization2);
1074 List<CvnfcConfigurationCustomization> custSet2 = new ArrayList<CvnfcConfigurationCustomization>();
1075 custSet2.add(vnfVfmoduleCvnfcConfigurationCustomization2);
1076 cvnfcCustomization2.setCvnfcConfigurationCustomization(custSet2);
1077 cvnfcCustomization2.setDescription("description2");
1078 cvnfcCustomizations.add(cvnfcCustomization2);
1080 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1081 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1083 workflowAction.selectExecutionList(execution);
1084 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1085 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB");
1091 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceTest() throws Exception {
1092 String gAction = "replaceInstance";
1093 String resource = "VfModule";
1094 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1095 initExecution(gAction, bpmnRequest, true);
1096 execution.setVariable("requestUri",
1097 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1099 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1100 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1101 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1102 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1103 workflowAction.selectExecutionList(execution);
1104 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1106 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1107 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1108 "ChangeModelServiceInstanceBB");
1112 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1113 String gAction = "replaceInstanceRetainAssignments";
1114 String resource = "VfModule";
1115 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1116 initExecution(gAction, bpmnRequest, true);
1117 execution.setVariable("requestUri",
1118 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1120 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1121 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1122 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1123 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1124 workflowAction.selectExecutionList(execution);
1125 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1127 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1128 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1132 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceTest() throws Exception {
1133 String gAction = "replaceInstance";
1134 String resource = "VfModule";
1135 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1136 initExecution(gAction, bpmnRequest, true);
1137 execution.setVariable("requestUri",
1138 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1139 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1140 execution.setVariable("vfModuleId", "1234");
1142 VolumeGroup volumeGroup = new VolumeGroup();
1143 volumeGroup.setVolumeGroupId("volumeGroupId");
1144 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1145 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1146 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1147 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1148 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1149 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1150 workflowAction.selectExecutionList(execution);
1151 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1153 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1154 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVfModuleBB",
1155 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1159 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceRetainAssignmentsTest()
1161 String gAction = "replaceInstanceRetainAssignments";
1162 String resource = "VfModule";
1163 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1164 initExecution(gAction, bpmnRequest, true);
1165 execution.setVariable("requestUri",
1166 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1167 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1168 execution.setVariable("vfModuleId", "1234");
1170 VolumeGroup volumeGroup = new VolumeGroup();
1171 volumeGroup.setVolumeGroupId("volumeGroupId");
1172 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1173 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1175 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1176 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1177 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1178 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1179 workflowAction.selectExecutionList(execution);
1180 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1182 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1183 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
1184 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1188 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceTest() throws Exception {
1189 String gAction = "replaceInstance";
1190 String resource = "VfModule";
1191 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1192 initExecution(gAction, bpmnRequest, true);
1193 execution.setVariable("requestUri",
1194 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1195 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1196 execution.setVariable("vfModuleId", "1234");
1198 VolumeGroup volumeGroup = new VolumeGroup();
1199 volumeGroup.setVolumeGroupId("volumeGroupId");
1200 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1201 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1203 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1204 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1205 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1206 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1207 vfModuleCustomization.setVfModule(vfModule);
1208 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1209 .thenReturn(vfModuleCustomization);
1211 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1212 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1213 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1214 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1215 workflowAction.selectExecutionList(execution);
1216 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1218 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1219 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1220 "ChangeModelServiceInstanceBB");
1224 public void selectExecutionListALaCarteVfModuleWithFabricKeepVolumeGroupReplaceTest() throws Exception {
1225 String gAction = "replaceInstance";
1226 String resource = "VfModule";
1227 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1228 initExecution(gAction, bpmnRequest, true);
1229 execution.setVariable("requestUri",
1230 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1231 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1232 execution.setVariable("vfModuleId", "1234");
1234 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1235 vnf.setVnfId("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1236 vnf.setModelCustomizationId("modelCustomizationId");
1237 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
1239 org.onap.aai.domain.yang.VfModule vfModuleFromAAI = new org.onap.aai.domain.yang.VfModule();
1240 vfModuleFromAAI.setModelCustomizationId("modelCustomizationId");
1241 vfModuleFromAAI.setVfModuleId("1234");
1242 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModuleFromAAI);
1244 VolumeGroup volumeGroup = new VolumeGroup();
1245 volumeGroup.setVolumeGroupId("volumeGroupId");
1246 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1247 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1249 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1250 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1251 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1252 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1253 vfModuleCustomization.setVfModule(vfModule);
1254 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1255 .thenReturn(vfModuleCustomization);
1256 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1257 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1258 vnfc.setModelInvariantId("modelInvariantId");
1259 vnfc.setVnfcName("testVnfcName");
1261 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(), any(), any());
1263 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1264 configuration.setConfigurationId("configurationId");
1265 configuration.setModelCustomizationId("modelCustimizationId");
1266 configuration.setConfigurationName("testConfigurationName");
1267 doReturn(configuration).when(SPY_workflowAction).getRelatedResourcesInVnfc(any(), any(), any());
1269 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1270 northBoundRequest.setOrchestrationFlowList(replaceVfModuleWithFabricOrchFlows);
1271 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1272 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1273 SPY_workflowAction.selectExecutionList(execution);
1274 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1276 assertEqualsBulkFlowName(ebbs, "DeleteFabricConfigurationBB", "DeactivateVfModuleBB", "DeleteVfModuleATTBB",
1277 "UnassignVFModuleBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1278 "ChangeModelServiceInstanceBB");
1282 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1283 String gAction = "replaceInstanceRetainAssignments";
1284 String resource = "VfModule";
1285 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1286 initExecution(gAction, bpmnRequest, true);
1287 execution.setVariable("requestUri",
1288 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1289 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1290 execution.setVariable("vfModuleId", "1234");
1292 VolumeGroup volumeGroup = new VolumeGroup();
1293 volumeGroup.setVolumeGroupId("volumeGroupId");
1294 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1295 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1297 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1298 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1299 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1300 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1301 vfModuleCustomization.setVfModule(vfModule);
1302 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1303 .thenReturn(vfModuleCustomization);
1305 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1306 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1307 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1308 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1309 workflowAction.selectExecutionList(execution);
1310 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1312 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1313 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1317 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceTest() throws Exception {
1318 String gAction = "replaceInstance";
1319 String resource = "VfModule";
1320 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1321 initExecution(gAction, bpmnRequest, true);
1322 execution.setVariable("requestUri",
1323 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1324 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1325 execution.setVariable("vfModuleId", "1234");
1327 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1328 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1329 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1330 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1331 vfModuleCustomization.setVfModule(vfModule);
1332 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1333 .thenReturn(vfModuleCustomization);
1335 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1336 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1337 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1338 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1339 workflowAction.selectExecutionList(execution);
1340 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1342 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1343 "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1344 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1348 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceRetainAssignmentsTest()
1350 String gAction = "replaceInstanceRetainAssignments";
1351 String resource = "VfModule";
1352 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1353 initExecution(gAction, bpmnRequest, true);
1354 execution.setVariable("requestUri",
1355 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1356 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1357 execution.setVariable("vfModuleId", "1234");
1359 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1360 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1361 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1362 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1363 vfModuleCustomization.setVfModule(vfModule);
1364 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1365 .thenReturn(vfModuleCustomization);
1367 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1368 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1369 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1370 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1371 workflowAction.selectExecutionList(execution);
1372 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1374 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "AssignVolumeGroupBB",
1375 "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
1376 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1380 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceTest() throws Exception {
1381 String gAction = "replaceInstance";
1382 String resource = "VfModule";
1383 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_REPLACE_REBUILD_VOLUME_GROUPS_JSON);
1384 initExecution(gAction, bpmnRequest, true);
1385 execution.setVariable("requestUri",
1386 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1387 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1388 execution.setVariable("vfModuleId", "1234");
1390 VolumeGroup volumeGroup = new VolumeGroup();
1391 volumeGroup.setVolumeGroupId("volumeGroupId");
1392 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1393 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1395 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1396 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1397 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1398 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1399 vfModuleCustomization.setVfModule(vfModule);
1400 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1401 .thenReturn(vfModuleCustomization);
1403 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1404 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1405 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1406 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1407 workflowAction.selectExecutionList(execution);
1408 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1410 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1411 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
1412 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
1413 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1417 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1418 String gAction = "replaceInstanceRetainAssignments";
1419 String resource = "VfModule";
1420 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_REPLACE_REBUILD_VOLUME_GROUPS_JSON);
1421 initExecution(gAction, bpmnRequest, true);
1422 execution.setVariable("requestUri",
1423 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1424 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1425 execution.setVariable("vfModuleId", "1234");
1427 VolumeGroup volumeGroup = new VolumeGroup();
1428 volumeGroup.setVolumeGroupId("volumeGroupId");
1429 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1430 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1432 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1433 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1434 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1435 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1436 vfModuleCustomization.setVfModule(vfModule);
1437 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1438 .thenReturn(vfModuleCustomization);
1440 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1441 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1442 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1443 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1444 workflowAction.selectExecutionList(execution);
1445 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1447 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1448 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB", "ChangeModelVfModuleBB",
1449 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1450 "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1454 public void selectExecutionListALaCarteVfModuleFabricDeleteTest() throws Exception {
1455 String gAction = "deleteInstance";
1456 String resource = "VfModule";
1457 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1458 initExecution(gAction, bpmnRequest, true);
1459 execution.setVariable("requestUri",
1460 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1462 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1463 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1464 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1465 northBoundRequest.setOrchestrationFlowList(orchFlows);
1467 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1468 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1470 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1471 vnf.setVnfId("vnf0");
1472 vnf.setModelCustomizationId("modelCustomizationId");
1473 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1475 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1476 vfModule.setModelCustomizationId("modelCustomizationId");
1477 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1479 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1480 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1481 vnfc.setModelInvariantId("modelInvariantId");
1482 vnfc.setVnfcName("testVnfcName");
1484 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1487 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1488 configuration.setConfigurationId("configurationId");
1489 configuration.setModelCustomizationId("modelCustimizationId");
1490 configuration.setConfigurationName("testConfigurationName");
1491 doReturn(configuration).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1494 SPY_workflowAction.selectExecutionList(execution);
1495 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1496 assertEqualsBulkFlowName(ebbs, "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB",
1497 "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1501 public void selectExecutionListALaCarteNoRequestParametersTest() throws Exception {
1502 String gAction = "createInstance";
1503 String resource = "VfModule";
1504 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_NO_PARAMS_JSON);
1505 initExecution(gAction, bpmnRequest, true);
1506 execution.setVariable("requestUri",
1507 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1509 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1510 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1511 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1512 northBoundRequest.setOrchestrationFlowList(orchFlows);
1514 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1515 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1516 workflowAction.selectExecutionList(execution);
1517 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1518 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB");
1522 public void getConfigBuildingBlocksNoVfModuleFabricDeleteTest() throws Exception {
1523 String gAction = "deleteInstance";
1524 ObjectMapper mapper = new ObjectMapper();
1525 WorkflowType resourceType = WorkflowType.VFMODULE;
1526 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1527 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1528 execution.setVariable("requestAction", gAction);
1529 execution.setVariable("bpmnRequest", bpmnRequest);
1530 execution.setVariable("vnfId", "1234");
1531 execution.setVariable("vfModuleId", "vfModuleId1234");
1532 execution.setVariable("requestUri",
1533 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1534 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1535 RequestDetails requestDetails = sIRequest.getRequestDetails();
1536 String requestAction = "deleteInstance";
1537 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1538 boolean aLaCarte = true;
1539 String apiVersion = "7";
1540 String vnfType = "vnfType";
1541 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1542 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1543 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1544 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1546 thrown.expect(AAIEntityNotFoundException.class);
1547 thrown.expectMessage(containsString(
1548 "No matching VfModule is found in Generic-Vnf in AAI for vnfId: 1234 and vfModuleId : vfModuleId1234"));
1550 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1551 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1553 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1554 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1555 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1556 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1558 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1559 vnf.setVnfId("vnf0");
1560 vnf.setModelCustomizationId("modelCustomizationId");
1561 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1563 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1564 vfModule.setModelCustomizationId("modelCustomizationId");
1565 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(null);
1567 SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1571 public void getConfigBuildingBlocksTest() throws Exception {
1572 String gAction = "deleteInstance";
1573 ObjectMapper mapper = new ObjectMapper();
1574 mapper.disable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES);
1576 WorkflowType resourceType = WorkflowType.VFMODULE;
1577 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1578 execution.setVariable("requestAction", gAction);
1579 String bpmnRequest =
1580 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1581 execution.setVariable("bpmnRequest", bpmnRequest);
1582 execution.setVariable("vnfId", "1234");
1583 execution.setVariable("vfModuleId", "vfModuleId1234");
1584 execution.setVariable("requestUri",
1585 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1586 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1587 RequestDetails requestDetails = sIRequest.getRequestDetails();
1588 String requestAction = "deleteInstance";
1589 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1590 boolean aLaCarte = true;
1591 String apiVersion = "7";
1592 String vnfType = "vnfType";
1593 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1594 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1595 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1596 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1598 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1599 "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
1601 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1602 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1603 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1604 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1606 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1607 vnf.setVnfId("vnf0");
1608 vnf.setModelCustomizationId("modelCustomizationId");
1609 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
1611 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1612 vfModule.setModelCustomizationId("modelCustomizationId");
1614 org.onap.aai.domain.yang.Configuration config1 = new org.onap.aai.domain.yang.Configuration();
1615 config1.setConfigurationId("config1");
1616 org.onap.aai.domain.yang.Configuration config2 = new org.onap.aai.domain.yang.Configuration();
1617 config2.setConfigurationId("config2");
1619 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1620 org.onap.aai.domain.yang.Vnfc vnfc1 = new org.onap.aai.domain.yang.Vnfc();
1621 vnfc1.setVnfcName("zauk53avetd02svm001");
1622 org.onap.aai.domain.yang.Vnfc vnfc2 = new org.onap.aai.domain.yang.Vnfc();
1623 vnfc2.setVnfcName("zauk53avetd02tvm001");
1627 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModule);
1628 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(),
1629 eq(org.onap.aai.domain.yang.Vnfc.class), eq(Types.VNFC));
1630 doReturn(config1).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc1),
1631 eq(org.onap.aai.domain.yang.Configuration.class), eq(Types.CONFIGURATION));
1632 doReturn(config2).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc2),
1633 eq(org.onap.aai.domain.yang.Configuration.class), eq(Types.CONFIGURATION));
1635 List<ExecuteBuildingBlock> results = SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1637 assertFalse(results.isEmpty());
1638 assertEquals(2, results.size());
1639 assertEquals("config1", results.get(0).getWorkflowResourceIds().getConfigurationId());
1640 assertEquals("config2", results.get(1).getWorkflowResourceIds().getConfigurationId());
1641 assertEquals("zauk53avetd02svm001", results.get(0).getConfigurationResourceKeys().getVnfcName());
1642 assertEquals("zauk53avetd02tvm001", results.get(1).getConfigurationResourceKeys().getVnfcName());
1646 public void getConfigBuildingBlocksNullConfigurationTest() throws Exception {
1647 String gAction = "deleteInstance";
1648 ObjectMapper mapper = new ObjectMapper();
1649 mapper.disable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES);
1651 WorkflowType resourceType = WorkflowType.VFMODULE;
1652 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1653 execution.setVariable("requestAction", gAction);
1654 String bpmnRequest =
1655 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1656 execution.setVariable("bpmnRequest", bpmnRequest);
1657 execution.setVariable("vnfId", "1234");
1658 execution.setVariable("vfModuleId", "vfModuleId1234");
1659 execution.setVariable("requestUri",
1660 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1661 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1662 RequestDetails requestDetails = sIRequest.getRequestDetails();
1663 String requestAction = "deleteInstance";
1664 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1665 boolean aLaCarte = true;
1666 String apiVersion = "7";
1667 String vnfType = "vnfType";
1668 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1669 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1670 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1671 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1673 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1674 "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
1676 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1677 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1678 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1679 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1681 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1682 vnf.setVnfId("vnf0");
1683 vnf.setModelCustomizationId("modelCustomizationId");
1684 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
1686 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1687 vfModule.setModelCustomizationId("modelCustomizationId");
1689 /* this is a test case where configuration for vnfc is null */
1690 org.onap.aai.domain.yang.Configuration config1 = null;
1691 org.onap.aai.domain.yang.Configuration config2 = new org.onap.aai.domain.yang.Configuration();
1692 config2.setConfigurationId("config2");
1694 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1695 org.onap.aai.domain.yang.Vnfc vnfc1 = new org.onap.aai.domain.yang.Vnfc();
1696 vnfc1.setVnfcName("zauk53avetd02svm001");
1697 org.onap.aai.domain.yang.Vnfc vnfc2 = new org.onap.aai.domain.yang.Vnfc();
1698 vnfc2.setVnfcName("zauk53avetd02tvm001");
1702 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModule);
1703 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(),
1704 eq(org.onap.aai.domain.yang.Vnfc.class), eq(Types.VNFC));
1705 doReturn(config1).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc1),
1706 eq(org.onap.aai.domain.yang.Configuration.class), eq(Types.CONFIGURATION));
1707 doReturn(config2).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc2),
1708 eq(org.onap.aai.domain.yang.Configuration.class), eq(Types.CONFIGURATION));
1710 List<ExecuteBuildingBlock> results = SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1712 assertFalse(results.isEmpty());
1713 assertEquals(1, results.size());
1714 assertEquals("config2", results.get(0).getWorkflowResourceIds().getConfigurationId());
1715 assertEquals("zauk53avetd02tvm001", results.get(0).getConfigurationResourceKeys().getVnfcName());
1719 public void selectExecutionListALaCarteVfModuleNoFabricDeleteTest() throws Exception {
1720 String gAction = "deleteInstance";
1721 String resource = "VfModule";
1722 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1723 initExecution(gAction, bpmnRequest, true);
1724 execution.setVariable("requestUri",
1725 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1727 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1728 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1729 "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
1730 northBoundRequest.setOrchestrationFlowList(orchFlows);
1732 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1733 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1735 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1736 vnf.setVnfId("vnf0");
1737 vnf.setModelCustomizationId("modelCustomizationId");
1738 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1740 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1741 vfModule.setModelCustomizationId("modelCustomizationId");
1742 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1744 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1746 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1749 SPY_workflowAction.selectExecutionList(execution);
1750 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1751 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1755 public void selectExecutionListMacroResumeTest() throws Exception {
1756 String gAction = "createInstance";
1757 String resource = "Service";
1758 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
1759 initExecution(gAction, bpmnRequest, false);
1760 execution.setVariable("requestUri", "v6/serviceInstances/123");
1762 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1763 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1764 northBoundRequest.setOrchestrationFlowList(orchFlows);
1766 Service service = new Service();
1767 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
1769 ServiceInstance si = new ServiceInstance();
1771 when(bbSetupUtils.getAAIServiceInstanceById("123")).thenReturn(si);
1772 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1774 String flowsToExecuteString =
1775 "[{\"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\"}}]";
1776 ObjectMapper om = new ObjectMapper();
1777 List<ExecuteBuildingBlock> flowsToExecute = null;
1779 ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
1780 flowsToExecute = Arrays.asList(asArray);
1781 } catch (Exception e) {
1782 e.printStackTrace();
1785 when(bbSetupUtils.loadOriginalFlowExecutionPath(anyString())).thenReturn(flowsToExecute);
1787 workflowAction.selectExecutionList(execution);
1788 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1789 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB");
1793 public void getRelatedResourcesInVfModuleTest() throws Exception {
1794 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1795 vnfc.setModelInvariantId("modelInvariantId");
1796 vnfc.setVnfcName("testVnfcName");
1798 String vfncPayload =
1799 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/vnfcResponse.json")));
1800 AAIResultWrapper vfncWrapper = new AAIResultWrapper(vfncPayload);
1802 String configurationPayload =
1803 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/configurationResponse.json")));
1804 AAIResultWrapper configurationWrapper = new AAIResultWrapper(configurationPayload);
1805 List<AAIResultWrapper> configurationResultWrappers = new ArrayList<AAIResultWrapper>();
1806 configurationResultWrappers.add(configurationWrapper);
1808 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().vnfc(vnfc.getVnfcName()));
1809 when(bbSetupUtils.getAAIResourceDepthOne(uri)).thenReturn(vfncWrapper);
1811 doReturn(configurationResultWrappers).when(SPY_workflowAction).getResultWrappersFromRelationships(anyObject(),
1813 org.onap.aai.domain.yang.Configuration configuration = SPY_workflowAction.getRelatedResourcesInVnfc(vnfc,
1814 org.onap.aai.domain.yang.Configuration.class, Types.CONFIGURATION);
1815 assertEquals("testConfigurationId", configuration.getConfigurationId());
1819 * WorkflowActionBB Tests
1823 public void pluralTest() {
1824 List<String> items = Arrays.asList("serviceInstances, Service", "vnfs, Vnf", "vfModules, VfModule",
1825 "networks, Network", "invalidNames, invalidNames");
1826 items.forEach(item -> {
1827 String[] split = item.split(",");
1828 String type = split[0].trim();
1829 String expected = split[1].trim();
1830 assertThat(workflowAction.convertTypeFromPlural(type), equalTo(expected));
1835 public void sortExecutionPathByObjectForVlanTaggingCreateTest() throws Exception {
1836 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1838 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("0");
1839 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1840 executeFlows.add(ebb);
1842 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("1");
1843 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1844 executeFlows.add(ebb2);
1846 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("0");
1847 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1848 executeFlows.add(ebb3);
1850 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("1");
1851 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1852 executeFlows.add(ebb4);
1854 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("0");
1855 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1856 executeFlows.add(ebb5);
1858 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("1");
1859 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1860 executeFlows.add(ebb6);
1862 List<ExecuteBuildingBlock> sorted =
1863 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "createInstance");
1864 assertEqualsBulkFlowName(sorted, "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB",
1865 "CreateNetworkBB", "ActivateNetworkBB");
1869 public void sortExecutionPathByObjectForVlanTaggingDeleteTest() throws Exception {
1870 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1872 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("0");
1873 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1874 executeFlows.add(ebb);
1876 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("1");
1877 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1878 executeFlows.add(ebb2);
1880 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("0");
1881 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1882 executeFlows.add(ebb3);
1884 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("1");
1885 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1886 executeFlows.add(ebb4);
1888 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("0");
1889 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1890 executeFlows.add(ebb5);
1892 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("1");
1893 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1894 executeFlows.add(ebb6);
1896 List<ExecuteBuildingBlock> sorted =
1897 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "deleteInstance");
1898 assertEqualsBulkFlowName(sorted, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1899 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB");
1903 public void queryNorthBoundRequestCatalogDbNestedTest() throws MalformedURLException {
1904 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1905 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
1906 "VNF-Macro-Replace", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
1907 northBoundRequest.setOrchestrationFlowList(orchFlows);
1908 List<OrchestrationFlow> macroFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1909 "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB");
1911 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner("replaceInstance",
1912 "Vnf", false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1913 when(catalogDbClient.getOrchestrationFlowByAction("VNF-Macro-Replace")).thenReturn(macroFlows);
1914 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "replaceInstance",
1915 WorkflowType.VNF, false, "my-custom-cloud-owner");
1916 assertEquals(flows.get(0).getFlowName(), "AAICheckVnfInMaintBB");
1917 assertEquals(flows.get(1).getFlowName(), "AAISetVnfInMaintBB");
1918 assertEquals(flows.get(2).getFlowName(), "DeactivateVfModuleBB");
1919 assertEquals(flows.get(3).getFlowName(), "DeleteVfModuleBB");
1920 assertEquals(flows.get(4).getFlowName(), "DeactivateVnfBB");
1921 assertEquals(flows.get(5).getFlowName(), "CreateVfModuleBB");
1922 assertEquals(flows.get(6).getFlowName(), "ActivateVfModuleBB");
1923 assertEquals(flows.get(7).getFlowName(), "ActivateVnfBB");
1924 assertEquals(flows.get(8).getFlowName(), "SDNOVnfHealthCheckBB");
1925 assertEquals(flows.get(9).getFlowName(), "AAIUnsetVnfInMaintBB");
1929 public void queryNorthBoundRequestCatalogDbTransportTest() throws MalformedURLException {
1930 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1931 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1932 northBoundRequest.setOrchestrationFlowList(orchFlows);
1933 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwnerAndServiceType(
1934 "createInstance", "Service", true, "my-custom-cloud-owner", "TRANSPORT")).thenReturn(northBoundRequest);
1936 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "createInstance",
1937 WorkflowType.SERVICE, true, "my-custom-cloud-owner", "TRANSPORT");
1938 assertEquals(flows.get(0).getFlowName(), "AssignServiceInstanceBB");
1942 public void extractResourceIdAndTypeFromUriTest() {
1943 String uri = "/v6/serviceInstances/123";
1944 String uri2 = "/v6/serviceInstances/123/vnfs/1234";
1945 String uri3 = "/v6/serviceInstances";
1946 String uri4 = "/v6/serviceInstances/assign";
1947 String uri5 = "'/v6/serviceInstances/123/vnfs";
1948 String uri6 = "/v6/serviceInstances/123/vnfs/1234/someAction";
1949 String uri7 = "/v6/serviceInstances/123/vnfs/1234/vfModules/5678/replace";
1950 String uri8 = "/v6/serviceInstances/123/vnfs/1234/vfModules/scaleOut";
1951 Resource expected1 = new Resource(WorkflowType.SERVICE, "123", true);
1952 Resource expected2 = new Resource(WorkflowType.VNF, "1234", false);
1953 Resource expected3 = new Resource(WorkflowType.VNF, "1234", false);
1954 Resource expected4 = new Resource(WorkflowType.VFMODULE, "5678", false);
1955 Resource result = workflowAction.extractResourceIdAndTypeFromUri(uri);
1956 assertEquals(expected1.getResourceId(), result.getResourceId());
1957 assertEquals(expected1.getResourceType(), result.getResourceType());
1958 result = workflowAction.extractResourceIdAndTypeFromUri(uri2);
1959 assertEquals(expected2.getResourceId(), result.getResourceId());
1960 assertEquals(expected2.getResourceType(), result.getResourceType());
1961 result = workflowAction.extractResourceIdAndTypeFromUri(uri3);
1962 assertEquals("Service", result.getResourceType().toString());
1963 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1964 result = workflowAction.extractResourceIdAndTypeFromUri(uri4);
1965 assertEquals("Service", result.getResourceType().toString());
1966 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1967 result = workflowAction.extractResourceIdAndTypeFromUri(uri5);
1968 assertEquals("Vnf", result.getResourceType().toString());
1969 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1970 result = workflowAction.extractResourceIdAndTypeFromUri(uri6);
1971 assertEquals(expected3.getResourceId(), result.getResourceId());
1972 assertEquals(expected3.getResourceType(), result.getResourceType());
1973 result = workflowAction.extractResourceIdAndTypeFromUri(uri7);
1974 assertEquals(expected4.getResourceId(), result.getResourceId());
1975 assertEquals(expected4.getResourceType(), result.getResourceType());
1976 result = workflowAction.extractResourceIdAndTypeFromUri(uri8);
1977 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1978 assertEquals("VfModule", result.getResourceType().toString());
1983 public void extractResourceIdAndTypeFromUriInvalidTypeTest() {
1984 this.expectedException.expect(IllegalArgumentException.class);
1985 this.expectedException.expectMessage(containsString("Uri could not be parsed. No type found."));
1986 workflowAction.extractResourceIdAndTypeFromUri("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace");
1990 public void extractResourceIdAndTypeFromUriInvalidUriTest() {
1991 this.expectedException.expect(IllegalArgumentException.class);
1992 this.expectedException.expectMessage(containsString("Uri could not be parsed:"));
1993 workflowAction.extractResourceIdAndTypeFromUri("something that doesn't match anything");
1997 public void extractResourceIdAndTypeFromUriResumeTest() {
1998 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1999 "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");
2000 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
2004 public void extractResourceIdAndTypeFromUriReplaceResumeTest() {
2005 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
2006 "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");
2007 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
2011 public void extractResourceIdAndTypeFromUriDeActiveResumeTest() {
2012 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
2013 "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");
2014 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
2018 public void extractResourceIdAndTypeFromUriResumeIdOnly() {
2019 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
2020 "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");
2021 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
2025 public void isUriResumeTest() {
2026 assertTrue(workflowAction.isUriResume(
2027 "http://localhost:9100/onap/so/infra/orchestrationRequests/v7/requests/2f8ab587-ef6a-4456-b7b2-d73f9363dabd/resume"));
2028 assertTrue(workflowAction.isUriResume(
2029 " 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"));
2031 assertFalse(workflowAction.isUriResume("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace"));
2035 public void isRequestMacroServiceResumeTest() {
2036 ServiceInstance si = new ServiceInstance();
2037 when(bbSetupUtils.getAAIServiceInstanceById(anyString())).thenReturn(si);
2038 assertFalse(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", ""));
2039 assertTrue(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", "123"));
2043 public void populateResourceIdsFromApiHandlerTest() {
2044 execution.setVariable("serviceInstanceId", "123");
2045 execution.setVariable("vnfId", "888");
2046 WorkflowResourceIds x = workflowAction.populateResourceIdsFromApiHandler(execution);
2047 assertEquals("123", x.getServiceInstanceId());
2048 assertEquals("888", x.getVnfId());
2049 assertNull(x.getVolumeGroupId());
2053 public void handleRuntimeExceptionTest() {
2054 execution.setVariable("BPMN_javaExpMsg", "test runtime error message");
2055 execution.setVariable("testProcessKey", "testProcessKeyValue");
2057 workflowAction.handleRuntimeException(execution);
2058 } catch (BpmnError wfe) {
2059 assertEquals("MSOWorkflowException", wfe.getErrorCode());
2063 private List<OrchestrationFlow> createFlowList(String... flowNames) {
2064 List<OrchestrationFlow> result = new ArrayList<>();
2065 int sequenceNumber = 1;
2066 for (String flowName : flowNames) {
2067 OrchestrationFlow orchFlow = new OrchestrationFlow();
2068 orchFlow.setFlowName(flowName);
2069 orchFlow.setSequenceNumber(sequenceNumber++);
2070 result.add(orchFlow);
2075 private void assertEqualsBulkFlowName(List<ExecuteBuildingBlock> ebbs, String... flowNames) {
2076 for (int i = 0; i < ebbs.size(); i++) {
2077 assertEquals(ebbs.get(i).getBuildingBlock().getBpmnFlowName(), flowNames[i]);
2079 assertEquals(ebbs.size(), flowNames.length);
2082 private void initExecution(String gAction, String bpmnRequest, boolean isAlaCarte) {
2083 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
2084 execution.setVariable("requestAction", gAction);
2085 execution.setVariable("bpmnRequest", bpmnRequest);
2086 execution.setVariable("aLaCarte", isAlaCarte);
2087 execution.setVariable("apiVersion", "7");
2090 private String readBpmnRequestFromFile(String fileName) throws IOException {
2091 return new String(Files.readAllBytes(Paths.get("src/test/resources/__files/" + fileName)));
2094 private List<Resource> prepareListWithResources() {
2095 List<Resource> resourceList = new ArrayList<>();
2096 resourceList.add(new Resource(WorkflowType.SERVICE, "3c40d244-808e-42ca-b09a-256d83d19d0a", false));
2097 resourceList.add(new Resource(WorkflowType.VNF, "ab153b6e-c364-44c0-bef6-1f2982117f04", false));
2098 resourceList.add(new Resource(WorkflowType.VOLUMEGROUP, "a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f", false));
2099 resourceList.add(new Resource(WorkflowType.VFMODULE, "72d9d1cd-f46d-447a-abdb-451d6fb05fa8", false));
2100 resourceList.add(new Resource(WorkflowType.VFMODULE, "3c40d244-808e-42ca-b09a-256d83d19d0a", false));
2101 resourceList.add(new Resource(WorkflowType.VFMODULE, "72d9d1cd-f46d-447a-abdb-451d6fb05fa8", false));
2102 return resourceList;