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 com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
28 import static org.hamcrest.CoreMatchers.containsString;
29 import static org.hamcrest.CoreMatchers.equalTo;
30 import static org.junit.Assert.assertEquals;
31 import static org.junit.Assert.assertFalse;
32 import static org.junit.Assert.assertNotNull;
33 import static org.junit.Assert.assertNull;
34 import static org.junit.Assert.assertThat;
35 import static org.junit.Assert.assertTrue;
36 import static org.junit.Assert.fail;
37 import static org.mockito.ArgumentMatchers.any;
38 import static org.mockito.ArgumentMatchers.anyObject;
39 import static org.mockito.ArgumentMatchers.anyString;
40 import static org.mockito.ArgumentMatchers.eq;
41 import static org.mockito.ArgumentMatchers.isA;
42 import static org.mockito.Mockito.doAnswer;
43 import static org.mockito.Mockito.doReturn;
44 import static org.mockito.Mockito.doThrow;
45 import static org.mockito.Mockito.when;
46 import com.fasterxml.jackson.databind.ObjectMapper;
47 import java.io.IOException;
48 import java.net.MalformedURLException;
49 import java.nio.file.Files;
50 import java.nio.file.Paths;
51 import java.util.ArrayList;
52 import java.util.Arrays;
53 import java.util.HashMap;
54 import java.util.List;
56 import java.util.Optional;
57 import java.util.UUID;
58 import org.camunda.bpm.engine.delegate.BpmnError;
59 import org.camunda.bpm.engine.delegate.DelegateExecution;
60 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
61 import org.javatuples.Pair;
62 import org.junit.Before;
63 import org.junit.Ignore;
64 import org.junit.Rule;
65 import org.junit.Test;
66 import org.junit.rules.ExpectedException;
67 import org.mockito.InjectMocks;
68 import org.mockito.Mock;
69 import org.mockito.Spy;
70 import org.onap.aai.domain.yang.GenericVnf;
71 import org.onap.aai.domain.yang.GenericVnfs;
72 import org.onap.aai.domain.yang.L3Network;
73 import org.onap.aai.domain.yang.Relationship;
74 import org.onap.aai.domain.yang.RelationshipList;
75 import org.onap.aai.domain.yang.ServiceInstance;
76 import org.onap.aai.domain.yang.ServiceInstances;
77 import org.onap.aai.domain.yang.VfModule;
78 import org.onap.aai.domain.yang.VfModules;
79 import org.onap.aai.domain.yang.VolumeGroup;
80 import org.onap.aaiclient.client.aai.AAIObjectType;
81 import org.onap.aaiclient.client.aai.entities.AAIResultWrapper;
82 import org.onap.aaiclient.client.aai.entities.Relationships;
83 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
84 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
85 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder;
86 import org.onap.so.bpmn.BaseTaskTest;
87 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
88 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
89 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
90 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
91 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
92 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.DuplicateNameException;
93 import org.onap.so.client.orchestration.AAIEntityNotFoundException;
94 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
95 import org.onap.so.db.catalog.beans.CollectionResource;
96 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
97 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
98 import org.onap.so.db.catalog.beans.ConfigurationResource;
99 import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
100 import org.onap.so.db.catalog.beans.CvnfcCustomization;
101 import org.onap.so.db.catalog.beans.HeatEnvironment;
102 import org.onap.so.db.catalog.beans.HeatTemplate;
103 import org.onap.so.db.catalog.beans.InstanceGroup;
104 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
105 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
106 import org.onap.so.db.catalog.beans.Service;
107 import org.onap.so.db.catalog.beans.VfModuleCustomization;
108 import org.onap.so.db.catalog.beans.macro.NorthBoundRequest;
109 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
110 import org.onap.so.serviceinstancebeans.ModelInfo;
111 import org.onap.so.serviceinstancebeans.RequestDetails;
112 import org.onap.so.serviceinstancebeans.RequestParameters;
113 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
114 import org.onap.so.serviceinstancebeans.SubscriberInfo;
115 import org.springframework.core.env.Environment;
117 public class WorkflowActionTest extends BaseTaskTest {
120 protected Environment environment;
122 protected WorkflowAction workflowAction;
123 private DelegateExecution execution;
127 protected WorkflowAction SPY_workflowAction;
130 public ExpectedException thrown = ExpectedException.none();
132 private String RESOURCE_PATH = "src/test/resources/__files/";
134 private List<OrchestrationFlow> replaceVfModuleOrchFlows =
135 createFlowList("DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
136 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
137 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
138 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
139 private List<OrchestrationFlow> replaceRetainAssignmentsVfModuleOrchFlows = createFlowList("DeactivateVfModuleBB",
140 "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "UnassignVolumeGroupBB",
141 "AssignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
142 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
145 public void before() throws Exception {
146 execution = new DelegateExecutionFake();
147 org.onap.aai.domain.yang.ServiceInstance servInstance = new org.onap.aai.domain.yang.ServiceInstance();
148 servInstance.setServiceInstanceId("TEST");
149 when(bbSetupUtils.getAAIServiceInstanceByName(anyString(), anyObject())).thenReturn(servInstance);
150 workflowAction.setBbInputSetupUtils(bbSetupUtils);
151 workflowAction.setBbInputSetup(bbInputSetup);
158 public void selectExecutionListALaCarteNetworkCreateTest() throws Exception {
159 String gAction = "createInstance";
160 String resource = "Network";
161 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
162 execution.setVariable("requestAction", gAction);
164 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
165 execution.setVariable("bpmnRequest", bpmnRequest);
166 execution.setVariable("aLaCarte", true);
167 execution.setVariable("apiVersion", "7");
168 execution.setVariable("requestUri", "v6/networks/123");
170 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
171 List<OrchestrationFlow> orchFlows =
172 createFlowList("AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
173 northBoundRequest.setOrchestrationFlowList(orchFlows);
175 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
176 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
177 workflowAction.selectExecutionList(execution);
178 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
179 assertEqualsBulkFlowName(ebbs, "AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
183 public void selectExecutionListALaCarteNetworkDeleteTest() throws Exception {
184 String gAction = "deleteInstance";
185 String resource = "Network";
186 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
187 execution.setVariable("requestAction", gAction);
189 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
190 execution.setVariable("bpmnRequest", bpmnRequest);
191 execution.setVariable("aLaCarte", true);
192 execution.setVariable("apiVersion", "7");
193 execution.setVariable("requestUri", "v6/networks/123");
195 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
196 List<OrchestrationFlow> orchFlows =
197 createFlowList("DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
198 northBoundRequest.setOrchestrationFlowList(orchFlows);
200 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
201 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
202 workflowAction.selectExecutionList(execution);
203 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
204 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
208 public void selectExecutionListALaCarteServiceCreateTest() throws Exception {
209 String gAction = "createInstance";
210 String resource = "Service";
211 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
212 execution.setVariable("requestAction", gAction);
214 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
215 execution.setVariable("bpmnRequest", bpmnRequest);
216 execution.setVariable("aLaCarte", true);
217 execution.setVariable("apiVersion", "7");
218 execution.setVariable("requestUri", "v6/serviceInstances/123");
221 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
222 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "ActivateServiceInstanceBB");
223 northBoundRequest.setOrchestrationFlowList(orchFlows);
225 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
226 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
227 workflowAction.selectExecutionList(execution);
228 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
229 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
233 public void selectExecutionListExceptionAlreadyBuiltTest() throws Exception {
234 DelegateExecution delegateExecution = new DelegateExecutionFake();
235 String gAction = "deleteInstance";
236 String resource = "VfModule";
237 delegateExecution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
238 delegateExecution.setVariable("requestAction", gAction);
240 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
241 delegateExecution.setVariable("bpmnRequest", bpmnRequest);
242 delegateExecution.setVariable("aLaCarte", true);
243 delegateExecution.setVariable("apiVersion", "7");
244 delegateExecution.setVariable("requestUri",
245 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
247 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
248 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
249 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
250 northBoundRequest.setOrchestrationFlowList(orchFlows);
252 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
253 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
255 doAnswer(invocation -> {
256 DelegateExecutionFake execution = invocation.getArgument(0);
257 execution.setVariable("WorkflowException", "exception");
258 execution.setVariable("WorkflowExceptionErrorMessage", "errorMessage");
259 throw new BpmnError("WorkflowException");
260 }).when(exceptionUtil).buildAndThrowWorkflowException(delegateExecution, 7000,
261 "Exception in getConfigBuildingBlock: Multiple relationships exist from VNFC testVnfcName to Configurations");
264 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
265 vnf.setVnfId("vnf0");
266 vnf.setModelCustomizationId("modelCustomizationId");
267 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
269 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
270 vfModule.setModelCustomizationId("modelCustomizationId");
271 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModule);
273 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
274 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
275 vnfc.setModelInvariantId("modelInvariantId");
276 vnfc.setVnfcName("testVnfcName");
278 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(), any(), any());
280 List<org.onap.aai.domain.yang.Configuration> configurations =
281 new ArrayList<org.onap.aai.domain.yang.Configuration>();
282 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
283 configuration.setConfigurationId("configurationId");
284 configuration.setModelCustomizationId("modelCustimizationId");
285 configuration.setConfigurationName("testConfigurationName");
286 configurations.add(configuration);
287 org.onap.aai.domain.yang.Configuration configuration1 = new org.onap.aai.domain.yang.Configuration();
288 configuration1.setConfigurationId("configurationId");
289 configuration1.setModelCustomizationId("modelCustimizationId");
290 configuration1.setConfigurationName("testConfigurationName");
291 configurations.add(configuration1);
292 doReturn(configurations).when(SPY_workflowAction).getRelatedResourcesInVnfc(any(), any(), any());
294 doReturn("testName").when(SPY_workflowAction).getVnfcNameForConfiguration(any());
296 thrown.expect(BpmnError.class);
297 SPY_workflowAction.selectExecutionList(delegateExecution);
299 "Exception in getConfigBuildingBlock: Multiple relationships exist from VNFC testVnfcName to Configurations",
300 delegateExecution.getVariable("WorkflowException"));
304 public void selectExecutionListDuplicateNameExceptionTest() throws Exception {
305 String gAction = "createInstance";
306 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
308 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
309 execution.setVariable("bpmnRequest", bpmnRequest);
310 execution.setVariable("aLaCarte", true);
311 execution.setVariable("apiVersion", "7");
312 execution.setVariable("requestUri", "v6/serviceInstances");
313 execution.setVariable("requestAction", gAction);
315 doThrow(new DuplicateNameException(
316 "serviceInstance with name (instanceName) and different version id (3c40d244-808e-42ca-b09a-256d83d19d0a) already exists. The name must be unique."))
317 .when(SPY_workflowAction).validateResourceIdInAAI(anyString(), eq(WorkflowType.SERVICE),
318 eq("test"), any(RequestDetails.class), any(WorkflowResourceIds.class));
320 SPY_workflowAction.selectExecutionList(execution);
321 assertEquals(execution.getVariable("WorkflowActionErrorMessage"),
322 "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.");
326 * SERVICE MACRO TESTS
329 public void selectExecutionListServiceMacroAssignTest() throws Exception {
330 String gAction = "assignInstance";
331 String resource = "Service";
332 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
333 execution.setVariable("requestAction", gAction);
335 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
336 execution.setVariable("bpmnRequest", bpmnRequest);
337 execution.setVariable("aLaCarte", false);
338 execution.setVariable("apiVersion", "7");
339 execution.setVariable("requestUri", "v6/serviceInstances/123");
342 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
343 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
344 "AssignVolumeGroupBB", "AssignVfModuleBB");
345 northBoundRequest.setOrchestrationFlowList(orchFlows);
347 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
348 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
349 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
350 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
351 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
352 HeatTemplate volumeHeatTemplate = new HeatTemplate();
353 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
354 vfModuleCustomization.setVfModule(vfModule);
356 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
357 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
358 HeatEnvironment heatEnvironment = new HeatEnvironment();
359 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
360 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
361 HeatTemplate moduleHeatTemplate = new HeatTemplate();
362 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
363 vfModuleCustomization2.setVfModule(vfModule2);
365 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
366 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
368 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
369 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
370 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
371 .thenReturn(vfModuleCustomization);
372 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
373 .thenReturn(vfModuleCustomization2);
374 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
375 .thenReturn(vfModuleCustomization3);
376 workflowAction.selectExecutionList(execution);
377 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
378 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
379 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
383 public void selectExecutionListServiceMacroAssignNoCloudTest() throws Exception {
384 String gAction = "assignInstance";
385 String resource = "Service";
386 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
387 execution.setVariable("requestAction", gAction);
388 String bpmnRequest = new String(
389 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssignNoCloud.json")));
390 execution.setVariable("bpmnRequest", bpmnRequest);
391 execution.setVariable("aLaCarte", false);
392 execution.setVariable("apiVersion", "7");
393 execution.setVariable("requestUri", "v6/serviceInstances/123");
396 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
397 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
398 "AssignVolumeGroupBB", "AssignVfModuleBB");
399 northBoundRequest.setOrchestrationFlowList(orchFlows);
401 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
402 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
403 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
404 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
405 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
406 HeatTemplate volumeHeatTemplate = new HeatTemplate();
407 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
408 vfModuleCustomization.setVfModule(vfModule);
410 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
411 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
412 HeatEnvironment heatEnvironment = new HeatEnvironment();
413 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
414 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
415 HeatTemplate moduleHeatTemplate = new HeatTemplate();
416 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
417 vfModuleCustomization2.setVfModule(vfModule2);
419 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
420 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
422 when(environment.getProperty("org.onap.so.cloud-owner")).thenReturn("att-aic");
423 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
424 false, "att-aic")).thenReturn(northBoundRequest);
425 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
426 .thenReturn(vfModuleCustomization);
427 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
428 .thenReturn(vfModuleCustomization2);
429 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
430 .thenReturn(vfModuleCustomization3);
431 workflowAction.selectExecutionList(execution);
432 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
433 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
434 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
438 public void selectExecutionListServiceMacroActivateTest() throws Exception {
439 String gAction = "activateInstance";
440 String resource = "Service";
441 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
442 execution.setVariable("requestAction", gAction);
443 String bpmnRequest = new String(Files
444 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
445 execution.setVariable("bpmnRequest", bpmnRequest);
446 execution.setVariable("aLaCarte", false);
447 execution.setVariable("apiVersion", "7");
448 execution.setVariable("requestUri", "v6/serviceInstances/si0");
451 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
452 List<OrchestrationFlow> orchFlows =
453 createFlowList("CreateNetworkBB", "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
454 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "ActivateServiceInstanceBB");
455 northBoundRequest.setOrchestrationFlowList(orchFlows);
457 ServiceInstance serviceInstanceAAI = new ServiceInstance();
458 serviceInstanceAAI.setServiceInstanceId("si0");
459 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
460 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
461 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
462 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
463 vnf.setVnfId("vnf0");
466 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
467 vnf.getVfModules().add(vfModule);
468 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
469 vnf.getVfModules().add(vfModule2);
471 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
472 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
473 volumeGroup.setVolumeGroupId("volumeGroup0");
474 vnf.getVolumeGroups().add(volumeGroup);
476 serviceInstanceMSO.getVnfs().add(vnf);
478 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("si0");
479 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
480 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
481 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
482 workflowAction.selectExecutionList(execution);
483 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
484 assertEqualsBulkFlowName(ebbs, "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
485 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
486 "ActivateServiceInstanceBB");
487 assertEquals("volumeGroup0", ebbs.get(0).getWorkflowResourceIds().getVolumeGroupId());
488 assertEquals("volumeGroup0", ebbs.get(1).getWorkflowResourceIds().getVolumeGroupId());
489 assertEquals("testVfModuleId1", ebbs.get(2).getWorkflowResourceIds().getVfModuleId());
490 assertEquals("testVfModuleId2", ebbs.get(3).getWorkflowResourceIds().getVfModuleId());
491 assertEquals("testVfModuleId1", ebbs.get(4).getWorkflowResourceIds().getVfModuleId());
492 assertEquals("testVfModuleId2", ebbs.get(5).getWorkflowResourceIds().getVfModuleId());
493 assertEquals("vnf0", ebbs.get(6).getWorkflowResourceIds().getVnfId());
494 assertEquals("si0", ebbs.get(7).getWorkflowResourceIds().getServiceInstanceId());
499 public void selectExecutionListServiceMacroDeactivateTest() throws Exception {
500 String gAction = "deactivateInstance";
501 String resource = "Service";
502 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
503 execution.setVariable("requestAction", gAction);
504 String bpmnRequest = new String(Files
505 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
506 execution.setVariable("bpmnRequest", bpmnRequest);
507 execution.setVariable("aLaCarte", false);
508 execution.setVariable("apiVersion", "7");
509 execution.setVariable("requestUri", "v6/serviceInstances/123");
512 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
513 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateServiceInstanceBB");
514 northBoundRequest.setOrchestrationFlowList(orchFlows);
516 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
517 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
518 workflowAction.selectExecutionList(execution);
519 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
520 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(), "DeactivateServiceInstanceBB");
524 public void selectExecutionListServiceMacroEmptyServiceTest() throws Exception {
525 String gAction = "createInstance";
526 String resource = "Service";
527 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
528 execution.setVariable("requestAction", gAction);
529 String bpmnRequest = new String(Files
530 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
531 execution.setVariable("bpmnRequest", bpmnRequest);
532 execution.setVariable("aLaCarte", false);
533 execution.setVariable("apiVersion", "7");
534 execution.setVariable("requestUri", "v6/serviceInstances/123");
537 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
538 northBoundRequest.setIsToplevelflow(true);
539 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
540 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
541 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
542 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
543 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
544 northBoundRequest.setOrchestrationFlowList(orchFlows);
546 Service service = new Service();
547 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
548 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
549 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
550 workflowAction.selectExecutionList(execution);
551 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
552 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
556 public void selectExecutionListServiceMacroCreateJustNetworkTest() throws Exception {
557 String gAction = "createInstance";
558 String resource = "Service";
559 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
560 execution.setVariable("requestAction", gAction);
561 String bpmnRequest = new String(Files
562 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
563 execution.setVariable("bpmnRequest", bpmnRequest);
564 execution.setVariable("aLaCarte", false);
565 execution.setVariable("apiVersion", "7");
566 execution.setVariable("requestUri", "v6/serviceInstances/123");
569 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
570 northBoundRequest.setIsToplevelflow(true);
571 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
572 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
573 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
574 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
575 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
576 northBoundRequest.setOrchestrationFlowList(orchFlows);
578 Service service = new Service();
579 NetworkResourceCustomization networkCustomization = new NetworkResourceCustomization();
580 networkCustomization.setModelCustomizationUUID("1234");
581 service.getNetworkCustomizations().add(networkCustomization);
582 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
583 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
584 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
585 workflowAction.selectExecutionList(execution);
586 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
587 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignNetworkBB", "CreateNetworkBB",
588 "ActivateNetworkBB", "ActivateServiceInstanceBB");
592 public void selectExecutionListServiceMacroCreateWithNetworkCollectionTest() throws Exception {
593 String gAction = "createInstance";
594 String resource = "Service";
595 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
596 execution.setVariable("requestAction", gAction);
597 String bpmnRequest = new String(Files
598 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
599 execution.setVariable("bpmnRequest", bpmnRequest);
600 execution.setVariable("aLaCarte", false);
601 execution.setVariable("apiVersion", "7");
602 execution.setVariable("requestUri", "v6/serviceInstances/123");
605 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
606 northBoundRequest.setIsToplevelflow(true);
607 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
608 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
609 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
610 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
611 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
612 northBoundRequest.setOrchestrationFlowList(orchFlows);
614 Service service = new Service();
615 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
616 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
617 networkCust.setModelCustomizationUUID("123");
618 networkCustomizations.add(networkCust);
619 service.setNetworkCustomizations(networkCustomizations);
620 NetworkCollectionResourceCustomization collectionResourceCustomization =
621 new NetworkCollectionResourceCustomization();
622 collectionResourceCustomization.setModelCustomizationUUID("123");
624 CollectionResource collectionResource = new CollectionResource();
625 collectionResource.setToscaNodeType("NetworkCollection");
626 InstanceGroup instanceGroup = new InstanceGroup();
627 instanceGroup.setToscaNodeType("NetworkCollectionResource");
628 instanceGroup.setCollectionNetworkResourceCustomizations(new ArrayList<>());
629 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
630 new CollectionNetworkResourceCustomization();
631 collectionNetworkResourceCust.setModelCustomizationUUID("123");
632 collectionNetworkResourceCust.setNetworkResourceCustomization(collectionResourceCustomization);
633 instanceGroup.getCollectionNetworkResourceCustomizations().add(collectionNetworkResourceCust);
634 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
635 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
636 new CollectionResourceInstanceGroupCustomization();
637 collectionInstanceGroupCustomization.setModelCustomizationUUID("123");
638 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
639 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
640 collectionInstanceGroupCustomization.setInstanceGroup(instanceGroup);
641 collectionInstanceGroupCustomization.setCollectionResourceCust(collectionResourceCustomization);
642 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
643 collectionResource.setInstanceGroup(instanceGroup);
644 collectionResourceCustomization.setCollectionResource(collectionResource);;
645 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
646 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
647 doReturn(collectionResourceCustomization).when(catalogDbClient)
648 .getNetworkCollectionResourceCustomizationByID("123");
649 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
650 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
651 workflowAction.selectExecutionList(execution);
652 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
653 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "CreateNetworkCollectionBB", "AssignNetworkBB",
654 "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
655 "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB",
656 "ActivateServiceInstanceBB");
657 assertEquals("Network id not empty", !ebbs.get(2).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
658 assertEquals("Network id not empty", !ebbs.get(3).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
659 assertEquals("Network id not empty", !ebbs.get(4).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
660 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
661 ebbs.get(2).getWorkflowResourceIds().getNetworkId() == ebbs.get(3).getWorkflowResourceIds()
663 && ebbs.get(3).getWorkflowResourceIds().getNetworkId() == ebbs.get(4).getWorkflowResourceIds()
666 assertEquals("Network id not empty", !ebbs.get(5).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
667 assertEquals("Network id not empty", !ebbs.get(6).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
668 assertEquals("Network id not empty", !ebbs.get(7).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
669 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
670 ebbs.get(5).getWorkflowResourceIds().getNetworkId() == ebbs.get(6).getWorkflowResourceIds()
672 && ebbs.get(6).getWorkflowResourceIds().getNetworkId() == ebbs.get(7).getWorkflowResourceIds()
675 assertEquals("Network id not empty", !ebbs.get(8).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
676 assertEquals("Network id not empty", !ebbs.get(9).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
677 assertEquals("Network id not empty", !ebbs.get(10).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
678 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
679 ebbs.get(8).getWorkflowResourceIds().getNetworkId() == ebbs.get(9).getWorkflowResourceIds()
681 && ebbs.get(9).getWorkflowResourceIds().getNetworkId() == ebbs.get(10).getWorkflowResourceIds()
687 public void selectExecutionListServiceMacroCreateWithUserParams() throws Exception {
688 String gAction = "createInstance";
689 String resource = "Service";
690 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
691 execution.setVariable("requestAction", gAction);
693 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
694 execution.setVariable("bpmnRequest", bpmnRequest);
695 execution.setVariable("aLaCarte", false);
696 execution.setVariable("apiVersion", "7");
697 execution.setVariable("requestUri", "v6/serviceInstances/123");
700 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
701 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
702 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
703 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
704 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
705 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
706 northBoundRequest.setOrchestrationFlowList(orchFlows);
708 Service service = new Service();
709 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
711 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
712 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
713 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
714 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
715 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
716 HeatTemplate volumeHeatTemplate = new HeatTemplate();
717 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
718 vfModuleCustomization.setVfModule(vfModule);
720 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
721 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
722 HeatEnvironment heatEnvironment = new HeatEnvironment();
723 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
724 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
725 HeatTemplate moduleHeatTemplate = new HeatTemplate();
726 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
727 vfModuleCustomization2.setVfModule(vfModule2);
729 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
730 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
732 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
733 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
734 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
735 .thenReturn(vfModuleCustomization);
736 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
737 .thenReturn(vfModuleCustomization2);
738 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
739 .thenReturn(vfModuleCustomization3);
740 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
741 workflowAction.selectExecutionList(execution);
742 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
743 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
744 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB", "CreateVolumeGroupBB",
745 "ActivateVolumeGroupBB", "CreateVfModuleBB", "CreateVfModuleBB", "CreateVfModuleBB",
746 "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
747 "ActivateServiceInstanceBB");
748 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
749 int randomUUIDLength = UUID.randomUUID().toString().length();
750 assertEquals(randomUUIDLength, ebbs.get(1).getWorkflowResourceIds().getVnfId().length());
751 assertEquals(randomUUIDLength, ebbs.get(2).getWorkflowResourceIds().getVolumeGroupId().length());
752 assertEquals(randomUUIDLength, ebbs.get(3).getWorkflowResourceIds().getVfModuleId().length());
753 assertEquals(randomUUIDLength, ebbs.get(4).getWorkflowResourceIds().getVfModuleId().length());
754 assertEquals(randomUUIDLength, ebbs.get(5).getWorkflowResourceIds().getVfModuleId().length());
755 assertEquals(randomUUIDLength, ebbs.get(6).getWorkflowResourceIds().getVolumeGroupId().length());
756 assertEquals(randomUUIDLength, ebbs.get(7).getWorkflowResourceIds().getVolumeGroupId().length());
757 assertEquals(randomUUIDLength, ebbs.get(8).getWorkflowResourceIds().getVfModuleId().length());
758 assertEquals(randomUUIDLength, ebbs.get(9).getWorkflowResourceIds().getVfModuleId().length());
759 assertEquals(randomUUIDLength, ebbs.get(10).getWorkflowResourceIds().getVfModuleId().length());
760 assertEquals(randomUUIDLength, ebbs.get(11).getWorkflowResourceIds().getVfModuleId().length());
761 assertEquals(randomUUIDLength, ebbs.get(12).getWorkflowResourceIds().getVfModuleId().length());
762 assertEquals(randomUUIDLength, ebbs.get(13).getWorkflowResourceIds().getVfModuleId().length());
763 assertEquals(randomUUIDLength, ebbs.get(14).getWorkflowResourceIds().getVnfId().length());
764 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
765 assertEquals(true, execution.getVariable("homing"));
769 public void selectExecutionListServiceMacroDeleteTest() throws Exception {
770 String gAction = "deleteInstance";
771 String resource = "Service";
772 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
773 execution.setVariable("requestAction", gAction);
774 String bpmnRequest = new String(Files
775 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
776 execution.setVariable("bpmnRequest", bpmnRequest);
777 execution.setVariable("aLaCarte", false);
778 execution.setVariable("apiVersion", "7");
779 execution.setVariable("requestUri", "v6/serviceInstances/123");
782 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
783 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
784 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
785 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
786 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
787 northBoundRequest.setOrchestrationFlowList(orchFlows);
789 ServiceInstance serviceInstanceAAI = new ServiceInstance();
790 serviceInstanceAAI.setServiceInstanceId("aaisi123");
791 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
792 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
793 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
794 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
795 vnf.setVnfId("vnfId123");
797 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
798 vnf.getVfModules().add(vfModule);
799 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
800 vnf.getVfModules().add(vfModule2);
802 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
803 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
804 volumeGroup.setVolumeGroupId("vg123");
805 vnf.getVolumeGroups().add(volumeGroup);
807 serviceInstanceMSO.getVnfs().add(vnf);
809 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
810 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
811 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
812 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
813 workflowAction.selectExecutionList(execution);
814 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
815 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
816 "DeleteVfModuleBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB",
817 "DeactivateServiceInstanceBB", "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
818 "UnassignVnfBB", "UnassignServiceInstanceBB");
822 public void selectExecutionListServiceMacroUnassignTest() throws Exception {
823 String gAction = "unassignInstance";
824 String resource = "Service";
825 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
826 execution.setVariable("requestAction", gAction);
827 String bpmnRequest = new String(Files
828 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
829 execution.setVariable("bpmnRequest", bpmnRequest);
830 execution.setVariable("aLaCarte", false);
831 execution.setVariable("apiVersion", "7");
832 execution.setVariable("requestUri", "v6/serviceInstances/123");
835 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
836 List<OrchestrationFlow> orchFlows = createFlowList("UnassignVfModuleBB", "UnassignVolumeGroupBB",
837 "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
838 northBoundRequest.setOrchestrationFlowList(orchFlows);
840 ServiceInstance serviceInstanceAAI = new ServiceInstance();
841 serviceInstanceAAI.setServiceInstanceId("aaisi123");
842 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
843 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
844 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
845 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
846 vnf.setVnfId("vnfId123");
848 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
849 vnf.getVfModules().add(vfModule);
850 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
851 vnf.getVfModules().add(vfModule2);
853 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
854 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
855 volumeGroup.setVolumeGroupId("vg123");
856 vnf.getVolumeGroups().add(volumeGroup);
858 serviceInstanceMSO.getVnfs().add(vnf);
860 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
861 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
862 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
863 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
864 workflowAction.selectExecutionList(execution);
865 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
866 assertEqualsBulkFlowName(ebbs, "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
867 "UnassignVnfBB", "UnassignServiceInstanceBB");
871 public void selectExecutionListServiceMacroDeleteNetworkCollectionTest() throws Exception {
872 String gAction = "deleteInstance";
873 String resource = "Service";
874 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
875 execution.setVariable("requestAction", gAction);
876 String bpmnRequest = new String(Files
877 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
878 execution.setVariable("bpmnRequest", bpmnRequest);
879 execution.setVariable("aLaCarte", false);
880 execution.setVariable("apiVersion", "7");
881 execution.setVariable("requestUri", "v6/serviceInstances/123");
884 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
885 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
886 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
887 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
888 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
889 northBoundRequest.setOrchestrationFlowList(orchFlows);
891 ServiceInstance serviceInstanceAAI = new ServiceInstance();
892 serviceInstanceAAI.setServiceInstanceId("aaisi123");
893 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
894 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
896 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network =
897 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
898 network.setNetworkId("123");
899 serviceInstanceMSO.getNetworks().add(network);
900 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network2 =
901 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
902 network2.setNetworkId("321");
903 serviceInstanceMSO.getNetworks().add(network2);
905 Collection collection = new Collection();
906 serviceInstanceMSO.setCollection(collection);
908 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
909 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
910 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
911 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
912 workflowAction.selectExecutionList(execution);
913 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
914 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
915 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeleteNetworkCollectionBB",
916 "DeactivateServiceInstanceBB", "UnassignServiceInstanceBB");
920 public void selectExecutionListVnfMacroRecreateTest() throws Exception {
921 String gAction = "recreateInstance";
922 String resource = "Vnf";
923 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
924 execution.setVariable("requestAction", gAction);
926 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/VnfMacroReplace.json")));
927 execution.setVariable("bpmnRequest", bpmnRequest);
928 execution.setVariable("aLaCarte", false);
929 execution.setVariable("apiVersion", "7");
930 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/recreate");
931 execution.setVariable("serviceInstanceId", "123");
932 execution.setVariable("vnfId", "1234");
934 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
935 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
936 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
937 "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB",
938 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
939 "AAIUnsetVnfInMaintBB");
940 northBoundRequest.setOrchestrationFlowList(orchFlows);
942 ServiceInstance serviceInstanceAAI = new ServiceInstance();
943 serviceInstanceAAI.setServiceInstanceId("123");
944 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
945 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
946 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
947 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
948 vnf.setVnfId("1234");
950 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
951 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
952 vfModule.setVfModuleId("vfModule1");
953 vnf.getVfModules().add(vfModule);
954 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
955 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
956 vfModule2.setVfModuleId("vfModule2");
957 vnf.getVfModules().add(vfModule2);
959 serviceInstanceMSO.getVnfs().add(vnf);
961 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
962 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
963 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
964 false, "cloud-owner")).thenReturn(northBoundRequest);
965 workflowAction.selectExecutionList(execution);
966 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
967 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateVfModuleBB",
968 "DeactivateVfModuleBB", "DeleteVfModuleBB", "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB",
969 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
970 "AAIUnsetVnfInMaintBB");
974 public void selectExecutionListVnfMacroReplaceTest() throws Exception {
975 String gAction = "replaceInstance";
976 String resource = "Vnf";
977 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
978 execution.setVariable("requestAction", gAction);
980 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/VnfMacroReplace.json")));
981 execution.setVariable("bpmnRequest", bpmnRequest);
982 execution.setVariable("aLaCarte", false);
983 execution.setVariable("apiVersion", "7");
984 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/replace");
985 execution.setVariable("serviceInstanceId", "123");
986 execution.setVariable("vnfId", "1234");
988 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
989 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
990 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
991 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
992 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB",
993 "ChangeModelVnfBB", "ActivateVnfBB", "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB",
994 "AAIUnsetVnfInMaintBB");
995 northBoundRequest.setOrchestrationFlowList(orchFlows);
997 ServiceInstance serviceInstanceAAI = new ServiceInstance();
998 serviceInstanceAAI.setServiceInstanceId("123");
999 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
1000 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
1001 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
1002 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
1003 vnf.setVnfId("1234");
1004 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
1005 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
1006 vfModule.setVfModuleId("vfModule1");
1007 vnf.getVfModules().add(vfModule);
1008 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
1009 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
1010 vfModule2.setVfModuleId("vfModule2");
1011 vnf.getVfModules().add(vfModule2);
1012 serviceInstanceMSO.getVnfs().add(vnf);
1013 VfModule vfModuleAAI = new VfModule();
1014 vfModuleAAI.setVfModuleId("vfModule2");
1015 RelationshipList relationshipList = new RelationshipList();
1016 Relationship relationship = new Relationship();
1017 relationshipList.getRelationship().add(relationship);
1018 vfModuleAAI.setRelationshipList(relationshipList);
1019 Relationships relationships = new Relationships("abc");
1020 Configuration config = new Configuration();
1021 config.setConfigurationId("configId");
1022 Optional<Configuration> configOp = Optional.of(config);
1023 Optional<Relationships> relationshipsOp = Optional.of(relationships);
1025 doReturn(relationshipsOp).when(workflowActionUtils).extractRelationshipsVnfc(isA(Relationships.class));
1026 doReturn(configOp).when(workflowActionUtils).extractRelationshipsConfiguration(isA(Relationships.class));
1027 doReturn(vfModuleAAI).when(bbSetupUtils).getAAIVfModule("1234", "vfModule2");
1028 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
1029 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
1030 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1031 false, "cloud-owner")).thenReturn(northBoundRequest);
1032 workflowAction.selectExecutionList(execution);
1033 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1034 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateFabricConfigurationBB",
1035 "UnassignFabricConfigurationBB", "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
1036 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "ChangeModelVfModuleBB",
1037 "CreateVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB",
1038 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ChangeModelVnfBB", "ActivateVnfBB",
1039 "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
1040 for (ExecuteBuildingBlock executeBuildingBlock : ebbs) {
1041 assertEquals("123", executeBuildingBlock.getWorkflowResourceIds().getServiceInstanceId());
1047 public void selectExecutionListNetworkCollectionMacroCreate() throws Exception {
1048 String gAction = "createInstance";
1049 String resource = "NetworkCollection";
1050 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1051 execution.setVariable("requestAction", gAction);
1052 String bpmnRequest = new String(
1053 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/CreateNetworkCollection.json")));
1054 execution.setVariable("bpmnRequest", bpmnRequest);
1055 execution.setVariable("aLaCarte", false);
1056 execution.setVariable("apiVersion", "7");
1057 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
1060 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1061 List<OrchestrationFlow> orchFlows = createFlowList("CreateNetworkCollectionBB", "AssignNetworkBB",
1062 "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB");
1063 northBoundRequest.setOrchestrationFlowList(orchFlows);
1065 Service service = new Service();
1066 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
1067 CollectionResource collectionResource = new CollectionResource();
1068 collectionResource.setToscaNodeType("Data NetworkCollection Data");
1069 collectionResourceCustomization.setCollectionResource(collectionResource);
1070 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
1072 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1073 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1074 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1075 workflowAction.selectExecutionList(execution);
1076 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1077 assertEqualsBulkFlowName(ebbs, "CreateNetworkCollectionBB", "AssignNetworkBB", "CreateNetworkBB",
1078 "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
1079 "ActivateNetworkCollectionBB");
1084 public void selectExecutionListNetworkCollectionMacroDelete() throws Exception {
1085 String gAction = "deleteInstance";
1086 String resource = "NetworkCollection";
1087 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1088 execution.setVariable("requestAction", gAction);
1089 String bpmnRequest = new String(
1090 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/CreateNetworkCollection.json")));
1091 execution.setVariable("bpmnRequest", bpmnRequest);
1092 execution.setVariable("aLaCarte", false);
1093 execution.setVariable("apiVersion", "7");
1094 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
1096 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1097 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateNetworkBB", "DeleteNetworkBB",
1098 "UnassignNetworkBB", "DeactivateNetworkCollectionBB", "DeleteNetworkCollectionBB");
1099 northBoundRequest.setOrchestrationFlowList(orchFlows);
1101 Service service = new Service();
1102 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
1103 CollectionResource collectionResource = new CollectionResource();
1104 collectionResource.setToscaNodeType("Data NetworkCollection Data");
1105 collectionResourceCustomization.setCollectionResource(collectionResource);
1106 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
1108 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1109 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1110 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1111 workflowAction.selectExecutionList(execution);
1112 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1113 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1114 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeactivateNetworkCollectionBB",
1115 "DeleteNetworkCollectionBB");
1119 public void selectExecutionListALaCarteVfModuleNoFabricCreateTest() throws Exception {
1120 String gAction = "createInstance";
1121 String resource = "VfModule";
1122 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1123 execution.setVariable("requestAction", gAction);
1124 String bpmnRequest =
1125 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1126 execution.setVariable("bpmnRequest", bpmnRequest);
1127 execution.setVariable("aLaCarte", true);
1128 execution.setVariable("apiVersion", "7");
1129 execution.setVariable("requestUri",
1130 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1133 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1134 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1135 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1136 northBoundRequest.setOrchestrationFlowList(orchFlows);
1138 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1139 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1140 workflowAction.selectExecutionList(execution);
1141 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1142 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB");
1146 public void selectExecutionListALaCarteVfModuleFabricCreateTest() throws Exception {
1147 String gAction = "createInstance";
1148 String resource = "VfModule";
1149 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1150 execution.setVariable("requestAction", gAction);
1151 String bpmnRequest =
1152 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1153 execution.setVariable("bpmnRequest", bpmnRequest);
1154 execution.setVariable("aLaCarte", true);
1155 execution.setVariable("apiVersion", "7");
1156 execution.setVariable("requestUri",
1157 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1159 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1160 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1161 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1162 northBoundRequest.setOrchestrationFlowList(orchFlows);
1164 List<CvnfcCustomization> cvnfcCustomizations = new ArrayList<CvnfcCustomization>();
1165 CvnfcCustomization cvnfcCustomization = new CvnfcCustomization();
1166 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1167 new CvnfcConfigurationCustomization();
1168 ConfigurationResource configurationResource = new ConfigurationResource();
1169 configurationResource.setToscaNodeType("FabricConfiguration");
1170 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1171 vnfVfmoduleCvnfcConfigurationCustomization.setModelInstanceName("modelInstanceName1");
1172 vnfVfmoduleCvnfcConfigurationCustomization.setCvnfcCustomization(cvnfcCustomization);
1173 List<CvnfcConfigurationCustomization> custSet = new ArrayList<CvnfcConfigurationCustomization>();
1174 custSet.add(vnfVfmoduleCvnfcConfigurationCustomization);
1175 cvnfcCustomization.setCvnfcConfigurationCustomization(custSet);
1176 cvnfcCustomization.setDescription("description");
1177 cvnfcCustomizations.add(cvnfcCustomization);
1179 CvnfcCustomization cvnfcCustomization2 = new CvnfcCustomization();
1180 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization2 =
1181 new CvnfcConfigurationCustomization();
1182 ConfigurationResource configurationResource2 = new ConfigurationResource();
1183 configurationResource2.setToscaNodeType("FabricConfiguration");
1184 vnfVfmoduleCvnfcConfigurationCustomization2.setConfigurationResource(configurationResource2);
1185 vnfVfmoduleCvnfcConfigurationCustomization2.setModelInstanceName("modelInstanceName2");
1186 vnfVfmoduleCvnfcConfigurationCustomization2.setCvnfcCustomization(cvnfcCustomization2);
1187 List<CvnfcConfigurationCustomization> custSet2 = new ArrayList<CvnfcConfigurationCustomization>();
1188 custSet2.add(vnfVfmoduleCvnfcConfigurationCustomization2);
1189 cvnfcCustomization2.setCvnfcConfigurationCustomization(custSet2);
1190 cvnfcCustomization2.setDescription("description2");
1191 cvnfcCustomizations.add(cvnfcCustomization2);
1193 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1194 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1195 // when(catalogDbClient.getCvnfcCustomizationByVnfCustomizationUUIDAndVfModuleCustomizationUUID("fc25201d-36d6-43a3-8d39-fdae88e526ae",
1196 // "9a6d01fd-19a7-490a-9800-460830a12e0b")).thenReturn(cvnfcCustomizations);
1197 workflowAction.selectExecutionList(execution);
1198 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1199 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1200 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "AssignFabricConfigurationBB",
1201 "ActivateFabricConfigurationBB");
1205 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceTest() throws Exception {
1206 String gAction = "replaceInstance";
1207 String resource = "VfModule";
1208 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1209 execution.setVariable("requestAction", gAction);
1210 String bpmnRequest =
1211 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1212 execution.setVariable("bpmnRequest", bpmnRequest);
1213 execution.setVariable("aLaCarte", true);
1214 execution.setVariable("apiVersion", "7");
1215 execution.setVariable("requestUri",
1216 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1218 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1219 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1220 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1221 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1222 workflowAction.selectExecutionList(execution);
1223 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1225 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1226 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1227 "ChangeModelServiceInstanceBB");
1231 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1232 String gAction = "replaceInstanceRetainAssignments";
1233 String resource = "VfModule";
1234 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1235 execution.setVariable("requestAction", gAction);
1236 String bpmnRequest =
1237 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1238 execution.setVariable("bpmnRequest", bpmnRequest);
1239 execution.setVariable("aLaCarte", true);
1240 execution.setVariable("apiVersion", "7");
1241 execution.setVariable("requestUri",
1242 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1244 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1245 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1246 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1247 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1248 workflowAction.selectExecutionList(execution);
1249 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1251 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1252 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1256 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceTest() throws Exception {
1257 String gAction = "replaceInstance";
1258 String resource = "VfModule";
1259 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1260 execution.setVariable("requestAction", gAction);
1261 String bpmnRequest =
1262 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1263 execution.setVariable("bpmnRequest", bpmnRequest);
1264 execution.setVariable("aLaCarte", true);
1265 execution.setVariable("apiVersion", "7");
1266 execution.setVariable("requestUri",
1267 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1268 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1269 execution.setVariable("vfModuleId", "1234");
1271 VolumeGroup volumeGroup = new VolumeGroup();
1272 volumeGroup.setVolumeGroupId("volumeGroupId");
1273 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1274 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1275 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1276 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1277 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1278 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1279 workflowAction.selectExecutionList(execution);
1280 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1282 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1283 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVfModuleBB",
1284 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1288 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceRetainAssignmentsTest()
1290 String gAction = "replaceInstanceRetainAssignments";
1291 String resource = "VfModule";
1292 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1293 execution.setVariable("requestAction", gAction);
1294 String bpmnRequest =
1295 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1296 execution.setVariable("bpmnRequest", bpmnRequest);
1297 execution.setVariable("aLaCarte", true);
1298 execution.setVariable("apiVersion", "7");
1299 execution.setVariable("requestUri",
1300 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1301 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1302 execution.setVariable("vfModuleId", "1234");
1304 VolumeGroup volumeGroup = new VolumeGroup();
1305 volumeGroup.setVolumeGroupId("volumeGroupId");
1306 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1307 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1309 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1310 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1311 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1312 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1313 workflowAction.selectExecutionList(execution);
1314 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1316 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1317 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
1318 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1322 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceTest() throws Exception {
1323 String gAction = "replaceInstance";
1324 String resource = "VfModule";
1325 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1326 execution.setVariable("requestAction", gAction);
1327 String bpmnRequest =
1328 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1329 execution.setVariable("bpmnRequest", bpmnRequest);
1330 execution.setVariable("aLaCarte", true);
1331 execution.setVariable("apiVersion", "7");
1332 execution.setVariable("requestUri",
1333 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1334 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1335 execution.setVariable("vfModuleId", "1234");
1337 VolumeGroup volumeGroup = new VolumeGroup();
1338 volumeGroup.setVolumeGroupId("volumeGroupId");
1339 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1340 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1342 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1343 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1344 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1345 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1346 vfModuleCustomization.setVfModule(vfModule);
1347 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1348 .thenReturn(vfModuleCustomization);
1350 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1351 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1352 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1353 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1354 workflowAction.selectExecutionList(execution);
1355 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1357 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1358 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1359 "ChangeModelServiceInstanceBB");
1363 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1364 String gAction = "replaceInstanceRetainAssignments";
1365 String resource = "VfModule";
1366 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1367 execution.setVariable("requestAction", gAction);
1368 String bpmnRequest =
1369 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1370 execution.setVariable("bpmnRequest", bpmnRequest);
1371 execution.setVariable("aLaCarte", true);
1372 execution.setVariable("apiVersion", "7");
1373 execution.setVariable("requestUri",
1374 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1375 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1376 execution.setVariable("vfModuleId", "1234");
1378 VolumeGroup volumeGroup = new VolumeGroup();
1379 volumeGroup.setVolumeGroupId("volumeGroupId");
1380 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1381 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1383 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1384 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1385 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1386 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1387 vfModuleCustomization.setVfModule(vfModule);
1388 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1389 .thenReturn(vfModuleCustomization);
1391 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1392 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1393 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1394 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1395 workflowAction.selectExecutionList(execution);
1396 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1398 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1399 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1403 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceTest() throws Exception {
1404 String gAction = "replaceInstance";
1405 String resource = "VfModule";
1406 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1407 execution.setVariable("requestAction", gAction);
1408 String bpmnRequest =
1409 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1410 execution.setVariable("bpmnRequest", bpmnRequest);
1411 execution.setVariable("aLaCarte", true);
1412 execution.setVariable("apiVersion", "7");
1413 execution.setVariable("requestUri",
1414 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1415 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1416 execution.setVariable("vfModuleId", "1234");
1418 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1419 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1420 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1421 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1422 vfModuleCustomization.setVfModule(vfModule);
1423 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1424 .thenReturn(vfModuleCustomization);
1426 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1427 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1428 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1429 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1430 workflowAction.selectExecutionList(execution);
1431 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1433 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1434 "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1435 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1439 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceRetainAssignmentsTest()
1441 String gAction = "replaceInstanceRetainAssignments";
1442 String resource = "VfModule";
1443 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1444 execution.setVariable("requestAction", gAction);
1445 String bpmnRequest =
1446 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1447 execution.setVariable("bpmnRequest", bpmnRequest);
1448 execution.setVariable("aLaCarte", true);
1449 execution.setVariable("apiVersion", "7");
1450 execution.setVariable("requestUri",
1451 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1452 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1453 execution.setVariable("vfModuleId", "1234");
1455 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1456 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1457 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1458 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1459 vfModuleCustomization.setVfModule(vfModule);
1460 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1461 .thenReturn(vfModuleCustomization);
1463 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1464 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1465 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1466 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1467 workflowAction.selectExecutionList(execution);
1468 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1470 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "AssignVolumeGroupBB",
1471 "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
1472 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1476 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceTest() throws Exception {
1477 String gAction = "replaceInstance";
1478 String resource = "VfModule";
1479 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1480 execution.setVariable("requestAction", gAction);
1481 String bpmnRequest = new String(
1482 Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleReplaceRebuildVolumeGroups.json")));
1483 execution.setVariable("bpmnRequest", bpmnRequest);
1484 execution.setVariable("aLaCarte", true);
1485 execution.setVariable("apiVersion", "7");
1486 execution.setVariable("requestUri",
1487 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1488 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1489 execution.setVariable("vfModuleId", "1234");
1491 VolumeGroup volumeGroup = new VolumeGroup();
1492 volumeGroup.setVolumeGroupId("volumeGroupId");
1493 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1494 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1496 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1497 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1498 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1499 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1500 vfModuleCustomization.setVfModule(vfModule);
1501 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1502 .thenReturn(vfModuleCustomization);
1504 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1505 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1506 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1507 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1508 workflowAction.selectExecutionList(execution);
1509 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1511 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1512 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
1513 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
1514 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1518 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1519 String gAction = "replaceInstanceRetainAssignments";
1520 String resource = "VfModule";
1521 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1522 execution.setVariable("requestAction", gAction);
1523 String bpmnRequest = new String(
1524 Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleReplaceRebuildVolumeGroups.json")));
1525 execution.setVariable("bpmnRequest", bpmnRequest);
1526 execution.setVariable("aLaCarte", true);
1527 execution.setVariable("apiVersion", "7");
1528 execution.setVariable("requestUri",
1529 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1530 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1531 execution.setVariable("vfModuleId", "1234");
1533 VolumeGroup volumeGroup = new VolumeGroup();
1534 volumeGroup.setVolumeGroupId("volumeGroupId");
1535 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1536 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1538 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1539 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1540 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1541 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1542 vfModuleCustomization.setVfModule(vfModule);
1543 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1544 .thenReturn(vfModuleCustomization);
1546 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1547 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1548 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1549 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1550 workflowAction.selectExecutionList(execution);
1551 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1553 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1554 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB", "ChangeModelVfModuleBB",
1555 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1556 "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1561 public void selectExecutionListALaCarteVfModuleFabricDeleteTest() throws Exception {
1562 String gAction = "deleteInstance";
1563 String resource = "VfModule";
1564 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1565 execution.setVariable("requestAction", gAction);
1566 String bpmnRequest =
1567 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1568 execution.setVariable("bpmnRequest", bpmnRequest);
1569 execution.setVariable("aLaCarte", true);
1570 execution.setVariable("apiVersion", "7");
1571 execution.setVariable("requestUri",
1572 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1574 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1575 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1576 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1577 northBoundRequest.setOrchestrationFlowList(orchFlows);
1579 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1580 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1582 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1583 vnf.setVnfId("vnf0");
1584 vnf.setModelCustomizationId("modelCustomizationId");
1585 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1587 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1588 vfModule.setModelCustomizationId("modelCustomizationId");
1589 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1591 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1592 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1593 vnfc.setModelInvariantId("modelInvariantId");
1594 vnfc.setVnfcName("testVnfcName");
1596 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1599 List<org.onap.aai.domain.yang.Configuration> configurations =
1600 new ArrayList<org.onap.aai.domain.yang.Configuration>();
1601 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1602 configuration.setConfigurationId("configurationId");
1603 configuration.setModelCustomizationId("modelCustimizationId");
1604 configuration.setConfigurationName("testConfigurationName");
1605 configurations.add(configuration);
1606 doReturn(configurations).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1609 doReturn("testName").when(SPY_workflowAction).getVnfcNameForConfiguration(anyObject());
1611 SPY_workflowAction.selectExecutionList(execution);
1612 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1613 assertEqualsBulkFlowName(ebbs, "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB",
1614 "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1618 public void getConfigBuildingBlocksNoVfModuleFabricDeleteTest() throws Exception {
1619 String gAction = "deleteInstance";
1620 ObjectMapper mapper = new ObjectMapper();
1621 WorkflowType resourceType = WorkflowType.VFMODULE;
1622 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1623 execution.setVariable("requestAction", gAction);
1624 String bpmnRequest =
1625 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1626 execution.setVariable("bpmnRequest", bpmnRequest);
1627 execution.setVariable("vnfId", "1234");
1628 execution.setVariable("vfModuleId", "vfModuleId1234");
1629 execution.setVariable("requestUri",
1630 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1631 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1632 RequestDetails requestDetails = sIRequest.getRequestDetails();
1633 String requestAction = "deleteInstance";
1634 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1635 boolean aLaCarte = true;
1636 String apiVersion = "7";
1637 String vnfType = "vnfType";
1638 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1639 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1640 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1641 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1643 thrown.expect(AAIEntityNotFoundException.class);
1644 thrown.expectMessage(containsString(
1645 "No matching VfModule is found in Generic-Vnf in AAI for vnfId: 1234 and vfModuleId : vfModuleId1234"));
1647 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1648 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1650 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1651 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1652 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1653 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1655 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1656 vnf.setVnfId("vnf0");
1657 vnf.setModelCustomizationId("modelCustomizationId");
1658 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1660 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1661 vfModule.setModelCustomizationId("modelCustomizationId");
1662 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(null);
1664 SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1668 public void selectExecutionListALaCarteVfModuleNoFabricDeleteTest() throws Exception {
1669 String gAction = "deleteInstance";
1670 String resource = "VfModule";
1671 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1672 execution.setVariable("requestAction", gAction);
1673 String bpmnRequest =
1674 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1675 execution.setVariable("bpmnRequest", bpmnRequest);
1676 execution.setVariable("aLaCarte", true);
1677 execution.setVariable("apiVersion", "7");
1678 execution.setVariable("requestUri",
1679 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1681 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1682 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1683 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1684 northBoundRequest.setOrchestrationFlowList(orchFlows);
1686 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1687 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1689 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1690 vnf.setVnfId("vnf0");
1691 vnf.setModelCustomizationId("modelCustomizationId");
1692 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1694 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1695 vfModule.setModelCustomizationId("modelCustomizationId");
1696 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1698 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1699 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1700 vnfc.setModelInvariantId("modelInvariantId");
1701 vnfc.setVnfcName("testVnfcName");
1703 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1706 List<org.onap.aai.domain.yang.Configuration> configurations =
1707 new ArrayList<org.onap.aai.domain.yang.Configuration>();
1708 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1709 doReturn(configurations).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1712 doReturn("testName").when(SPY_workflowAction).getVnfcNameForConfiguration(anyObject());
1714 SPY_workflowAction.selectExecutionList(execution);
1715 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1716 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1720 public void selectExecutionListMacroResumeTest() throws Exception {
1721 String gAction = "createInstance";
1722 String resource = "Service";
1723 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1724 execution.setVariable("requestAction", gAction);
1725 String bpmnRequest =
1726 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
1727 execution.setVariable("bpmnRequest", bpmnRequest);
1728 execution.setVariable("aLaCarte", false);
1729 execution.setVariable("apiVersion", "7");
1730 execution.setVariable("requestUri", "v6/serviceInstances/123");
1732 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1733 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1734 northBoundRequest.setOrchestrationFlowList(orchFlows);
1736 Service service = new Service();
1737 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
1739 ServiceInstance si = new ServiceInstance();
1741 when(bbSetupUtils.getAAIServiceInstanceById("123")).thenReturn(si);
1742 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1744 String flowsToExecuteString =
1745 "[{\"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\"}}]";
1746 ObjectMapper om = new ObjectMapper();
1747 List<ExecuteBuildingBlock> flowsToExecute = null;
1749 ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
1750 flowsToExecute = Arrays.asList(asArray);
1751 } catch (Exception e) {
1752 e.printStackTrace();
1755 when(bbSetupUtils.loadOriginalFlowExecutionPath(anyString())).thenReturn(flowsToExecute);
1757 workflowAction.selectExecutionList(execution);
1758 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1759 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB");
1763 public void getRelatedResourcesInVfModuleTest() throws Exception {
1764 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1765 vnfc.setModelInvariantId("modelInvariantId");
1766 vnfc.setVnfcName("testVnfcName");
1768 String vfncPayload =
1769 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/vnfcResponse.json")));
1770 AAIResultWrapper vfncWrapper = new AAIResultWrapper(vfncPayload);
1772 String configurationPayload =
1773 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/configurationResponse.json")));
1774 AAIResultWrapper configurationWrapper = new AAIResultWrapper(configurationPayload);
1775 List<AAIResultWrapper> configurationResultWrappers = new ArrayList<AAIResultWrapper>();
1776 configurationResultWrappers.add(configurationWrapper);
1778 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VNFC, vnfc.getVnfcName());
1779 when(bbSetupUtils.getAAIResourceDepthOne(uri)).thenReturn(vfncWrapper);
1781 doReturn(configurationResultWrappers).when(SPY_workflowAction).getResultWrappersFromRelationships(anyObject(),
1783 List<org.onap.aai.domain.yang.Configuration> configurationsList = SPY_workflowAction.getRelatedResourcesInVnfc(
1784 vnfc, org.onap.aai.domain.yang.Configuration.class, AAIObjectType.CONFIGURATION);
1785 assertEquals(1, configurationsList.size());
1786 assertEquals("testConfigurationId", configurationsList.get(0).getConfigurationId());
1790 * WorkflowActionBB Tests
1794 public void pluralTest() {
1795 List<String> items = Arrays.asList("serviceInstances, Service", "vnfs, Vnf", "vfModules, VfModule",
1796 "networks, Network", "invalidNames, invalidNames");
1797 items.forEach(item -> {
1798 String[] split = item.split(",");
1799 String type = split[0].trim();
1800 String expected = split[1].trim();
1801 assertThat(workflowAction.convertTypeFromPlural(type), equalTo(expected));
1806 public void sortExecutionPathByObjectForVlanTaggingCreateTest() throws Exception {
1807 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1809 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("0");
1810 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1811 executeFlows.add(ebb);
1813 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("1");
1814 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1815 executeFlows.add(ebb2);
1817 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("0");
1818 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1819 executeFlows.add(ebb3);
1821 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("1");
1822 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1823 executeFlows.add(ebb4);
1825 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("0");
1826 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1827 executeFlows.add(ebb5);
1829 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("1");
1830 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1831 executeFlows.add(ebb6);
1833 List<ExecuteBuildingBlock> sorted =
1834 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "createInstance");
1835 assertEqualsBulkFlowName(sorted, "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB",
1836 "CreateNetworkBB", "ActivateNetworkBB");
1840 public void sortExecutionPathByObjectForVlanTaggingDeleteTest() throws Exception {
1841 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1843 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("0");
1844 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1845 executeFlows.add(ebb);
1847 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("1");
1848 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1849 executeFlows.add(ebb2);
1851 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("0");
1852 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1853 executeFlows.add(ebb3);
1855 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("1");
1856 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1857 executeFlows.add(ebb4);
1859 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("0");
1860 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1861 executeFlows.add(ebb5);
1863 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("1");
1864 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1865 executeFlows.add(ebb6);
1867 List<ExecuteBuildingBlock> sorted =
1868 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "deleteInstance");
1869 assertEqualsBulkFlowName(sorted, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1870 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB");
1874 public void queryNorthBoundRequestCatalogDbNestedTest() throws MalformedURLException {
1875 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1876 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
1877 "VNF-Macro-Replace", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
1878 northBoundRequest.setOrchestrationFlowList(orchFlows);
1879 List<OrchestrationFlow> macroFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1880 "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB");
1882 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner("replaceInstance",
1883 "Vnf", false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1884 when(catalogDbClient.getOrchestrationFlowByAction("VNF-Macro-Replace")).thenReturn(macroFlows);
1885 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "replaceInstance",
1886 WorkflowType.VNF, false, "my-custom-cloud-owner");
1887 assertEquals(flows.get(0).getFlowName(), "AAICheckVnfInMaintBB");
1888 assertEquals(flows.get(1).getFlowName(), "AAISetVnfInMaintBB");
1889 assertEquals(flows.get(2).getFlowName(), "DeactivateVfModuleBB");
1890 assertEquals(flows.get(3).getFlowName(), "DeleteVfModuleBB");
1891 assertEquals(flows.get(4).getFlowName(), "DeactivateVnfBB");
1892 assertEquals(flows.get(5).getFlowName(), "CreateVfModuleBB");
1893 assertEquals(flows.get(6).getFlowName(), "ActivateVfModuleBB");
1894 assertEquals(flows.get(7).getFlowName(), "ActivateVnfBB");
1895 assertEquals(flows.get(8).getFlowName(), "SDNOVnfHealthCheckBB");
1896 assertEquals(flows.get(9).getFlowName(), "AAIUnsetVnfInMaintBB");
1900 public void queryNorthBoundRequestCatalogDbTransportTest() throws MalformedURLException {
1901 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1902 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1903 northBoundRequest.setOrchestrationFlowList(orchFlows);
1904 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwnerAndServiceType(
1905 "createInstance", "Service", true, "my-custom-cloud-owner", "TRANSPORT")).thenReturn(northBoundRequest);
1907 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "createInstance",
1908 WorkflowType.SERVICE, true, "my-custom-cloud-owner", "TRANSPORT");
1909 assertEquals(flows.get(0).getFlowName(), "AssignServiceInstanceBB");
1913 public void extractResourceIdAndTypeFromUriTest() {
1914 String uri = "/v6/serviceInstances/123";
1915 String uri2 = "/v6/serviceInstances/123/vnfs/1234";
1916 String uri3 = "/v6/serviceInstances";
1917 String uri4 = "/v6/serviceInstances/assign";
1918 String uri5 = "'/v6/serviceInstances/123/vnfs";
1919 String uri6 = "/v6/serviceInstances/123/vnfs/1234/someAction";
1920 String uri7 = "/v6/serviceInstances/123/vnfs/1234/vfModules/5678/replace";
1921 String uri8 = "/v6/serviceInstances/123/vnfs/1234/vfModules/scaleOut";
1922 Resource expected1 = new Resource(WorkflowType.SERVICE, "123", true);
1923 Resource expected2 = new Resource(WorkflowType.VNF, "1234", false);
1924 Resource expected3 = new Resource(WorkflowType.VNF, "1234", false);
1925 Resource expected4 = new Resource(WorkflowType.VFMODULE, "5678", false);
1926 Resource result = workflowAction.extractResourceIdAndTypeFromUri(uri);
1927 assertEquals(expected1.getResourceId(), result.getResourceId());
1928 assertEquals(expected1.getResourceType(), result.getResourceType());
1929 result = workflowAction.extractResourceIdAndTypeFromUri(uri2);
1930 assertEquals(expected2.getResourceId(), result.getResourceId());
1931 assertEquals(expected2.getResourceType(), result.getResourceType());
1932 result = workflowAction.extractResourceIdAndTypeFromUri(uri3);
1933 assertEquals("Service", result.getResourceType().toString());
1934 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1935 result = workflowAction.extractResourceIdAndTypeFromUri(uri4);
1936 assertEquals("Service", result.getResourceType().toString());
1937 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1938 result = workflowAction.extractResourceIdAndTypeFromUri(uri5);
1939 assertEquals("Vnf", result.getResourceType().toString());
1940 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1941 result = workflowAction.extractResourceIdAndTypeFromUri(uri6);
1942 assertEquals(expected3.getResourceId(), result.getResourceId());
1943 assertEquals(expected3.getResourceType(), result.getResourceType());
1944 result = workflowAction.extractResourceIdAndTypeFromUri(uri7);
1945 assertEquals(expected4.getResourceId(), result.getResourceId());
1946 assertEquals(expected4.getResourceType(), result.getResourceType());
1947 result = workflowAction.extractResourceIdAndTypeFromUri(uri8);
1948 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1949 assertEquals("VfModule", result.getResourceType().toString());
1954 public void extractResourceIdAndTypeFromUriInvalidTypeTest() {
1955 this.expectedException.expect(IllegalArgumentException.class);
1956 this.expectedException.expectMessage(containsString("Uri could not be parsed. No type found."));
1957 workflowAction.extractResourceIdAndTypeFromUri("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace");
1961 public void extractResourceIdAndTypeFromUriInvalidUriTest() {
1962 this.expectedException.expect(IllegalArgumentException.class);
1963 this.expectedException.expectMessage(containsString("Uri could not be parsed:"));
1964 workflowAction.extractResourceIdAndTypeFromUri("something that doesn't match anything");
1968 public void extractResourceIdAndTypeFromUriResumeTest() {
1969 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1970 "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");
1971 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1975 public void extractResourceIdAndTypeFromUriReplaceResumeTest() {
1976 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1977 "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");
1978 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1982 public void extractResourceIdAndTypeFromUriDeActiveResumeTest() {
1983 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1984 "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");
1985 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1989 public void extractResourceIdAndTypeFromUriResumeIdOnly() {
1990 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1991 "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");
1992 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1996 public void isUriResumeTest() {
1997 assertTrue(workflowAction.isUriResume(
1998 "http://localhost:9100/onap/so/infra/orchestrationRequests/v7/requests/2f8ab587-ef6a-4456-b7b2-d73f9363dabd/resume"));
1999 assertTrue(workflowAction.isUriResume(
2000 " 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"));
2002 assertFalse(workflowAction.isUriResume("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace"));
2006 public void isRequestMacroServiceResumeTest() {
2007 ServiceInstance si = new ServiceInstance();
2008 when(bbSetupUtils.getAAIServiceInstanceById(anyString())).thenReturn(si);
2009 assertFalse(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", ""));
2010 assertTrue(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", "123"));
2014 public void populateResourceIdsFromApiHandlerTest() {
2015 execution.setVariable("serviceInstanceId", "123");
2016 execution.setVariable("vnfId", "888");
2017 WorkflowResourceIds x = workflowAction.populateResourceIdsFromApiHandler(execution);
2018 assertEquals("123", x.getServiceInstanceId());
2019 assertEquals("888", x.getVnfId());
2020 assertNull(x.getVolumeGroupId());
2023 private RequestDetails setupRequestDetails(String globalSubscriberId, String subscriptionServiceType,
2024 String modelCustomizationId) {
2025 RequestDetails reqDetails = new RequestDetails();
2026 SubscriberInfo subInfo = new SubscriberInfo();
2027 subInfo.setGlobalSubscriberId(globalSubscriberId);
2028 reqDetails.setSubscriberInfo(subInfo);
2029 RequestParameters reqParams = new RequestParameters();
2030 reqParams.setSubscriptionServiceType(subscriptionServiceType);
2031 reqDetails.setRequestParameters(reqParams);
2032 ModelInfo modelInfo = new ModelInfo();
2033 modelInfo.setModelCustomizationId(modelCustomizationId);
2034 reqDetails.setModelInfo(modelInfo);
2039 public void validateResourceIdInAAIVnfTest() throws Exception {
2040 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2041 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2042 workflowResourceIds.setServiceInstanceId("siId123");
2044 GenericVnf vnf = new GenericVnf();
2045 vnf.setVnfId("id123");
2046 vnf.setVnfName("vnfName123");
2047 vnf.setModelCustomizationId("1234567");
2048 Optional<GenericVnf> opVnf = Optional.of(vnf);
2049 GenericVnf vnf2 = new GenericVnf();
2050 vnf2.setVnfId("id123");
2051 vnf2.setVnfName("vnfName222");
2052 vnf2.setModelCustomizationId("222");
2053 Optional<GenericVnf> opVnf2 = Optional.of(vnf2);
2054 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2055 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName222")).thenReturn(opVnf2);
2056 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2057 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName123", reqDetails,
2058 workflowResourceIds);
2059 assertEquals("id123", id);
2060 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "111111", reqDetails,
2061 workflowResourceIds);
2062 assertEquals("generatedId123", id2);
2064 this.expectedException.expect(DuplicateNameException.class);
2065 this.expectedException.expectMessage(containsString(
2066 "generic-vnf with name (vnfName222), same parent and different customization id (222) already exists. The name must be unique."));
2067 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName222", reqDetails,
2068 workflowResourceIds);
2072 public void validateResourceIdInAAIVnfNotGloballyUniqueTest() throws Exception {
2073 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2074 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2075 workflowResourceIds.setServiceInstanceId("siId123");
2078 GenericVnfs genericVnfs = new GenericVnfs();
2079 GenericVnf vnf3 = new GenericVnf();
2080 vnf3.setVnfId("id123");
2081 vnf3.setVnfName("vnfName333");
2082 genericVnfs.getGenericVnf().add(vnf3);
2083 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName333")).thenReturn(Optional.empty());
2084 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName333")).thenReturn(genericVnfs);
2086 this.expectedException.expect(DuplicateNameException.class);
2087 this.expectedException.expectMessage(containsString(
2088 "generic-vnf with name (vnfName333) id (id123) and different parent relationship already exists. The name must be unique."));
2089 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName333", reqDetails,
2090 workflowResourceIds);
2094 public void validateResourceIdInAAINetworkTest() throws Exception {
2095 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2096 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2097 workflowResourceIds.setServiceInstanceId("siId123");
2100 L3Network network = new L3Network();
2101 network.setNetworkId("id123");
2102 network.setNetworkName("name123");
2103 network.setModelCustomizationId("1234567");
2104 workflowResourceIds.setServiceInstanceId("siId123");
2105 Optional<L3Network> opNetwork = Optional.of(network);
2106 L3Network network2 = new L3Network();
2107 network2.setNetworkId("id123");
2108 network2.setNetworkName("networkName222");
2109 network2.setModelCustomizationId("222");
2110 Optional<L3Network> opNetwork2 = Optional.of(network2);
2111 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2112 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "networkName222"))
2113 .thenReturn(opNetwork2);
2114 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2115 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "name123",
2116 reqDetails, workflowResourceIds);
2117 assertEquals("id123", id);
2118 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "111111",
2119 reqDetails, workflowResourceIds);
2120 assertEquals("generatedId123", id2);
2122 this.expectedException.expect(DuplicateNameException.class);
2123 this.expectedException.expectMessage(containsString(
2124 "l3Network with name (networkName222), same parent and different customization id (222) already exists. The name must be unique."));
2125 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName222", reqDetails,
2126 workflowResourceIds);
2130 public void validateNetworkResourceNameExistsInAAITest() throws Exception {
2131 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2132 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2133 workflowResourceIds.setServiceInstanceId("siId123");
2136 L3Network network = new L3Network();
2137 network.setNetworkId("id123");
2138 network.setNetworkName("name123");
2139 network.setModelCustomizationId("1234567");
2140 workflowResourceIds.setServiceInstanceId("siId123");
2142 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("networkName333", "111111"))
2143 .thenReturn(Optional.empty());
2144 when(bbSetupUtils.existsAAINetworksGloballyByName("networkName333")).thenReturn(true);
2146 this.expectedException.expect(DuplicateNameException.class);
2147 this.expectedException.expectMessage(containsString(
2148 "l3Network with name (networkName333) id (siId123) and different parent relationship already exists. The name must be unique."));
2149 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName333", reqDetails,
2150 workflowResourceIds);
2154 public void validateResourceIdInAAIVfModuleTest() throws Exception {
2155 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2156 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2157 workflowResourceIds.setServiceInstanceId("siId123");
2159 GenericVnf vnf = new GenericVnf();
2160 vnf.setVnfId("id123");
2161 vnf.setVnfName("vnfName123");
2162 vnf.setModelCustomizationId("222");
2165 VfModules vfModules = new VfModules();
2166 VfModule vfModule = new VfModule();
2167 vfModule.setVfModuleId("id123");
2168 vfModule.setVfModuleName("name123");
2169 vfModule.setModelCustomizationId("1234567");
2170 vfModules.getVfModule().add(vfModule);
2171 vnf.setVfModules(vfModules);
2172 workflowResourceIds.setVnfId("id123");
2173 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2174 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "name123",
2175 reqDetails, workflowResourceIds);
2176 assertEquals("id123", id);
2178 GenericVnf vnf1 = new GenericVnf();
2179 VfModules vfModules2 = new VfModules();
2180 VfModule vfModule2 = new VfModule();
2181 vfModule2.setVfModuleId("id123");
2182 vfModule2.setVfModuleName("vFModName222");
2183 vfModule2.setModelCustomizationId("222");
2184 vfModules2.getVfModule().add(vfModule2);
2185 vnf1.setVfModules(vfModules2);
2186 workflowResourceIds.setVnfId("id111");
2187 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2188 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "111111",
2189 reqDetails, workflowResourceIds);
2190 assertEquals("generatedId123", id2);
2192 this.expectedException.expect(DuplicateNameException.class);
2193 this.expectedException.expectMessage(containsString(
2194 "vfModule with name (vFModName222), same parent and different customization id (1234567) already exists. The name must be unique."));
2195 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName222", reqDetails,
2196 workflowResourceIds);
2200 public void validateResourceIdInAAIVfModuleNotGloballyUniqueTest() throws Exception {
2201 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2202 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2203 workflowResourceIds.setVnfId("id111");
2205 GenericVnf vnf1 = new GenericVnf();
2206 workflowResourceIds.setVnfId("id111");
2207 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2209 when(bbSetupUtils.existsAAIVfModuleGloballyByName("vFModName333")).thenReturn(true);
2210 this.expectedException.expect(DuplicateNameException.class);
2211 this.expectedException.expectMessage(
2212 containsString("vfModule with name vFModName333 already exists. The name must be unique."));
2213 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName333", reqDetails,
2214 workflowResourceIds);
2218 public void validateResourceIdInAAIVolumeGroupTest() throws Exception {
2219 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2220 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2221 workflowResourceIds.setServiceInstanceId("siId123");
2223 GenericVnf vnf = new GenericVnf();
2224 vnf.setVnfId("id123");
2225 vnf.setVnfName("vnfName123");
2226 vnf.setModelCustomizationId("1234567");
2228 GenericVnf vnf2 = new GenericVnf();
2229 vnf2.setVnfId("id123");
2230 vnf2.setVnfName("vnfName123");
2231 vnf2.setModelCustomizationId("222");
2234 VolumeGroup volumeGroup = new VolumeGroup();
2235 volumeGroup.setVolumeGroupId("id123");
2236 volumeGroup.setVolumeGroupName("name123");
2237 volumeGroup.setVfModuleModelCustomizationId("1234567");
2238 workflowResourceIds.setVnfId("id123");
2239 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2241 workflowResourceIds.setVnfId("id123");
2243 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2244 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(opVolumeGroup);
2245 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2246 reqDetails, workflowResourceIds);
2247 assertEquals("id123", id);
2249 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf2);
2250 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "111111"))
2251 .thenReturn(opVolumeGroup);
2253 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "111111")).thenReturn(Optional.empty());
2254 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "111111",
2255 reqDetails, workflowResourceIds);
2256 assertEquals("generatedId123", id2);
2260 public void validatesourceIdInAAIVolumeGroupNotGloballyUniqueTest() throws Exception {
2261 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2262 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2263 workflowResourceIds.setVnfId("id123");
2264 GenericVnf vnf = new GenericVnf();
2265 vnf.setVnfId("id123");
2266 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2267 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "testVolumeGroup")).thenReturn(Optional.empty());
2269 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("testVolumeGroup")).thenReturn(true);
2270 this.expectedException.expect(DuplicateNameException.class);
2271 this.expectedException.expectMessage(
2272 containsString("volumeGroup with name testVolumeGroup already exists. The name must be unique."));
2273 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "testVolumeGroup",
2274 reqDetails, workflowResourceIds);
2278 public void validateResourceIdInAAIConfigurationTest() throws Exception {
2279 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2280 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2281 workflowResourceIds.setServiceInstanceId("siId123");
2284 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2285 configuration.setConfigurationId("id123");
2286 configuration.setConfigurationName("name123");
2287 configuration.setModelCustomizationId("1234567");
2288 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2290 org.onap.aai.domain.yang.Configuration configuration2 = new org.onap.aai.domain.yang.Configuration();
2291 configuration2.setConfigurationId("id123");
2292 configuration2.setConfigurationName("name123");
2293 configuration2.setModelCustomizationId("222");
2294 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration2 = Optional.of(configuration2);
2296 workflowResourceIds.setVnfId("id123");
2298 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2299 .thenReturn(opConfiguration);
2300 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name123",
2301 reqDetails, workflowResourceIds);
2302 assertEquals("id123", id);
2304 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "111111"))
2305 .thenReturn(Optional.empty());
2306 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "111111",
2307 reqDetails, workflowResourceIds);
2308 assertEquals("generatedId123", id2);
2310 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name222"))
2311 .thenReturn(opConfiguration2);
2312 this.expectedException.expect(DuplicateNameException.class);
2313 this.expectedException.expectMessage(containsString(
2314 "configuration with name (name222), same parent and different customization id (id123) already exists. The name must be unique."));
2315 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name222", reqDetails,
2316 workflowResourceIds);
2320 public void validateResourceIdInAAIConfigurationNotGloballyUniqueTest() throws Exception {
2321 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2322 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2323 workflowResourceIds.setServiceInstanceId("siId123");
2325 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "testConfig"))
2326 .thenReturn(Optional.empty());
2327 when(bbSetupUtils.existsAAIConfigurationGloballyByName("testConfig")).thenReturn(true);
2328 this.expectedException.expect(DuplicateNameException.class);
2329 this.expectedException.expectMessage(
2330 containsString("configuration with name testConfig already exists. The name must be unique."));
2331 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "testConfig", reqDetails,
2332 workflowResourceIds);
2336 public void validateResourceIdInAAISITest() throws Exception {
2337 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2338 workflowResourceIds.setServiceInstanceId("siId123");
2339 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2340 reqDetails.getModelInfo().setModelVersionId("1234567");
2342 ServiceInstance si = new ServiceInstance();
2343 si.setServiceInstanceId("siId123");
2344 si.setModelVersionId("1234567");
2345 ServiceInstances serviceInstances = new ServiceInstances();
2346 serviceInstances.getServiceInstance().add(si);
2347 Optional<ServiceInstance> siOp = Optional.of(si);
2348 ServiceInstance si2 = new ServiceInstance();
2349 si2.setServiceInstanceId("siId222");
2350 si2.setModelVersionId("22222");
2351 si2.setServiceInstanceName("siName222");
2352 Optional<ServiceInstance> siOp2 = Optional.of(si2);
2353 ServiceInstances serviceInstances2 = new ServiceInstances();
2354 serviceInstances2.getServiceInstance().add(si2);
2356 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2357 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName222")).thenReturn(siOp2);
2358 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "111111"))
2359 .thenReturn(Optional.empty());
2361 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2362 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123",
2363 reqDetails, workflowResourceIds);
2364 assertEquals("siId123", id);
2365 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "111111",
2366 reqDetails, workflowResourceIds);
2367 assertEquals("generatedId123", id2);
2369 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName222")).thenReturn(serviceInstances2);
2370 this.expectedException.expect(DuplicateNameException.class);
2371 this.expectedException.expectMessage(containsString(
2372 "serviceInstance with name (siName222) and different version id (1234567) already exists. The name must be unique."));
2373 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName222", reqDetails,
2374 workflowResourceIds);
2378 public void validateResourceIdInAAIMultipleSITest() throws Exception {
2379 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2380 workflowResourceIds.setServiceInstanceId("siId123");
2381 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2382 reqDetails.getModelInfo().setModelVersionId("1234567");
2384 ServiceInstance si = new ServiceInstance();
2385 si.setServiceInstanceId("siId123");
2386 si.setModelVersionId("1234567");
2387 ServiceInstances serviceInstances = new ServiceInstances();
2388 serviceInstances.getServiceInstance().add(si);
2390 ServiceInstance si2 = new ServiceInstance();
2391 si2.setServiceInstanceId("siId222");
2392 si2.setModelVersionId("22222");
2393 si2.setServiceInstanceName("siName222");
2394 serviceInstances.getServiceInstance().add(si2);
2396 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2397 .thenReturn(Optional.empty());
2399 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2401 this.expectedException.expect(DuplicateNameException.class);
2402 this.expectedException.expectMessage(containsString(
2403 "serviceInstance with name (siName123) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2404 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2405 workflowResourceIds);
2409 public void validateResourceIdInAAISIExistsTest() throws Exception {
2410 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2411 workflowResourceIds.setServiceInstanceId("siId123");
2412 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2413 reqDetails.getModelInfo().setModelVersionId("1234567");
2415 ServiceInstance si = new ServiceInstance();
2416 si.setServiceInstanceId("siId123");
2417 si.setModelVersionId("1234567");
2418 ServiceInstances serviceInstances = new ServiceInstances();
2419 serviceInstances.getServiceInstance().add(si);
2421 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2422 .thenReturn(Optional.empty());
2424 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2426 Map<String, String> uriKeys = new HashMap<>();
2427 uriKeys.put(AAIFluentTypeBuilder.Types.CUSTOMER.getUriParams().globalCustomerId, "globalCustomerId");
2428 uriKeys.put(AAIFluentTypeBuilder.Types.SERVICE_SUBSCRIPTION.getUriParams().serviceType, "serviceType");
2430 when(bbSetupUtils.getURIKeysFromServiceInstance("siId123")).thenReturn(uriKeys);
2432 this.expectedException.expect(DuplicateNameException.class);
2433 this.expectedException.expectMessage(containsString(
2434 "serviceInstance with name (siName123) and global-customer-id (globalCustomerId), service-type (serviceType), model-version-id (1234567) already exists. The name must be unique."));
2435 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2436 workflowResourceIds);
2440 public void validateServiceResourceIdInAAINoDupTest() throws Exception {
2441 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2442 reqDetails.getModelInfo().setModelVersionId("1234567");
2443 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123"))
2444 .thenReturn(Optional.empty());
2445 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(null);
2446 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2447 assertEquals("generatedId123", id);
2451 public void validateServiceResourceIdInAAISameModelVersionId() throws Exception {
2452 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2453 reqDetails.getModelInfo().setModelVersionId("1234567");
2455 ServiceInstance si = new ServiceInstance();
2456 si.setServiceInstanceId("siId123");
2457 si.setModelVersionId("1234567");
2458 Optional<ServiceInstance> siOp = Optional.of(si);
2460 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2461 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2462 assertEquals("siId123", id);
2466 public void validateServiceResourceIdInAAIDifferentModelVersionId() throws Exception {
2467 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2468 reqDetails.getModelInfo().setModelVersionId("1234567");
2470 ServiceInstance si = new ServiceInstance();
2471 si.setServiceInstanceId("siId123");
2472 si.setModelVersionId("9999999");
2473 ServiceInstances serviceInstances = new ServiceInstances();
2474 serviceInstances.getServiceInstance().add(si);
2475 Optional<ServiceInstance> siOp = Optional.of(si);
2477 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2479 this.expectedException.expect(DuplicateNameException.class);
2480 this.expectedException.expectMessage(containsString(
2481 "serviceInstance with name (siName123) and different version id (1234567) already exists. The name must be unique."));
2483 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2484 assertEquals("siId123", id);
2488 public void validateServiceResourceIdInAAIDuplicateNameTest() throws Exception {
2490 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2491 reqDetails.getModelInfo().setModelVersionId("1234567");
2493 ServiceInstance si = new ServiceInstance();
2494 si.setServiceInstanceId("siId123");
2495 si.setModelVersionId("1234567");
2497 ServiceInstances serviceInstances = new ServiceInstances();
2498 serviceInstances.getServiceInstance().add(si);
2500 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2501 .thenReturn(Optional.empty());
2502 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2504 this.expectedException.expect(DuplicateNameException.class);
2505 this.expectedException.expectMessage(containsString(
2506 "serviceInstance with name (siName) and global-customer-id (null), service-type (null), model-version-id (1234567) already exists. The name must be unique."));
2508 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2512 public void validateServiceResourceIdInAAIDuplicateNameMultipleTest() throws Exception {
2514 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2515 reqDetails.getModelInfo().setModelVersionId("1234567");
2517 ServiceInstance si = new ServiceInstance();
2518 si.setServiceInstanceId("siId123");
2519 si.setModelVersionId("1234567");
2521 ServiceInstance si2 = new ServiceInstance();
2522 si2.setServiceInstanceId("siId222");
2523 si2.setModelVersionId("22222");
2524 si2.setServiceInstanceName("siName222");
2526 ServiceInstances serviceInstances = new ServiceInstances();
2527 serviceInstances.getServiceInstance().add(si);
2528 serviceInstances.getServiceInstance().add(si2);
2530 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2531 .thenReturn(Optional.empty());
2532 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2534 this.expectedException.expect(DuplicateNameException.class);
2535 this.expectedException.expectMessage(containsString(
2536 "serviceInstance with name (siName) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2538 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2542 public void validateNetworkResourceIdInAAITest() throws Exception {
2543 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2544 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2545 workflowResourceIds.setServiceInstanceId("siId123");
2547 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2548 .thenReturn(Optional.empty());
2549 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(false);
2551 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2552 workflowResourceIds);
2553 assertEquals("generatedId123", id);
2557 public void validateNetworkResourceIdInAAISameModelCustIdTest() throws Exception {
2558 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2559 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2560 workflowResourceIds.setServiceInstanceId("siId123");
2562 L3Network network = new L3Network();
2563 network.setNetworkId("id123");
2564 network.setNetworkName("name123");
2565 network.setModelCustomizationId("1234567");
2566 Optional<L3Network> opNetwork = Optional.of(network);
2568 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2570 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2571 workflowResourceIds);
2572 assertEquals("id123", id);
2576 public void validateNetworkResourceIdInAAIDuplicateNameTest() throws Exception {
2577 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2578 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2579 workflowResourceIds.setServiceInstanceId("siId123");
2581 L3Network network = new L3Network();
2582 network.setNetworkId("id123");
2583 network.setNetworkName("name123");
2584 network.setModelCustomizationId("9999999");
2585 Optional<L3Network> opNetwork = Optional.of(network);
2587 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2589 this.expectedException.expect(DuplicateNameException.class);
2590 this.expectedException.expectMessage(containsString(
2591 "l3Network with name (name123), same parent and different customization id (9999999) already exists. The name must be unique."));
2593 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2597 public void validateNetworkResourceIdInAAINotGloballyUniqueTest() throws Exception {
2598 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2599 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2600 workflowResourceIds.setServiceInstanceId("siId123");
2602 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2603 .thenReturn(Optional.empty());
2604 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(true);
2606 this.expectedException.expect(DuplicateNameException.class);
2607 this.expectedException.expectMessage(containsString(
2608 "l3Network with name (name123) id (siId123) and different parent relationship already exists. The name must be unique."));
2610 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2614 public void validateVnfResourceIdInAAITest() throws Exception {
2615 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2616 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2617 workflowResourceIds.setServiceInstanceId("siId123");
2618 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2619 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2620 workflowResourceIds);
2621 assertEquals("generatedId123", id);
2625 public void validateVnfResourceIdInAAISameModelCustomizationIdTest() throws Exception {
2626 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2627 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2628 workflowResourceIds.setServiceInstanceId("siId123");
2630 GenericVnf vnf = new GenericVnf();
2631 vnf.setVnfId("id123");
2632 vnf.setVnfName("vnfName123");
2633 vnf.setModelCustomizationId("1234567");
2634 Optional<GenericVnf> opVnf = Optional.of(vnf);
2636 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2637 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2638 workflowResourceIds);
2639 assertEquals("id123", id);
2643 public void validateVnfResourceIdInAAIDiffModelCustomizationIdTest() throws Exception {
2644 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2645 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2646 workflowResourceIds.setServiceInstanceId("siId123");
2648 GenericVnf vnf = new GenericVnf();
2649 vnf.setVnfId("id123");
2650 vnf.setVnfName("vnfName123");
2651 vnf.setModelCustomizationId("9999999");
2652 Optional<GenericVnf> opVnf = Optional.of(vnf);
2654 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2656 this.expectedException.expect(DuplicateNameException.class);
2657 this.expectedException.expectMessage(containsString(
2658 "generic-vnf with name (vnfName123), same parent and different customization id (9999999) already exists. The name must be unique."));
2660 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2664 public void validateVnfResourceIdInAAINotGloballyUniqueTest() throws Exception {
2665 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2666 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2667 workflowResourceIds.setServiceInstanceId("siId123");
2670 GenericVnf vnf = new GenericVnf();
2671 vnf.setVnfId("id123");
2672 vnf.setVnfName("vnfName123");
2673 GenericVnfs genericVnfs = new GenericVnfs();
2674 genericVnfs.getGenericVnf().add(vnf);
2676 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2677 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName123")).thenReturn(genericVnfs);
2679 this.expectedException.expect(DuplicateNameException.class);
2680 this.expectedException.expectMessage(containsString(
2681 "generic-vnf with name (vnfName123) id (id123) and different parent relationship already exists. The name must be unique."));
2683 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2687 public void validateVfModuleResourceIdTest() throws Exception {
2688 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2689 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2690 workflowResourceIds.setVnfId("vnfId123");
2692 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2693 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(false);
2695 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2696 workflowResourceIds);
2697 assertEquals("generatedId123", id);
2701 public void validateVfModuleResourceIdSameModelCustIdTest() throws Exception {
2702 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2703 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2704 workflowResourceIds.setVnfId("vnfId123");
2706 VfModules vfModules = new VfModules();
2707 VfModule vfModule = new VfModule();
2708 vfModule.setVfModuleId("id123");
2709 vfModule.setVfModuleName("name123");
2710 vfModule.setModelCustomizationId("1234567");
2711 vfModules.getVfModule().add(vfModule);
2713 GenericVnf vnf = new GenericVnf();
2714 vnf.setVnfId("id123");
2715 vnf.setVnfName("vnfName123");
2716 vnf.setVfModules(vfModules);
2718 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2720 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2721 workflowResourceIds);
2722 assertEquals("id123", id);
2726 public void validateVfModuleResourceIdDifferentModelCustIdTest() throws Exception {
2727 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2728 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2729 workflowResourceIds.setVnfId("vnfId123");
2731 VfModules vfModules = new VfModules();
2732 VfModule vfModule = new VfModule();
2733 vfModule.setVfModuleId("id123");
2734 vfModule.setVfModuleName("name123");
2735 vfModule.setModelCustomizationId("9999999");
2736 vfModules.getVfModule().add(vfModule);
2738 GenericVnf vnf = new GenericVnf();
2739 vnf.setVnfId("id123");
2740 vnf.setVnfName("vnfName123");
2741 vnf.setVfModules(vfModules);
2743 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2745 this.expectedException.expect(DuplicateNameException.class);
2746 this.expectedException.expectMessage(containsString(
2747 "vfModule with name (name123), same parent and different customization id (1234567) already exists. The name must be unique."));
2749 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2754 public void validateVfModuleResourceIdNotGloballyUniqueTest() throws Exception {
2755 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2756 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2757 workflowResourceIds.setVnfId("vnfId123");
2759 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2760 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(true);
2762 this.expectedException.expect(DuplicateNameException.class);
2763 this.expectedException
2764 .expectMessage(containsString("vfModule with name name123 already exists. The name must be unique."));
2766 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2770 public void validateVolumeGroupResourceIdInAAITest() throws Exception {
2771 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2772 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2773 workflowResourceIds.setVnfId("vnfId123");
2775 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(Optional.empty());
2776 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(false);
2778 String id = workflowAction.validateVolumeGroupResourceIdInAAI("generatedId123", "name123", reqDetails,
2779 workflowResourceIds);
2780 assertEquals("generatedId123", id);
2784 public void validateVolumeGroupResourceIdInAAISameModelCustIdTest() throws Exception {
2785 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2786 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2787 workflowResourceIds.setServiceInstanceId("siId123");
2788 workflowResourceIds.setVnfId("vnfId123");
2790 VolumeGroup volumeGroup = new VolumeGroup();
2791 volumeGroup.setVolumeGroupId("id123");
2792 volumeGroup.setVolumeGroupName("name123");
2793 volumeGroup.setVfModuleModelCustomizationId("1234567");
2795 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2797 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2798 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2799 reqDetails, workflowResourceIds);
2801 assertEquals("id123", id);
2805 public void validateVolumeGroupResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2806 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2807 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2808 workflowResourceIds.setServiceInstanceId("siId123");
2809 workflowResourceIds.setVnfId("vnfId123");
2811 VolumeGroup volumeGroup = new VolumeGroup();
2812 volumeGroup.setVolumeGroupId("id123");
2813 volumeGroup.setVolumeGroupName("name123");
2814 volumeGroup.setVfModuleModelCustomizationId("9999999");
2816 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2818 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2820 this.expectedException.expect(DuplicateNameException.class);
2821 this.expectedException.expectMessage(
2822 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2824 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2825 workflowResourceIds);
2829 public void validateVolumeGroupResourceIdInAAINotGloballyUniqueTest() throws Exception {
2830 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2831 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2832 workflowResourceIds.setVnfId("vnfId123");
2834 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(Optional.empty());
2835 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(true);
2837 this.expectedException.expect(DuplicateNameException.class);
2838 this.expectedException.expectMessage(
2839 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2841 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2842 workflowResourceIds);
2846 public void validateConfigurationResourceIdInAAITest() throws Exception {
2847 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2848 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2849 workflowResourceIds.setServiceInstanceId("siId123");
2851 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2852 .thenReturn(Optional.empty());
2853 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2855 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2856 workflowResourceIds);
2857 assertEquals("generatedId123", id);
2861 public void validateConfigurationResourceIdInAAISameModelCustIdTest() throws Exception {
2862 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2863 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2864 workflowResourceIds.setServiceInstanceId("siId123");
2866 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2867 configuration.setConfigurationId("id123");
2868 configuration.setConfigurationName("name123");
2869 configuration.setModelCustomizationId("1234567");
2870 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2872 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2873 .thenReturn(opConfiguration);
2874 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2876 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2877 workflowResourceIds);
2878 assertEquals("id123", id);
2882 public void validateConfigurationResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2883 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2884 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2885 workflowResourceIds.setServiceInstanceId("siId123");
2887 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2888 configuration.setConfigurationId("id123");
2889 configuration.setConfigurationName("name123");
2890 configuration.setModelCustomizationId("9999999");
2891 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2893 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2894 .thenReturn(opConfiguration);
2895 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2897 this.expectedException.expect(DuplicateNameException.class);
2898 this.expectedException.expectMessage(containsString(
2899 "configuration with name (name123), same parent and different customization id (id123) already exists. The name must be unique."));
2901 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2902 workflowResourceIds);
2906 public void validateConfigurationResourceIdInAAINotGloballyUniqueTest() throws Exception {
2907 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2908 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2909 workflowResourceIds.setServiceInstanceId("siId123");
2911 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2912 .thenReturn(Optional.empty());
2913 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(true);
2915 this.expectedException.expect(DuplicateNameException.class);
2916 this.expectedException.expectMessage(
2917 containsString("configuration with name name123 already exists. The name must be unique."));
2919 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2920 workflowResourceIds);
2924 public void handleRuntimeExceptionTest() {
2925 execution.setVariable("BPMN_javaExpMsg", "test runtime error message");
2926 execution.setVariable("testProcessKey", "testProcessKeyValue");
2928 workflowAction.handleRuntimeException(execution);
2929 } catch (BpmnError wfe) {
2930 assertEquals("MSOWorkflowException", wfe.getErrorCode());
2936 public void traverseCatalogDbServiceMultipleNetworkTest() throws IOException, VrfBondingServiceException {
2937 execution.setVariable("testProcessKey", "testProcessKeyValue");
2938 Service service = new Service();
2939 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
2940 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
2941 networkCust.setModelCustomizationUUID("123");
2942 networkCustomizations.add(networkCust);
2943 service.setNetworkCustomizations(networkCustomizations);
2944 NetworkCollectionResourceCustomization collectionResourceCustomization =
2945 new NetworkCollectionResourceCustomization();
2946 collectionResourceCustomization.setModelCustomizationUUID("123");
2947 CollectionResource collectionResource = new CollectionResource();
2948 collectionResource.setToscaNodeType("NetworkCollection");
2949 InstanceGroup instanceGroup = new InstanceGroup();
2950 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
2951 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
2952 new CollectionResourceInstanceGroupCustomization();
2953 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
2954 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
2955 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
2956 collectionResource.setInstanceGroup(instanceGroup);
2957 collectionResourceCustomization.setCollectionResource(collectionResource);;
2958 service.setModelUUID("abc");
2959 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2960 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2961 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
2962 doReturn(collectionResourceCustomization).when(catalogDbClient)
2963 .getNetworkCollectionResourceCustomizationByID("123");
2964 String bpmnRequest = new String(Files
2965 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
2966 ObjectMapper mapper = new ObjectMapper();
2967 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
2968 List<Resource> resourceCounter = new ArrayList<>();
2969 thrown.expect(BpmnError.class);
2970 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
2971 workflowAction.traverseCatalogDbService(execution, sIRequest, resourceCounter, aaiResourceIds);
2975 public void sortVfModulesByBaseFirstTest() {
2976 List<Resource> resources = new ArrayList<>();
2977 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2978 resource1.setBaseVfModule(false);
2979 resources.add(resource1);
2980 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2981 resource2.setBaseVfModule(false);
2982 resources.add(resource2);
2983 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
2984 resource3.setBaseVfModule(true);
2985 resources.add(resource3);
2986 List<Resource> result = workflowAction.sortVfModulesByBaseFirst(resources);
2987 assertEquals("333", result.get(0).getResourceId());
2988 assertEquals("222", result.get(1).getResourceId());
2989 assertEquals("111", result.get(2).getResourceId());
2993 public void sortVfModulesByBaseLastTest() {
2994 List<Resource> resources = new ArrayList<>();
2995 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2996 resource1.setBaseVfModule(true);
2997 resources.add(resource1);
2998 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2999 resource2.setBaseVfModule(false);
3000 resources.add(resource2);
3001 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
3002 resource3.setBaseVfModule(false);
3003 resources.add(resource3);
3004 List<Resource> result = workflowAction.sortVfModulesByBaseLast(resources);
3005 assertEquals("333", result.get(0).getResourceId());
3006 assertEquals("222", result.get(1).getResourceId());
3007 assertEquals("111", result.get(2).getResourceId());
3011 public void findCatalogNetworkCollectionTest() {
3012 Service service = new Service();
3013 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
3014 networkCustomization.setModelCustomizationUUID("123");
3015 service.getCollectionResourceCustomizations().add(networkCustomization);
3016 doReturn(networkCustomization).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
3017 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
3018 assertNotNull(customization);
3022 public void findCatalogNetworkCollectionEmptyTest() {
3023 Service service = new Service();
3024 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
3025 networkCustomization.setModelCustomizationUUID("123");
3026 service.getCollectionResourceCustomizations().add(networkCustomization);
3027 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
3028 assertNull(customization);
3032 public void findCatalogNetworkCollectionMoreThanOneTest() {
3033 Service service = new Service();
3034 NetworkCollectionResourceCustomization networkCustomization1 = new NetworkCollectionResourceCustomization();
3035 networkCustomization1.setModelCustomizationUUID("123");
3036 NetworkCollectionResourceCustomization networkCustomization2 = new NetworkCollectionResourceCustomization();
3037 networkCustomization2.setModelCustomizationUUID("321");
3038 service.getCollectionResourceCustomizations().add(networkCustomization1);
3039 service.getCollectionResourceCustomizations().add(networkCustomization2);
3040 doReturn(networkCustomization1).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
3041 doReturn(networkCustomization2).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("321");
3042 workflowAction.findCatalogNetworkCollection(execution, service);
3043 assertEquals("Found multiple Network Collections in the Service model, only one per Service is supported.",
3044 execution.getVariable("WorkflowActionErrorMessage"));
3048 public void verifyLackOfNullPointerExceptionForNullResource() {
3049 ExecuteBuildingBlock result = null;
3051 result = workflowAction.buildExecuteBuildingBlock(new OrchestrationFlow(), null, null, null, null, null,
3052 false, null, null, null, false, null, null, true);
3053 } catch (NullPointerException e) {
3054 fail("NullPointerException should not be thrown when 'resource' is null");
3056 assertNotNull(result);
3060 public void traverseAAIServiceTest() {
3061 List<Resource> resourceCounter = new ArrayList<>();
3062 String resourceId = "si0";
3063 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
3065 ServiceInstance serviceInstanceAAI = new ServiceInstance();
3066 serviceInstanceAAI.setServiceInstanceId(resourceId);
3068 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstance = setServiceInstance();
3076 Configuration config = new Configuration();
3077 config.setConfigurationId("testConfigurationId2");
3078 serviceInstance.getConfigurations().add(config);
3080 Relationship relationship1 = new Relationship();
3081 relationship1.setRelatedTo("vnfc");
3082 RelationshipList relationshipList1 = new RelationshipList();
3083 relationshipList1.getRelationship().add(relationship1);
3085 Relationship relationship2 = new Relationship();
3086 relationship2.setRelatedTo("vpn-binding");
3087 RelationshipList relationshipList2 = new RelationshipList();
3088 relationshipList2.getRelationship().add(relationship2);
3090 org.onap.aai.domain.yang.Configuration aaiConfiguration1 = new org.onap.aai.domain.yang.Configuration();
3091 aaiConfiguration1.setConfigurationId("testConfigurationId");
3092 aaiConfiguration1.setRelationshipList(relationshipList1);
3094 org.onap.aai.domain.yang.Configuration aaiConfiguration2 = new org.onap.aai.domain.yang.Configuration();
3095 aaiConfiguration2.setConfigurationId("testConfigurationId2");
3096 aaiConfiguration2.setRelationshipList(relationshipList1);
3099 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById(resourceId);
3100 doReturn(serviceInstance).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
3101 doReturn(Optional.of(aaiConfiguration1)).when(aaiConfigurationResources)
3102 .getConfiguration("testConfigurationId");
3103 doReturn(Optional.of(aaiConfiguration2)).when(aaiConfigurationResources)
3104 .getConfiguration("testConfigurationId2");
3105 workflowAction.traverseAAIService(execution, resourceCounter, resourceId, aaiResourceIds);
3106 assertEquals(8, resourceCounter.size());
3107 assertTrue(resourceCounter.get(2).isBaseVfModule());
3108 assertThat(aaiResourceIds, sameBeanAs(getExpectedResourceIds()));
3109 } catch (Exception e) {
3110 fail("Unexpected exception was thrown.");
3114 private List<Pair<WorkflowType, String>> getExpectedResourceIds() {
3115 List<Pair<WorkflowType, String>> resourceIds = new ArrayList<>();
3116 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VNF, "testVnfId1"));
3117 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VFMODULE, "testVfModuleId1"));
3118 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VOLUMEGROUP, "testVolumeGroupId1"));
3119 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORK, "testNetworkId1"));
3120 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORKCOLLECTION, "testId"));
3121 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId"));
3122 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId2"));
3126 private List<OrchestrationFlow> createFlowList(String... flowNames) {
3127 List<OrchestrationFlow> result = new ArrayList<>();
3128 for (String flowName : flowNames) {
3129 OrchestrationFlow orchFlow = new OrchestrationFlow();
3130 orchFlow.setFlowName(flowName);
3131 result.add(orchFlow);
3136 private void assertEqualsBulkFlowName(List<ExecuteBuildingBlock> ebbs, String... flowNames) {
3137 for (int i = 0; i < ebbs.size(); i++) {
3138 assertEquals(ebbs.get(i).getBuildingBlock().getBpmnFlowName(), flowNames[i]);