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();
1651 dataObj.setsIRequest(sIRequest);
1652 dataObj.setOrchFlows(orchFlows);
1653 dataObj.setRequestId(requestId);
1654 dataObj.setResourceKey(resourceKey);
1655 dataObj.setApiVersion(apiVersion);
1656 dataObj.setResourceId(resourceId);
1657 dataObj.setRequestAction(requestAction);
1658 dataObj.setaLaCarte(aLaCarte);
1659 dataObj.setVnfType(vnfType);
1660 dataObj.setWorkflowResourceIds(workflowResourceIds);
1661 dataObj.setRequestDetails(requestDetails);
1662 dataObj.setExecution(execution);
1664 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1665 vnf.setVnfId("vnf0");
1666 vnf.setModelCustomizationId("modelCustomizationId");
1667 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1669 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1670 vfModule.setModelCustomizationId("modelCustomizationId");
1671 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(null);
1673 SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1677 public void selectExecutionListALaCarteVfModuleNoFabricDeleteTest() throws Exception {
1678 String gAction = "deleteInstance";
1679 String resource = "VfModule";
1680 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1681 execution.setVariable("requestAction", gAction);
1682 String bpmnRequest =
1683 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1684 execution.setVariable("bpmnRequest", bpmnRequest);
1685 execution.setVariable("aLaCarte", true);
1686 execution.setVariable("apiVersion", "7");
1687 execution.setVariable("requestUri",
1688 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1690 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1691 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1692 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1693 northBoundRequest.setOrchestrationFlowList(orchFlows);
1695 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1696 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1698 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1699 vnf.setVnfId("vnf0");
1700 vnf.setModelCustomizationId("modelCustomizationId");
1701 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1703 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1704 vfModule.setModelCustomizationId("modelCustomizationId");
1705 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1707 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1708 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1709 vnfc.setModelInvariantId("modelInvariantId");
1710 vnfc.setVnfcName("testVnfcName");
1712 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1715 List<org.onap.aai.domain.yang.Configuration> configurations =
1716 new ArrayList<org.onap.aai.domain.yang.Configuration>();
1717 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1718 doReturn(configurations).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1721 doReturn("testName").when(SPY_workflowAction).getVnfcNameForConfiguration(anyObject());
1723 SPY_workflowAction.selectExecutionList(execution);
1724 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1725 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1729 public void selectExecutionListMacroResumeTest() throws Exception {
1730 String gAction = "createInstance";
1731 String resource = "Service";
1732 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1733 execution.setVariable("requestAction", gAction);
1734 String bpmnRequest =
1735 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
1736 execution.setVariable("bpmnRequest", bpmnRequest);
1737 execution.setVariable("aLaCarte", false);
1738 execution.setVariable("apiVersion", "7");
1739 execution.setVariable("requestUri", "v6/serviceInstances/123");
1741 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1742 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1743 northBoundRequest.setOrchestrationFlowList(orchFlows);
1745 Service service = new Service();
1746 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
1748 ServiceInstance si = new ServiceInstance();
1750 when(bbSetupUtils.getAAIServiceInstanceById("123")).thenReturn(si);
1751 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1753 String flowsToExecuteString =
1754 "[{\"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\"}}]";
1755 ObjectMapper om = new ObjectMapper();
1756 List<ExecuteBuildingBlock> flowsToExecute = null;
1758 ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
1759 flowsToExecute = Arrays.asList(asArray);
1760 } catch (Exception e) {
1761 e.printStackTrace();
1764 when(bbSetupUtils.loadOriginalFlowExecutionPath(anyString())).thenReturn(flowsToExecute);
1766 workflowAction.selectExecutionList(execution);
1767 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1768 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB");
1772 public void getRelatedResourcesInVfModuleTest() throws Exception {
1773 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1774 vnfc.setModelInvariantId("modelInvariantId");
1775 vnfc.setVnfcName("testVnfcName");
1777 String vfncPayload =
1778 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/vnfcResponse.json")));
1779 AAIResultWrapper vfncWrapper = new AAIResultWrapper(vfncPayload);
1781 String configurationPayload =
1782 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/configurationResponse.json")));
1783 AAIResultWrapper configurationWrapper = new AAIResultWrapper(configurationPayload);
1784 List<AAIResultWrapper> configurationResultWrappers = new ArrayList<AAIResultWrapper>();
1785 configurationResultWrappers.add(configurationWrapper);
1787 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VNFC, vnfc.getVnfcName());
1788 when(bbSetupUtils.getAAIResourceDepthOne(uri)).thenReturn(vfncWrapper);
1790 doReturn(configurationResultWrappers).when(SPY_workflowAction).getResultWrappersFromRelationships(anyObject(),
1792 List<org.onap.aai.domain.yang.Configuration> configurationsList = SPY_workflowAction.getRelatedResourcesInVnfc(
1793 vnfc, org.onap.aai.domain.yang.Configuration.class, AAIObjectType.CONFIGURATION);
1794 assertEquals(1, configurationsList.size());
1795 assertEquals("testConfigurationId", configurationsList.get(0).getConfigurationId());
1799 * WorkflowActionBB Tests
1803 public void pluralTest() {
1804 List<String> items = Arrays.asList("serviceInstances, Service", "vnfs, Vnf", "vfModules, VfModule",
1805 "networks, Network", "invalidNames, invalidNames");
1806 items.forEach(item -> {
1807 String[] split = item.split(",");
1808 String type = split[0].trim();
1809 String expected = split[1].trim();
1810 assertThat(workflowAction.convertTypeFromPlural(type), equalTo(expected));
1815 public void sortExecutionPathByObjectForVlanTaggingCreateTest() throws Exception {
1816 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1818 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("0");
1819 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock();
1820 ebb.setBuildingBlock(bb);
1821 executeFlows.add(ebb);
1823 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("1");
1824 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock();
1825 ebb2.setBuildingBlock(bb2);
1826 executeFlows.add(ebb2);
1828 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("0");
1829 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock();
1830 ebb3.setBuildingBlock(bb3);
1831 executeFlows.add(ebb3);
1833 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("1");
1834 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock();
1835 ebb4.setBuildingBlock(bb4);
1836 executeFlows.add(ebb4);
1838 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("0");
1839 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock();
1840 ebb5.setBuildingBlock(bb5);
1841 executeFlows.add(ebb5);
1843 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("1");
1844 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock();
1845 ebb6.setBuildingBlock(bb6);
1846 executeFlows.add(ebb6);
1848 List<ExecuteBuildingBlock> sorted =
1849 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "createInstance");
1850 assertEqualsBulkFlowName(sorted, "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB",
1851 "CreateNetworkBB", "ActivateNetworkBB");
1855 public void sortExecutionPathByObjectForVlanTaggingDeleteTest() throws Exception {
1856 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1858 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("0");
1859 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock();
1860 ebb.setBuildingBlock(bb);
1861 executeFlows.add(ebb);
1863 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("1");
1864 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock();
1865 ebb2.setBuildingBlock(bb2);
1866 executeFlows.add(ebb2);
1868 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("0");
1869 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock();
1870 ebb3.setBuildingBlock(bb3);
1871 executeFlows.add(ebb3);
1873 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("1");
1874 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock();
1875 ebb4.setBuildingBlock(bb4);
1876 executeFlows.add(ebb4);
1878 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("0");
1879 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock();
1880 ebb5.setBuildingBlock(bb5);
1881 executeFlows.add(ebb5);
1883 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("1");
1884 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock();
1885 ebb6.setBuildingBlock(bb6);
1886 executeFlows.add(ebb6);
1888 List<ExecuteBuildingBlock> sorted =
1889 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "deleteInstance");
1890 assertEqualsBulkFlowName(sorted, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1891 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB");
1895 public void queryNorthBoundRequestCatalogDbNestedTest() throws MalformedURLException {
1896 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1897 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
1898 "VNF-Macro-Replace", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
1899 northBoundRequest.setOrchestrationFlowList(orchFlows);
1900 List<OrchestrationFlow> macroFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1901 "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB");
1903 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner("replaceInstance",
1904 "Vnf", false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1905 when(catalogDbClient.getOrchestrationFlowByAction("VNF-Macro-Replace")).thenReturn(macroFlows);
1906 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "replaceInstance",
1907 WorkflowType.VNF, false, "my-custom-cloud-owner");
1908 assertEquals(flows.get(0).getFlowName(), "AAICheckVnfInMaintBB");
1909 assertEquals(flows.get(1).getFlowName(), "AAISetVnfInMaintBB");
1910 assertEquals(flows.get(2).getFlowName(), "DeactivateVfModuleBB");
1911 assertEquals(flows.get(3).getFlowName(), "DeleteVfModuleBB");
1912 assertEquals(flows.get(4).getFlowName(), "DeactivateVnfBB");
1913 assertEquals(flows.get(5).getFlowName(), "CreateVfModuleBB");
1914 assertEquals(flows.get(6).getFlowName(), "ActivateVfModuleBB");
1915 assertEquals(flows.get(7).getFlowName(), "ActivateVnfBB");
1916 assertEquals(flows.get(8).getFlowName(), "SDNOVnfHealthCheckBB");
1917 assertEquals(flows.get(9).getFlowName(), "AAIUnsetVnfInMaintBB");
1921 public void queryNorthBoundRequestCatalogDbTransportTest() throws MalformedURLException {
1922 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1923 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1924 northBoundRequest.setOrchestrationFlowList(orchFlows);
1925 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwnerAndServiceType(
1926 "createInstance", "Service", true, "my-custom-cloud-owner", "TRANSPORT")).thenReturn(northBoundRequest);
1928 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "createInstance",
1929 WorkflowType.SERVICE, true, "my-custom-cloud-owner", "TRANSPORT");
1930 assertEquals(flows.get(0).getFlowName(), "AssignServiceInstanceBB");
1934 public void extractResourceIdAndTypeFromUriTest() {
1935 String uri = "/v6/serviceInstances/123";
1936 String uri2 = "/v6/serviceInstances/123/vnfs/1234";
1937 String uri3 = "/v6/serviceInstances";
1938 String uri4 = "/v6/serviceInstances/assign";
1939 String uri5 = "'/v6/serviceInstances/123/vnfs";
1940 String uri6 = "/v6/serviceInstances/123/vnfs/1234/someAction";
1941 String uri7 = "/v6/serviceInstances/123/vnfs/1234/vfModules/5678/replace";
1942 String uri8 = "/v6/serviceInstances/123/vnfs/1234/vfModules/scaleOut";
1943 Resource expected1 = new Resource(WorkflowType.SERVICE, "123", true);
1944 Resource expected2 = new Resource(WorkflowType.VNF, "1234", false);
1945 Resource expected3 = new Resource(WorkflowType.VNF, "1234", false);
1946 Resource expected4 = new Resource(WorkflowType.VFMODULE, "5678", false);
1947 Resource result = workflowAction.extractResourceIdAndTypeFromUri(uri);
1948 assertEquals(expected1.getResourceId(), result.getResourceId());
1949 assertEquals(expected1.getResourceType(), result.getResourceType());
1950 result = workflowAction.extractResourceIdAndTypeFromUri(uri2);
1951 assertEquals(expected2.getResourceId(), result.getResourceId());
1952 assertEquals(expected2.getResourceType(), result.getResourceType());
1953 result = workflowAction.extractResourceIdAndTypeFromUri(uri3);
1954 assertEquals("Service", result.getResourceType().toString());
1955 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1956 result = workflowAction.extractResourceIdAndTypeFromUri(uri4);
1957 assertEquals("Service", result.getResourceType().toString());
1958 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1959 result = workflowAction.extractResourceIdAndTypeFromUri(uri5);
1960 assertEquals("Vnf", result.getResourceType().toString());
1961 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1962 result = workflowAction.extractResourceIdAndTypeFromUri(uri6);
1963 assertEquals(expected3.getResourceId(), result.getResourceId());
1964 assertEquals(expected3.getResourceType(), result.getResourceType());
1965 result = workflowAction.extractResourceIdAndTypeFromUri(uri7);
1966 assertEquals(expected4.getResourceId(), result.getResourceId());
1967 assertEquals(expected4.getResourceType(), result.getResourceType());
1968 result = workflowAction.extractResourceIdAndTypeFromUri(uri8);
1969 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1970 assertEquals("VfModule", result.getResourceType().toString());
1975 public void extractResourceIdAndTypeFromUriInvalidTypeTest() {
1976 this.expectedException.expect(IllegalArgumentException.class);
1977 this.expectedException.expectMessage(containsString("Uri could not be parsed. No type found."));
1978 workflowAction.extractResourceIdAndTypeFromUri("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace");
1982 public void extractResourceIdAndTypeFromUriInvalidUriTest() {
1983 this.expectedException.expect(IllegalArgumentException.class);
1984 this.expectedException.expectMessage(containsString("Uri could not be parsed:"));
1985 workflowAction.extractResourceIdAndTypeFromUri("something that doesn't match anything");
1989 public void extractResourceIdAndTypeFromUriResumeTest() {
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 extractResourceIdAndTypeFromUriReplaceResumeTest() {
1997 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1998 "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");
1999 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
2003 public void extractResourceIdAndTypeFromUriDeActiveResumeTest() {
2004 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
2005 "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");
2006 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
2010 public void extractResourceIdAndTypeFromUriResumeIdOnly() {
2011 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
2012 "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");
2013 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
2017 public void isUriResumeTest() {
2018 assertTrue(workflowAction.isUriResume(
2019 "http://localhost:9100/onap/so/infra/orchestrationRequests/v7/requests/2f8ab587-ef6a-4456-b7b2-d73f9363dabd/resume"));
2020 assertTrue(workflowAction.isUriResume(
2021 " 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"));
2023 assertFalse(workflowAction.isUriResume("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace"));
2027 public void isRequestMacroServiceResumeTest() {
2028 ServiceInstance si = new ServiceInstance();
2029 when(bbSetupUtils.getAAIServiceInstanceById(anyString())).thenReturn(si);
2030 assertFalse(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", ""));
2031 assertTrue(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", "123"));
2035 public void populateResourceIdsFromApiHandlerTest() {
2036 execution.setVariable("serviceInstanceId", "123");
2037 execution.setVariable("vnfId", "888");
2038 WorkflowResourceIds x = workflowAction.populateResourceIdsFromApiHandler(execution);
2039 assertEquals("123", x.getServiceInstanceId());
2040 assertEquals("888", x.getVnfId());
2041 assertNull(x.getVolumeGroupId());
2044 private RequestDetails setupRequestDetails(String globalSubscriberId, String subscriptionServiceType,
2045 String modelCustomizationId) {
2046 RequestDetails reqDetails = new RequestDetails();
2047 SubscriberInfo subInfo = new SubscriberInfo();
2048 subInfo.setGlobalSubscriberId(globalSubscriberId);
2049 reqDetails.setSubscriberInfo(subInfo);
2050 RequestParameters reqParams = new RequestParameters();
2051 reqParams.setSubscriptionServiceType(subscriptionServiceType);
2052 reqDetails.setRequestParameters(reqParams);
2053 ModelInfo modelInfo = new ModelInfo();
2054 modelInfo.setModelCustomizationId(modelCustomizationId);
2055 reqDetails.setModelInfo(modelInfo);
2060 public void validateResourceIdInAAIVnfTest() throws Exception {
2061 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2062 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2063 workflowResourceIds.setServiceInstanceId("siId123");
2065 GenericVnf vnf = new GenericVnf();
2066 vnf.setVnfId("id123");
2067 vnf.setVnfName("vnfName123");
2068 vnf.setModelCustomizationId("1234567");
2069 Optional<GenericVnf> opVnf = Optional.of(vnf);
2070 GenericVnf vnf2 = new GenericVnf();
2071 vnf2.setVnfId("id123");
2072 vnf2.setVnfName("vnfName222");
2073 vnf2.setModelCustomizationId("222");
2074 Optional<GenericVnf> opVnf2 = Optional.of(vnf2);
2075 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2076 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName222")).thenReturn(opVnf2);
2077 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2078 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName123", reqDetails,
2079 workflowResourceIds);
2080 assertEquals("id123", id);
2081 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "111111", reqDetails,
2082 workflowResourceIds);
2083 assertEquals("generatedId123", id2);
2085 this.expectedException.expect(DuplicateNameException.class);
2086 this.expectedException.expectMessage(containsString(
2087 "generic-vnf with name (vnfName222), same parent and different customization id (222) already exists. The name must be unique."));
2088 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName222", reqDetails,
2089 workflowResourceIds);
2093 public void validateResourceIdInAAIVnfNotGloballyUniqueTest() throws Exception {
2094 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2095 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2096 workflowResourceIds.setServiceInstanceId("siId123");
2099 GenericVnfs genericVnfs = new GenericVnfs();
2100 GenericVnf vnf3 = new GenericVnf();
2101 vnf3.setVnfId("id123");
2102 vnf3.setVnfName("vnfName333");
2103 genericVnfs.getGenericVnf().add(vnf3);
2104 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName333")).thenReturn(Optional.empty());
2105 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName333")).thenReturn(genericVnfs);
2107 this.expectedException.expect(DuplicateNameException.class);
2108 this.expectedException.expectMessage(containsString(
2109 "generic-vnf with name (vnfName333) id (id123) and different parent relationship already exists. The name must be unique."));
2110 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName333", reqDetails,
2111 workflowResourceIds);
2115 public void validateResourceIdInAAINetworkTest() throws Exception {
2116 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2117 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2118 workflowResourceIds.setServiceInstanceId("siId123");
2121 L3Network network = new L3Network();
2122 network.setNetworkId("id123");
2123 network.setNetworkName("name123");
2124 network.setModelCustomizationId("1234567");
2125 workflowResourceIds.setServiceInstanceId("siId123");
2126 Optional<L3Network> opNetwork = Optional.of(network);
2127 L3Network network2 = new L3Network();
2128 network2.setNetworkId("id123");
2129 network2.setNetworkName("networkName222");
2130 network2.setModelCustomizationId("222");
2131 Optional<L3Network> opNetwork2 = Optional.of(network2);
2132 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2133 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "networkName222"))
2134 .thenReturn(opNetwork2);
2135 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2136 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "name123",
2137 reqDetails, workflowResourceIds);
2138 assertEquals("id123", id);
2139 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "111111",
2140 reqDetails, workflowResourceIds);
2141 assertEquals("generatedId123", id2);
2143 this.expectedException.expect(DuplicateNameException.class);
2144 this.expectedException.expectMessage(containsString(
2145 "l3Network with name (networkName222), same parent and different customization id (222) already exists. The name must be unique."));
2146 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName222", reqDetails,
2147 workflowResourceIds);
2151 public void validateNetworkResourceNameExistsInAAITest() throws Exception {
2152 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2153 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2154 workflowResourceIds.setServiceInstanceId("siId123");
2157 L3Network network = new L3Network();
2158 network.setNetworkId("id123");
2159 network.setNetworkName("name123");
2160 network.setModelCustomizationId("1234567");
2161 workflowResourceIds.setServiceInstanceId("siId123");
2163 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("networkName333", "111111"))
2164 .thenReturn(Optional.empty());
2165 when(bbSetupUtils.existsAAINetworksGloballyByName("networkName333")).thenReturn(true);
2167 this.expectedException.expect(DuplicateNameException.class);
2168 this.expectedException.expectMessage(containsString(
2169 "l3Network with name (networkName333) id (siId123) and different parent relationship already exists. The name must be unique."));
2170 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName333", reqDetails,
2171 workflowResourceIds);
2175 public void validateResourceIdInAAIVfModuleTest() throws Exception {
2176 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2177 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2178 workflowResourceIds.setServiceInstanceId("siId123");
2180 GenericVnf vnf = new GenericVnf();
2181 vnf.setVnfId("id123");
2182 vnf.setVnfName("vnfName123");
2183 vnf.setModelCustomizationId("222");
2186 VfModules vfModules = new VfModules();
2187 VfModule vfModule = new VfModule();
2188 vfModule.setVfModuleId("id123");
2189 vfModule.setVfModuleName("name123");
2190 vfModule.setModelCustomizationId("1234567");
2191 vfModules.getVfModule().add(vfModule);
2192 vnf.setVfModules(vfModules);
2193 workflowResourceIds.setVnfId("id123");
2194 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2195 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "name123",
2196 reqDetails, workflowResourceIds);
2197 assertEquals("id123", id);
2199 GenericVnf vnf1 = new GenericVnf();
2200 VfModules vfModules2 = new VfModules();
2201 VfModule vfModule2 = new VfModule();
2202 vfModule2.setVfModuleId("id123");
2203 vfModule2.setVfModuleName("vFModName222");
2204 vfModule2.setModelCustomizationId("222");
2205 vfModules2.getVfModule().add(vfModule2);
2206 vnf1.setVfModules(vfModules2);
2207 workflowResourceIds.setVnfId("id111");
2208 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2209 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "111111",
2210 reqDetails, workflowResourceIds);
2211 assertEquals("generatedId123", id2);
2213 this.expectedException.expect(DuplicateNameException.class);
2214 this.expectedException.expectMessage(containsString(
2215 "vfModule with name (vFModName222), same parent and different customization id (1234567) already exists. The name must be unique."));
2216 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName222", reqDetails,
2217 workflowResourceIds);
2221 public void validateResourceIdInAAIVfModuleNotGloballyUniqueTest() throws Exception {
2222 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2223 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2224 workflowResourceIds.setVnfId("id111");
2226 GenericVnf vnf1 = new GenericVnf();
2227 workflowResourceIds.setVnfId("id111");
2228 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2230 when(bbSetupUtils.existsAAIVfModuleGloballyByName("vFModName333")).thenReturn(true);
2231 this.expectedException.expect(DuplicateNameException.class);
2232 this.expectedException.expectMessage(
2233 containsString("vfModule with name vFModName333 already exists. The name must be unique."));
2234 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName333", reqDetails,
2235 workflowResourceIds);
2239 public void validateResourceIdInAAIVolumeGroupTest() throws Exception {
2240 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2241 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2242 workflowResourceIds.setServiceInstanceId("siId123");
2244 GenericVnf vnf = new GenericVnf();
2245 vnf.setVnfId("id123");
2246 vnf.setVnfName("vnfName123");
2247 vnf.setModelCustomizationId("1234567");
2249 GenericVnf vnf2 = new GenericVnf();
2250 vnf2.setVnfId("id123");
2251 vnf2.setVnfName("vnfName123");
2252 vnf2.setModelCustomizationId("222");
2255 VolumeGroup volumeGroup = new VolumeGroup();
2256 volumeGroup.setVolumeGroupId("id123");
2257 volumeGroup.setVolumeGroupName("name123");
2258 volumeGroup.setVfModuleModelCustomizationId("1234567");
2259 workflowResourceIds.setVnfId("id123");
2260 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2262 workflowResourceIds.setVnfId("id123");
2264 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2265 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(opVolumeGroup);
2266 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2267 reqDetails, workflowResourceIds);
2268 assertEquals("id123", id);
2270 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf2);
2271 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "111111"))
2272 .thenReturn(opVolumeGroup);
2274 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "111111")).thenReturn(Optional.empty());
2275 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "111111",
2276 reqDetails, workflowResourceIds);
2277 assertEquals("generatedId123", id2);
2281 public void validatesourceIdInAAIVolumeGroupNotGloballyUniqueTest() throws Exception {
2282 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2283 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2284 workflowResourceIds.setVnfId("id123");
2285 GenericVnf vnf = new GenericVnf();
2286 vnf.setVnfId("id123");
2287 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2288 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "testVolumeGroup")).thenReturn(Optional.empty());
2290 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("testVolumeGroup")).thenReturn(true);
2291 this.expectedException.expect(DuplicateNameException.class);
2292 this.expectedException.expectMessage(
2293 containsString("volumeGroup with name testVolumeGroup already exists. The name must be unique."));
2294 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "testVolumeGroup",
2295 reqDetails, workflowResourceIds);
2299 public void validateResourceIdInAAIConfigurationTest() throws Exception {
2300 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2301 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2302 workflowResourceIds.setServiceInstanceId("siId123");
2305 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2306 configuration.setConfigurationId("id123");
2307 configuration.setConfigurationName("name123");
2308 configuration.setModelCustomizationId("1234567");
2309 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2311 org.onap.aai.domain.yang.Configuration configuration2 = new org.onap.aai.domain.yang.Configuration();
2312 configuration2.setConfigurationId("id123");
2313 configuration2.setConfigurationName("name123");
2314 configuration2.setModelCustomizationId("222");
2315 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration2 = Optional.of(configuration2);
2317 workflowResourceIds.setVnfId("id123");
2319 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2320 .thenReturn(opConfiguration);
2321 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name123",
2322 reqDetails, workflowResourceIds);
2323 assertEquals("id123", id);
2325 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "111111"))
2326 .thenReturn(Optional.empty());
2327 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "111111",
2328 reqDetails, workflowResourceIds);
2329 assertEquals("generatedId123", id2);
2331 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name222"))
2332 .thenReturn(opConfiguration2);
2333 this.expectedException.expect(DuplicateNameException.class);
2334 this.expectedException.expectMessage(containsString(
2335 "configuration with name (name222), same parent and different customization id (id123) already exists. The name must be unique."));
2336 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name222", reqDetails,
2337 workflowResourceIds);
2341 public void validateResourceIdInAAIConfigurationNotGloballyUniqueTest() throws Exception {
2342 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2343 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2344 workflowResourceIds.setServiceInstanceId("siId123");
2346 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "testConfig"))
2347 .thenReturn(Optional.empty());
2348 when(bbSetupUtils.existsAAIConfigurationGloballyByName("testConfig")).thenReturn(true);
2349 this.expectedException.expect(DuplicateNameException.class);
2350 this.expectedException.expectMessage(
2351 containsString("configuration with name testConfig already exists. The name must be unique."));
2352 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "testConfig", reqDetails,
2353 workflowResourceIds);
2357 public void validateResourceIdInAAISITest() throws Exception {
2358 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2359 workflowResourceIds.setServiceInstanceId("siId123");
2360 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2361 reqDetails.getModelInfo().setModelVersionId("1234567");
2363 ServiceInstance si = new ServiceInstance();
2364 si.setServiceInstanceId("siId123");
2365 si.setModelVersionId("1234567");
2366 ServiceInstances serviceInstances = new ServiceInstances();
2367 serviceInstances.getServiceInstance().add(si);
2368 Optional<ServiceInstance> siOp = Optional.of(si);
2369 ServiceInstance si2 = new ServiceInstance();
2370 si2.setServiceInstanceId("siId222");
2371 si2.setModelVersionId("22222");
2372 si2.setServiceInstanceName("siName222");
2373 Optional<ServiceInstance> siOp2 = Optional.of(si2);
2374 ServiceInstances serviceInstances2 = new ServiceInstances();
2375 serviceInstances2.getServiceInstance().add(si2);
2377 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2378 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName222")).thenReturn(siOp2);
2379 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "111111"))
2380 .thenReturn(Optional.empty());
2382 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2383 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123",
2384 reqDetails, workflowResourceIds);
2385 assertEquals("siId123", id);
2386 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "111111",
2387 reqDetails, workflowResourceIds);
2388 assertEquals("generatedId123", id2);
2390 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName222")).thenReturn(serviceInstances2);
2391 this.expectedException.expect(DuplicateNameException.class);
2392 this.expectedException.expectMessage(containsString(
2393 "serviceInstance with name (siName222) and different version id (1234567) already exists. The name must be unique."));
2394 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName222", reqDetails,
2395 workflowResourceIds);
2399 public void validateResourceIdInAAIMultipleSITest() throws Exception {
2400 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2401 workflowResourceIds.setServiceInstanceId("siId123");
2402 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2403 reqDetails.getModelInfo().setModelVersionId("1234567");
2405 ServiceInstance si = new ServiceInstance();
2406 si.setServiceInstanceId("siId123");
2407 si.setModelVersionId("1234567");
2408 ServiceInstances serviceInstances = new ServiceInstances();
2409 serviceInstances.getServiceInstance().add(si);
2411 ServiceInstance si2 = new ServiceInstance();
2412 si2.setServiceInstanceId("siId222");
2413 si2.setModelVersionId("22222");
2414 si2.setServiceInstanceName("siName222");
2415 serviceInstances.getServiceInstance().add(si2);
2417 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2418 .thenReturn(Optional.empty());
2420 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2422 this.expectedException.expect(DuplicateNameException.class);
2423 this.expectedException.expectMessage(containsString(
2424 "serviceInstance with name (siName123) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2425 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2426 workflowResourceIds);
2430 public void validateResourceIdInAAISIExistsTest() throws Exception {
2431 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2432 workflowResourceIds.setServiceInstanceId("siId123");
2433 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2434 reqDetails.getModelInfo().setModelVersionId("1234567");
2436 ServiceInstance si = new ServiceInstance();
2437 si.setServiceInstanceId("siId123");
2438 si.setModelVersionId("1234567");
2439 ServiceInstances serviceInstances = new ServiceInstances();
2440 serviceInstances.getServiceInstance().add(si);
2442 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2443 .thenReturn(Optional.empty());
2445 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2447 Map<String, String> uriKeys = new HashMap<>();
2448 uriKeys.put(AAIFluentTypeBuilder.Types.CUSTOMER.getUriParams().globalCustomerId, "globalCustomerId");
2449 uriKeys.put(AAIFluentTypeBuilder.Types.SERVICE_SUBSCRIPTION.getUriParams().serviceType, "serviceType");
2451 when(bbSetupUtils.getURIKeysFromServiceInstance("siId123")).thenReturn(uriKeys);
2453 this.expectedException.expect(DuplicateNameException.class);
2454 this.expectedException.expectMessage(containsString(
2455 "serviceInstance with name (siName123) and global-customer-id (globalCustomerId), service-type (serviceType), model-version-id (1234567) already exists. The name must be unique."));
2456 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2457 workflowResourceIds);
2461 public void validateServiceResourceIdInAAINoDupTest() throws Exception {
2462 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2463 reqDetails.getModelInfo().setModelVersionId("1234567");
2464 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123"))
2465 .thenReturn(Optional.empty());
2466 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(null);
2467 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2468 assertEquals("generatedId123", id);
2472 public void validateServiceResourceIdInAAISameModelVersionId() throws Exception {
2473 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2474 reqDetails.getModelInfo().setModelVersionId("1234567");
2476 ServiceInstance si = new ServiceInstance();
2477 si.setServiceInstanceId("siId123");
2478 si.setModelVersionId("1234567");
2479 Optional<ServiceInstance> siOp = Optional.of(si);
2481 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2482 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2483 assertEquals("siId123", id);
2487 public void validateServiceResourceIdInAAIDifferentModelVersionId() throws Exception {
2488 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2489 reqDetails.getModelInfo().setModelVersionId("1234567");
2491 ServiceInstance si = new ServiceInstance();
2492 si.setServiceInstanceId("siId123");
2493 si.setModelVersionId("9999999");
2494 ServiceInstances serviceInstances = new ServiceInstances();
2495 serviceInstances.getServiceInstance().add(si);
2496 Optional<ServiceInstance> siOp = Optional.of(si);
2498 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2500 this.expectedException.expect(DuplicateNameException.class);
2501 this.expectedException.expectMessage(containsString(
2502 "serviceInstance with name (siName123) and different version id (1234567) already exists. The name must be unique."));
2504 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2505 assertEquals("siId123", id);
2509 public void validateServiceResourceIdInAAIDuplicateNameTest() throws Exception {
2511 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2512 reqDetails.getModelInfo().setModelVersionId("1234567");
2514 ServiceInstance si = new ServiceInstance();
2515 si.setServiceInstanceId("siId123");
2516 si.setModelVersionId("1234567");
2518 ServiceInstances serviceInstances = new ServiceInstances();
2519 serviceInstances.getServiceInstance().add(si);
2521 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2522 .thenReturn(Optional.empty());
2523 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2525 this.expectedException.expect(DuplicateNameException.class);
2526 this.expectedException.expectMessage(containsString(
2527 "serviceInstance with name (siName) and global-customer-id (null), service-type (null), model-version-id (1234567) already exists. The name must be unique."));
2529 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2533 public void validateServiceResourceIdInAAIDuplicateNameMultipleTest() throws Exception {
2535 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2536 reqDetails.getModelInfo().setModelVersionId("1234567");
2538 ServiceInstance si = new ServiceInstance();
2539 si.setServiceInstanceId("siId123");
2540 si.setModelVersionId("1234567");
2542 ServiceInstance si2 = new ServiceInstance();
2543 si2.setServiceInstanceId("siId222");
2544 si2.setModelVersionId("22222");
2545 si2.setServiceInstanceName("siName222");
2547 ServiceInstances serviceInstances = new ServiceInstances();
2548 serviceInstances.getServiceInstance().add(si);
2549 serviceInstances.getServiceInstance().add(si2);
2551 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2552 .thenReturn(Optional.empty());
2553 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2555 this.expectedException.expect(DuplicateNameException.class);
2556 this.expectedException.expectMessage(containsString(
2557 "serviceInstance with name (siName) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2559 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2563 public void validateNetworkResourceIdInAAITest() throws Exception {
2564 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2565 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2566 workflowResourceIds.setServiceInstanceId("siId123");
2568 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2569 .thenReturn(Optional.empty());
2570 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(false);
2572 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2573 workflowResourceIds);
2574 assertEquals("generatedId123", id);
2578 public void validateNetworkResourceIdInAAISameModelCustIdTest() throws Exception {
2579 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2580 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2581 workflowResourceIds.setServiceInstanceId("siId123");
2583 L3Network network = new L3Network();
2584 network.setNetworkId("id123");
2585 network.setNetworkName("name123");
2586 network.setModelCustomizationId("1234567");
2587 Optional<L3Network> opNetwork = Optional.of(network);
2589 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2591 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2592 workflowResourceIds);
2593 assertEquals("id123", id);
2597 public void validateNetworkResourceIdInAAIDuplicateNameTest() throws Exception {
2598 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2599 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2600 workflowResourceIds.setServiceInstanceId("siId123");
2602 L3Network network = new L3Network();
2603 network.setNetworkId("id123");
2604 network.setNetworkName("name123");
2605 network.setModelCustomizationId("9999999");
2606 Optional<L3Network> opNetwork = Optional.of(network);
2608 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2610 this.expectedException.expect(DuplicateNameException.class);
2611 this.expectedException.expectMessage(containsString(
2612 "l3Network with name (name123), same parent and different customization id (9999999) already exists. The name must be unique."));
2614 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2618 public void validateNetworkResourceIdInAAINotGloballyUniqueTest() throws Exception {
2619 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2620 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2621 workflowResourceIds.setServiceInstanceId("siId123");
2623 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2624 .thenReturn(Optional.empty());
2625 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(true);
2627 this.expectedException.expect(DuplicateNameException.class);
2628 this.expectedException.expectMessage(containsString(
2629 "l3Network with name (name123) id (siId123) and different parent relationship already exists. The name must be unique."));
2631 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2635 public void validateVnfResourceIdInAAITest() throws Exception {
2636 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2637 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2638 workflowResourceIds.setServiceInstanceId("siId123");
2639 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2640 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2641 workflowResourceIds);
2642 assertEquals("generatedId123", id);
2646 public void validateVnfResourceIdInAAISameModelCustomizationIdTest() throws Exception {
2647 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2648 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2649 workflowResourceIds.setServiceInstanceId("siId123");
2651 GenericVnf vnf = new GenericVnf();
2652 vnf.setVnfId("id123");
2653 vnf.setVnfName("vnfName123");
2654 vnf.setModelCustomizationId("1234567");
2655 Optional<GenericVnf> opVnf = Optional.of(vnf);
2657 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2658 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2659 workflowResourceIds);
2660 assertEquals("id123", id);
2664 public void validateVnfResourceIdInAAIDiffModelCustomizationIdTest() throws Exception {
2665 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2666 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2667 workflowResourceIds.setServiceInstanceId("siId123");
2669 GenericVnf vnf = new GenericVnf();
2670 vnf.setVnfId("id123");
2671 vnf.setVnfName("vnfName123");
2672 vnf.setModelCustomizationId("9999999");
2673 Optional<GenericVnf> opVnf = Optional.of(vnf);
2675 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2677 this.expectedException.expect(DuplicateNameException.class);
2678 this.expectedException.expectMessage(containsString(
2679 "generic-vnf with name (vnfName123), same parent and different customization id (9999999) already exists. The name must be unique."));
2681 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2685 public void validateVnfResourceIdInAAINotGloballyUniqueTest() throws Exception {
2686 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2687 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2688 workflowResourceIds.setServiceInstanceId("siId123");
2691 GenericVnf vnf = new GenericVnf();
2692 vnf.setVnfId("id123");
2693 vnf.setVnfName("vnfName123");
2694 GenericVnfs genericVnfs = new GenericVnfs();
2695 genericVnfs.getGenericVnf().add(vnf);
2697 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2698 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName123")).thenReturn(genericVnfs);
2700 this.expectedException.expect(DuplicateNameException.class);
2701 this.expectedException.expectMessage(containsString(
2702 "generic-vnf with name (vnfName123) id (id123) and different parent relationship already exists. The name must be unique."));
2704 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2708 public void validateVfModuleResourceIdTest() throws Exception {
2709 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2710 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2711 workflowResourceIds.setVnfId("vnfId123");
2713 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2714 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(false);
2716 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2717 workflowResourceIds);
2718 assertEquals("generatedId123", id);
2722 public void validateVfModuleResourceIdSameModelCustIdTest() throws Exception {
2723 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2724 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2725 workflowResourceIds.setVnfId("vnfId123");
2727 VfModules vfModules = new VfModules();
2728 VfModule vfModule = new VfModule();
2729 vfModule.setVfModuleId("id123");
2730 vfModule.setVfModuleName("name123");
2731 vfModule.setModelCustomizationId("1234567");
2732 vfModules.getVfModule().add(vfModule);
2734 GenericVnf vnf = new GenericVnf();
2735 vnf.setVnfId("id123");
2736 vnf.setVnfName("vnfName123");
2737 vnf.setVfModules(vfModules);
2739 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2741 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2742 workflowResourceIds);
2743 assertEquals("id123", id);
2747 public void validateVfModuleResourceIdDifferentModelCustIdTest() throws Exception {
2748 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2749 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2750 workflowResourceIds.setVnfId("vnfId123");
2752 VfModules vfModules = new VfModules();
2753 VfModule vfModule = new VfModule();
2754 vfModule.setVfModuleId("id123");
2755 vfModule.setVfModuleName("name123");
2756 vfModule.setModelCustomizationId("9999999");
2757 vfModules.getVfModule().add(vfModule);
2759 GenericVnf vnf = new GenericVnf();
2760 vnf.setVnfId("id123");
2761 vnf.setVnfName("vnfName123");
2762 vnf.setVfModules(vfModules);
2764 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2766 this.expectedException.expect(DuplicateNameException.class);
2767 this.expectedException.expectMessage(containsString(
2768 "vfModule with name (name123), same parent and different customization id (1234567) already exists. The name must be unique."));
2770 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2775 public void validateVfModuleResourceIdNotGloballyUniqueTest() throws Exception {
2776 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2777 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2778 workflowResourceIds.setVnfId("vnfId123");
2780 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2781 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(true);
2783 this.expectedException.expect(DuplicateNameException.class);
2784 this.expectedException
2785 .expectMessage(containsString("vfModule with name name123 already exists. The name must be unique."));
2787 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2791 public void validateVolumeGroupResourceIdInAAITest() throws Exception {
2792 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2793 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2794 workflowResourceIds.setVnfId("vnfId123");
2796 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(Optional.empty());
2797 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(false);
2799 String id = workflowAction.validateVolumeGroupResourceIdInAAI("generatedId123", "name123", reqDetails,
2800 workflowResourceIds);
2801 assertEquals("generatedId123", id);
2805 public void validateVolumeGroupResourceIdInAAISameModelCustIdTest() 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("1234567");
2816 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2818 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2819 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2820 reqDetails, workflowResourceIds);
2822 assertEquals("id123", id);
2826 public void validateVolumeGroupResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2827 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2828 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2829 workflowResourceIds.setServiceInstanceId("siId123");
2830 workflowResourceIds.setVnfId("vnfId123");
2832 VolumeGroup volumeGroup = new VolumeGroup();
2833 volumeGroup.setVolumeGroupId("id123");
2834 volumeGroup.setVolumeGroupName("name123");
2835 volumeGroup.setVfModuleModelCustomizationId("9999999");
2837 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2839 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2841 this.expectedException.expect(DuplicateNameException.class);
2842 this.expectedException.expectMessage(
2843 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2845 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2846 workflowResourceIds);
2850 public void validateVolumeGroupResourceIdInAAINotGloballyUniqueTest() throws Exception {
2851 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2852 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2853 workflowResourceIds.setVnfId("vnfId123");
2855 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(Optional.empty());
2856 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(true);
2858 this.expectedException.expect(DuplicateNameException.class);
2859 this.expectedException.expectMessage(
2860 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2862 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2863 workflowResourceIds);
2867 public void validateConfigurationResourceIdInAAITest() throws Exception {
2868 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2869 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2870 workflowResourceIds.setServiceInstanceId("siId123");
2872 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2873 .thenReturn(Optional.empty());
2874 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2876 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2877 workflowResourceIds);
2878 assertEquals("generatedId123", id);
2882 public void validateConfigurationResourceIdInAAISameModelCustIdTest() 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("1234567");
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 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2898 workflowResourceIds);
2899 assertEquals("id123", id);
2903 public void validateConfigurationResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2904 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2905 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2906 workflowResourceIds.setServiceInstanceId("siId123");
2908 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2909 configuration.setConfigurationId("id123");
2910 configuration.setConfigurationName("name123");
2911 configuration.setModelCustomizationId("9999999");
2912 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2914 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2915 .thenReturn(opConfiguration);
2916 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2918 this.expectedException.expect(DuplicateNameException.class);
2919 this.expectedException.expectMessage(containsString(
2920 "configuration with name (name123), same parent and different customization id (id123) already exists. The name must be unique."));
2922 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2923 workflowResourceIds);
2927 public void validateConfigurationResourceIdInAAINotGloballyUniqueTest() throws Exception {
2928 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2929 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2930 workflowResourceIds.setServiceInstanceId("siId123");
2932 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2933 .thenReturn(Optional.empty());
2934 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(true);
2936 this.expectedException.expect(DuplicateNameException.class);
2937 this.expectedException.expectMessage(
2938 containsString("configuration with name name123 already exists. The name must be unique."));
2940 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2941 workflowResourceIds);
2945 public void handleRuntimeExceptionTest() {
2946 execution.setVariable("BPMN_javaExpMsg", "test runtime error message");
2947 execution.setVariable("testProcessKey", "testProcessKeyValue");
2949 workflowAction.handleRuntimeException(execution);
2950 } catch (BpmnError wfe) {
2951 assertEquals("MSOWorkflowException", wfe.getErrorCode());
2957 public void traverseCatalogDbServiceMultipleNetworkTest() throws IOException, VrfBondingServiceException {
2958 execution.setVariable("testProcessKey", "testProcessKeyValue");
2959 Service service = new Service();
2960 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
2961 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
2962 networkCust.setModelCustomizationUUID("123");
2963 networkCustomizations.add(networkCust);
2964 service.setNetworkCustomizations(networkCustomizations);
2965 NetworkCollectionResourceCustomization collectionResourceCustomization =
2966 new NetworkCollectionResourceCustomization();
2967 collectionResourceCustomization.setModelCustomizationUUID("123");
2968 CollectionResource collectionResource = new CollectionResource();
2969 collectionResource.setToscaNodeType("NetworkCollection");
2970 InstanceGroup instanceGroup = new InstanceGroup();
2971 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
2972 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
2973 new CollectionResourceInstanceGroupCustomization();
2974 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
2975 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
2976 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
2977 collectionResource.setInstanceGroup(instanceGroup);
2978 collectionResourceCustomization.setCollectionResource(collectionResource);;
2979 service.setModelUUID("abc");
2980 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2981 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2982 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
2983 doReturn(collectionResourceCustomization).when(catalogDbClient)
2984 .getNetworkCollectionResourceCustomizationByID("123");
2985 String bpmnRequest = new String(Files
2986 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
2987 ObjectMapper mapper = new ObjectMapper();
2988 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
2989 List<Resource> resourceCounter = new ArrayList<>();
2990 thrown.expect(BpmnError.class);
2991 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
2992 workflowAction.traverseCatalogDbService(execution, sIRequest, resourceCounter, aaiResourceIds);
2996 public void sortVfModulesByBaseFirstTest() {
2997 List<Resource> resources = new ArrayList<>();
2998 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2999 resource1.setBaseVfModule(false);
3000 resources.add(resource1);
3001 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
3002 resource2.setBaseVfModule(false);
3003 resources.add(resource2);
3004 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
3005 resource3.setBaseVfModule(true);
3006 resources.add(resource3);
3007 List<Resource> result = workflowAction.sortVfModulesByBaseFirst(resources);
3008 assertEquals("333", result.get(0).getResourceId());
3009 assertEquals("222", result.get(1).getResourceId());
3010 assertEquals("111", result.get(2).getResourceId());
3014 public void sortVfModulesByBaseLastTest() {
3015 List<Resource> resources = new ArrayList<>();
3016 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
3017 resource1.setBaseVfModule(true);
3018 resources.add(resource1);
3019 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
3020 resource2.setBaseVfModule(false);
3021 resources.add(resource2);
3022 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
3023 resource3.setBaseVfModule(false);
3024 resources.add(resource3);
3025 List<Resource> result = workflowAction.sortVfModulesByBaseLast(resources);
3026 assertEquals("333", result.get(0).getResourceId());
3027 assertEquals("222", result.get(1).getResourceId());
3028 assertEquals("111", result.get(2).getResourceId());
3032 public void findCatalogNetworkCollectionTest() {
3033 Service service = new Service();
3034 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
3035 networkCustomization.setModelCustomizationUUID("123");
3036 service.getCollectionResourceCustomizations().add(networkCustomization);
3037 doReturn(networkCustomization).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
3038 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
3039 assertNotNull(customization);
3043 public void findCatalogNetworkCollectionEmptyTest() {
3044 Service service = new Service();
3045 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
3046 networkCustomization.setModelCustomizationUUID("123");
3047 service.getCollectionResourceCustomizations().add(networkCustomization);
3048 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
3049 assertNull(customization);
3053 public void findCatalogNetworkCollectionMoreThanOneTest() {
3054 Service service = new Service();
3055 NetworkCollectionResourceCustomization networkCustomization1 = new NetworkCollectionResourceCustomization();
3056 networkCustomization1.setModelCustomizationUUID("123");
3057 NetworkCollectionResourceCustomization networkCustomization2 = new NetworkCollectionResourceCustomization();
3058 networkCustomization2.setModelCustomizationUUID("321");
3059 service.getCollectionResourceCustomizations().add(networkCustomization1);
3060 service.getCollectionResourceCustomizations().add(networkCustomization2);
3061 doReturn(networkCustomization1).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
3062 doReturn(networkCustomization2).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("321");
3063 workflowAction.findCatalogNetworkCollection(execution, service);
3064 assertEquals("Found multiple Network Collections in the Service model, only one per Service is supported.",
3065 execution.getVariable("WorkflowActionErrorMessage"));
3069 public void verifyLackOfNullPointerExceptionForNullResource() {
3070 ExecuteBuildingBlock result = null;
3072 result = workflowAction.buildExecuteBuildingBlock(new OrchestrationFlow(), null, null, null, null, null,
3073 false, null, null, null, false, null, null, true);
3074 } catch (NullPointerException e) {
3075 fail("NullPointerException should not be thrown when 'resource' is null");
3077 assertNotNull(result);
3081 public void traverseAAIServiceTest() {
3082 List<Resource> resourceCounter = new ArrayList<>();
3083 String resourceId = "si0";
3084 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
3086 ServiceInstance serviceInstanceAAI = new ServiceInstance();
3087 serviceInstanceAAI.setServiceInstanceId(resourceId);
3089 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstance = setServiceInstance();
3097 Configuration config = new Configuration();
3098 config.setConfigurationId("testConfigurationId2");
3099 serviceInstance.getConfigurations().add(config);
3101 Relationship relationship1 = new Relationship();
3102 relationship1.setRelatedTo("vnfc");
3103 RelationshipList relationshipList1 = new RelationshipList();
3104 relationshipList1.getRelationship().add(relationship1);
3106 Relationship relationship2 = new Relationship();
3107 relationship2.setRelatedTo("vpn-binding");
3108 RelationshipList relationshipList2 = new RelationshipList();
3109 relationshipList2.getRelationship().add(relationship2);
3111 org.onap.aai.domain.yang.Configuration aaiConfiguration1 = new org.onap.aai.domain.yang.Configuration();
3112 aaiConfiguration1.setConfigurationId("testConfigurationId");
3113 aaiConfiguration1.setRelationshipList(relationshipList1);
3115 org.onap.aai.domain.yang.Configuration aaiConfiguration2 = new org.onap.aai.domain.yang.Configuration();
3116 aaiConfiguration2.setConfigurationId("testConfigurationId2");
3117 aaiConfiguration2.setRelationshipList(relationshipList1);
3120 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById(resourceId);
3121 doReturn(serviceInstance).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
3122 doReturn(Optional.of(aaiConfiguration1)).when(aaiConfigurationResources)
3123 .getConfiguration("testConfigurationId");
3124 doReturn(Optional.of(aaiConfiguration2)).when(aaiConfigurationResources)
3125 .getConfiguration("testConfigurationId2");
3126 workflowAction.traverseAAIService(execution, resourceCounter, resourceId, aaiResourceIds);
3127 assertEquals(8, resourceCounter.size());
3128 assertTrue(resourceCounter.get(2).isBaseVfModule());
3129 assertThat(aaiResourceIds, sameBeanAs(getExpectedResourceIds()));
3130 } catch (Exception e) {
3131 fail("Unexpected exception was thrown.");
3135 private List<Pair<WorkflowType, String>> getExpectedResourceIds() {
3136 List<Pair<WorkflowType, String>> resourceIds = new ArrayList<>();
3137 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VNF, "testVnfId1"));
3138 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VFMODULE, "testVfModuleId1"));
3139 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VOLUMEGROUP, "testVolumeGroupId1"));
3140 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORK, "testNetworkId1"));
3141 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORKCOLLECTION, "testId"));
3142 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId"));
3143 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId2"));
3147 private List<OrchestrationFlow> createFlowList(String... flowNames) {
3148 List<OrchestrationFlow> result = new ArrayList<>();
3149 for (String flowName : flowNames) {
3150 OrchestrationFlow orchFlow = new OrchestrationFlow();
3151 orchFlow.setFlowName(flowName);
3152 result.add(orchFlow);
3157 private void assertEqualsBulkFlowName(List<ExecuteBuildingBlock> ebbs, String... flowNames) {
3158 for (int i = 0; i < ebbs.size(); i++) {
3159 assertEquals(ebbs.get(i).getBuildingBlock().getBpmnFlowName(), flowNames[i]);