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.anyObject;
38 import static org.mockito.ArgumentMatchers.anyString;
39 import static org.mockito.ArgumentMatchers.any;
40 import static org.mockito.ArgumentMatchers.eq;
41 import static org.mockito.ArgumentMatchers.isA;
42 import static org.mockito.Mockito.doReturn;
43 import static org.mockito.Mockito.doThrow;
44 import static org.mockito.Mockito.doAnswer;
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.so.bpmn.BaseTaskTest;
81 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
82 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
83 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
84 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
85 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
86 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.DuplicateNameException;
87 import org.onap.aaiclient.client.aai.AAIObjectType;
88 import org.onap.aaiclient.client.aai.entities.AAIResultWrapper;
89 import org.onap.aaiclient.client.aai.entities.Relationships;
90 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
91 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
92 import org.onap.so.client.orchestration.AAIEntityNotFoundException;
93 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
94 import org.onap.so.db.catalog.beans.CollectionResource;
95 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
96 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
97 import org.onap.so.db.catalog.beans.ConfigurationResource;
98 import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
99 import org.onap.so.db.catalog.beans.CvnfcCustomization;
100 import org.onap.so.db.catalog.beans.HeatEnvironment;
101 import org.onap.so.db.catalog.beans.HeatTemplate;
102 import org.onap.so.db.catalog.beans.InstanceGroup;
103 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
104 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
105 import org.onap.so.db.catalog.beans.Service;
106 import org.onap.so.db.catalog.beans.VfModuleCustomization;
107 import org.onap.so.db.catalog.beans.macro.NorthBoundRequest;
108 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
109 import org.onap.so.serviceinstancebeans.ModelInfo;
110 import org.onap.so.serviceinstancebeans.RequestDetails;
111 import org.onap.so.serviceinstancebeans.RequestParameters;
112 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
113 import org.onap.so.serviceinstancebeans.SubscriberInfo;
114 import org.springframework.core.env.Environment;
116 public class WorkflowActionTest extends BaseTaskTest {
119 protected Environment environment;
121 protected WorkflowAction workflowAction;
122 private DelegateExecution execution;
126 protected WorkflowAction SPY_workflowAction;
129 public ExpectedException thrown = ExpectedException.none();
131 private String RESOURCE_PATH = "src/test/resources/__files/";
133 private List<OrchestrationFlow> replaceVfModuleOrchFlows =
134 createFlowList("DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
135 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
136 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
137 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
138 private List<OrchestrationFlow> replaceRetainAssignmentsVfModuleOrchFlows = createFlowList("DeactivateVfModuleBB",
139 "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "UnassignVolumeGroupBB",
140 "AssignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
141 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
144 public void before() throws Exception {
145 execution = new DelegateExecutionFake();
146 org.onap.aai.domain.yang.ServiceInstance servInstance = new org.onap.aai.domain.yang.ServiceInstance();
147 servInstance.setServiceInstanceId("TEST");
148 when(bbSetupUtils.getAAIServiceInstanceByName(anyString(), anyObject())).thenReturn(servInstance);
149 workflowAction.setBbInputSetupUtils(bbSetupUtils);
150 workflowAction.setBbInputSetup(bbInputSetup);
157 public void selectExecutionListALaCarteNetworkCreateTest() throws Exception {
158 String gAction = "createInstance";
159 String resource = "Network";
160 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
161 execution.setVariable("requestAction", gAction);
163 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
164 execution.setVariable("bpmnRequest", bpmnRequest);
165 execution.setVariable("aLaCarte", true);
166 execution.setVariable("apiVersion", "7");
167 execution.setVariable("requestUri", "v6/networks/123");
169 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
170 List<OrchestrationFlow> orchFlows =
171 createFlowList("AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
172 northBoundRequest.setOrchestrationFlowList(orchFlows);
174 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
175 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
176 workflowAction.selectExecutionList(execution);
177 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
178 assertEqualsBulkFlowName(ebbs, "AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
182 public void selectExecutionListALaCarteNetworkDeleteTest() throws Exception {
183 String gAction = "deleteInstance";
184 String resource = "Network";
185 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
186 execution.setVariable("requestAction", gAction);
188 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
189 execution.setVariable("bpmnRequest", bpmnRequest);
190 execution.setVariable("aLaCarte", true);
191 execution.setVariable("apiVersion", "7");
192 execution.setVariable("requestUri", "v6/networks/123");
194 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
195 List<OrchestrationFlow> orchFlows =
196 createFlowList("DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
197 northBoundRequest.setOrchestrationFlowList(orchFlows);
199 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
200 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
201 workflowAction.selectExecutionList(execution);
202 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
203 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
207 public void selectExecutionListALaCarteServiceCreateTest() throws Exception {
208 String gAction = "createInstance";
209 String resource = "Service";
210 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
211 execution.setVariable("requestAction", gAction);
213 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
214 execution.setVariable("bpmnRequest", bpmnRequest);
215 execution.setVariable("aLaCarte", true);
216 execution.setVariable("apiVersion", "7");
217 execution.setVariable("requestUri", "v6/serviceInstances/123");
220 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
221 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "ActivateServiceInstanceBB");
222 northBoundRequest.setOrchestrationFlowList(orchFlows);
224 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
225 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
226 workflowAction.selectExecutionList(execution);
227 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
228 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
232 public void selectExecutionListExceptionAlreadyBuiltTest() throws Exception {
233 DelegateExecution delegateExecution = new DelegateExecutionFake();
234 String gAction = "deleteInstance";
235 String resource = "VfModule";
236 delegateExecution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
237 delegateExecution.setVariable("requestAction", gAction);
239 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
240 delegateExecution.setVariable("bpmnRequest", bpmnRequest);
241 delegateExecution.setVariable("aLaCarte", true);
242 delegateExecution.setVariable("apiVersion", "7");
243 delegateExecution.setVariable("requestUri",
244 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
246 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
247 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
248 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
249 northBoundRequest.setOrchestrationFlowList(orchFlows);
251 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
252 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
254 doAnswer(invocation -> {
255 DelegateExecutionFake execution = invocation.getArgument(0);
256 execution.setVariable("WorkflowException", "exception");
257 execution.setVariable("WorkflowExceptionErrorMessage", "errorMessage");
258 throw new BpmnError("WorkflowException");
259 }).when(exceptionUtil).buildAndThrowWorkflowException(delegateExecution, 7000,
260 "Exception in getConfigBuildingBlock: Multiple relationships exist from VNFC testVnfcName to Configurations");
263 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
264 vnf.setVnfId("vnf0");
265 vnf.setModelCustomizationId("modelCustomizationId");
266 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
268 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
269 vfModule.setModelCustomizationId("modelCustomizationId");
270 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModule);
272 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
273 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
274 vnfc.setModelInvariantId("modelInvariantId");
275 vnfc.setVnfcName("testVnfcName");
277 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(), any(), any());
279 List<org.onap.aai.domain.yang.Configuration> configurations =
280 new ArrayList<org.onap.aai.domain.yang.Configuration>();
281 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
282 configuration.setConfigurationId("configurationId");
283 configuration.setModelCustomizationId("modelCustimizationId");
284 configuration.setConfigurationName("testConfigurationName");
285 configurations.add(configuration);
286 org.onap.aai.domain.yang.Configuration configuration1 = new org.onap.aai.domain.yang.Configuration();
287 configuration1.setConfigurationId("configurationId");
288 configuration1.setModelCustomizationId("modelCustimizationId");
289 configuration1.setConfigurationName("testConfigurationName");
290 configurations.add(configuration1);
291 doReturn(configurations).when(SPY_workflowAction).getRelatedResourcesInVnfc(any(), any(), any());
293 doReturn("testName").when(SPY_workflowAction).getVnfcNameForConfiguration(any());
295 thrown.expect(BpmnError.class);
296 SPY_workflowAction.selectExecutionList(delegateExecution);
298 "Exception in getConfigBuildingBlock: Multiple relationships exist from VNFC testVnfcName to Configurations",
299 delegateExecution.getVariable("WorkflowException"));
303 public void selectExecutionListDuplicateNameExceptionTest() throws Exception {
304 String gAction = "createInstance";
305 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
307 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
308 execution.setVariable("bpmnRequest", bpmnRequest);
309 execution.setVariable("aLaCarte", true);
310 execution.setVariable("apiVersion", "7");
311 execution.setVariable("requestUri", "v6/serviceInstances");
312 execution.setVariable("requestAction", gAction);
314 doThrow(new DuplicateNameException(
315 "serviceInstance with name (instanceName) and different version id (3c40d244-808e-42ca-b09a-256d83d19d0a) already exists. The name must be unique."))
316 .when(SPY_workflowAction).validateResourceIdInAAI(anyString(), eq(WorkflowType.SERVICE),
317 eq("test"), any(RequestDetails.class), any(WorkflowResourceIds.class));
319 SPY_workflowAction.selectExecutionList(execution);
320 assertEquals(execution.getVariable("WorkflowActionErrorMessage"),
321 "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.");
325 * SERVICE MACRO TESTS
328 public void selectExecutionListServiceMacroAssignTest() throws Exception {
329 String gAction = "assignInstance";
330 String resource = "Service";
331 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
332 execution.setVariable("requestAction", gAction);
334 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
335 execution.setVariable("bpmnRequest", bpmnRequest);
336 execution.setVariable("aLaCarte", false);
337 execution.setVariable("apiVersion", "7");
338 execution.setVariable("requestUri", "v6/serviceInstances/123");
341 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
342 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
343 "AssignVolumeGroupBB", "AssignVfModuleBB");
344 northBoundRequest.setOrchestrationFlowList(orchFlows);
346 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
347 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
348 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
349 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
350 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
351 HeatTemplate volumeHeatTemplate = new HeatTemplate();
352 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
353 vfModuleCustomization.setVfModule(vfModule);
355 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
356 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
357 HeatEnvironment heatEnvironment = new HeatEnvironment();
358 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
359 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
360 HeatTemplate moduleHeatTemplate = new HeatTemplate();
361 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
362 vfModuleCustomization2.setVfModule(vfModule2);
364 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
365 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
367 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
368 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
369 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
370 .thenReturn(vfModuleCustomization);
371 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
372 .thenReturn(vfModuleCustomization2);
373 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
374 .thenReturn(vfModuleCustomization3);
375 workflowAction.selectExecutionList(execution);
376 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
377 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
378 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
382 public void selectExecutionListServiceMacroAssignNoCloudTest() throws Exception {
383 String gAction = "assignInstance";
384 String resource = "Service";
385 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
386 execution.setVariable("requestAction", gAction);
387 String bpmnRequest = new String(
388 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssignNoCloud.json")));
389 execution.setVariable("bpmnRequest", bpmnRequest);
390 execution.setVariable("aLaCarte", false);
391 execution.setVariable("apiVersion", "7");
392 execution.setVariable("requestUri", "v6/serviceInstances/123");
395 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
396 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
397 "AssignVolumeGroupBB", "AssignVfModuleBB");
398 northBoundRequest.setOrchestrationFlowList(orchFlows);
400 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
401 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
402 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
403 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
404 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
405 HeatTemplate volumeHeatTemplate = new HeatTemplate();
406 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
407 vfModuleCustomization.setVfModule(vfModule);
409 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
410 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
411 HeatEnvironment heatEnvironment = new HeatEnvironment();
412 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
413 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
414 HeatTemplate moduleHeatTemplate = new HeatTemplate();
415 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
416 vfModuleCustomization2.setVfModule(vfModule2);
418 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
419 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
421 when(environment.getProperty("org.onap.so.cloud-owner")).thenReturn("att-aic");
422 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
423 false, "att-aic")).thenReturn(northBoundRequest);
424 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
425 .thenReturn(vfModuleCustomization);
426 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
427 .thenReturn(vfModuleCustomization2);
428 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
429 .thenReturn(vfModuleCustomization3);
430 workflowAction.selectExecutionList(execution);
431 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
432 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
433 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
437 public void selectExecutionListServiceMacroActivateTest() throws Exception {
438 String gAction = "activateInstance";
439 String resource = "Service";
440 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
441 execution.setVariable("requestAction", gAction);
442 String bpmnRequest = new String(Files
443 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
444 execution.setVariable("bpmnRequest", bpmnRequest);
445 execution.setVariable("aLaCarte", false);
446 execution.setVariable("apiVersion", "7");
447 execution.setVariable("requestUri", "v6/serviceInstances/si0");
450 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
451 List<OrchestrationFlow> orchFlows =
452 createFlowList("CreateNetworkBB", "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
453 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "ActivateServiceInstanceBB");
454 northBoundRequest.setOrchestrationFlowList(orchFlows);
456 ServiceInstance serviceInstanceAAI = new ServiceInstance();
457 serviceInstanceAAI.setServiceInstanceId("si0");
458 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
459 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
460 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
461 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
462 vnf.setVnfId("vnf0");
465 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
466 vnf.getVfModules().add(vfModule);
467 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
468 vnf.getVfModules().add(vfModule2);
470 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
471 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
472 volumeGroup.setVolumeGroupId("volumeGroup0");
473 vnf.getVolumeGroups().add(volumeGroup);
475 serviceInstanceMSO.getVnfs().add(vnf);
477 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("si0");
478 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
479 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
480 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
481 workflowAction.selectExecutionList(execution);
482 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
483 assertEqualsBulkFlowName(ebbs, "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
484 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
485 "ActivateServiceInstanceBB");
486 assertEquals("volumeGroup0", ebbs.get(0).getWorkflowResourceIds().getVolumeGroupId());
487 assertEquals("volumeGroup0", ebbs.get(1).getWorkflowResourceIds().getVolumeGroupId());
488 assertEquals("testVfModuleId1", ebbs.get(2).getWorkflowResourceIds().getVfModuleId());
489 assertEquals("testVfModuleId2", ebbs.get(3).getWorkflowResourceIds().getVfModuleId());
490 assertEquals("testVfModuleId1", ebbs.get(4).getWorkflowResourceIds().getVfModuleId());
491 assertEquals("testVfModuleId2", ebbs.get(5).getWorkflowResourceIds().getVfModuleId());
492 assertEquals("vnf0", ebbs.get(6).getWorkflowResourceIds().getVnfId());
493 assertEquals("si0", ebbs.get(7).getWorkflowResourceIds().getServiceInstanceId());
498 public void selectExecutionListServiceMacroDeactivateTest() throws Exception {
499 String gAction = "deactivateInstance";
500 String resource = "Service";
501 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
502 execution.setVariable("requestAction", gAction);
503 String bpmnRequest = new String(Files
504 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
505 execution.setVariable("bpmnRequest", bpmnRequest);
506 execution.setVariable("aLaCarte", false);
507 execution.setVariable("apiVersion", "7");
508 execution.setVariable("requestUri", "v6/serviceInstances/123");
511 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
512 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateServiceInstanceBB");
513 northBoundRequest.setOrchestrationFlowList(orchFlows);
515 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
516 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
517 workflowAction.selectExecutionList(execution);
518 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
519 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(), "DeactivateServiceInstanceBB");
523 public void selectExecutionListServiceMacroEmptyServiceTest() throws Exception {
524 String gAction = "createInstance";
525 String resource = "Service";
526 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
527 execution.setVariable("requestAction", gAction);
528 String bpmnRequest = new String(Files
529 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
530 execution.setVariable("bpmnRequest", bpmnRequest);
531 execution.setVariable("aLaCarte", false);
532 execution.setVariable("apiVersion", "7");
533 execution.setVariable("requestUri", "v6/serviceInstances/123");
536 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
537 northBoundRequest.setIsToplevelflow(true);
538 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
539 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
540 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
541 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
542 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
543 northBoundRequest.setOrchestrationFlowList(orchFlows);
545 Service service = new Service();
546 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
547 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
548 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
549 workflowAction.selectExecutionList(execution);
550 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
551 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
555 public void selectExecutionListServiceMacroCreateJustNetworkTest() throws Exception {
556 String gAction = "createInstance";
557 String resource = "Service";
558 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
559 execution.setVariable("requestAction", gAction);
560 String bpmnRequest = new String(Files
561 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
562 execution.setVariable("bpmnRequest", bpmnRequest);
563 execution.setVariable("aLaCarte", false);
564 execution.setVariable("apiVersion", "7");
565 execution.setVariable("requestUri", "v6/serviceInstances/123");
568 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
569 northBoundRequest.setIsToplevelflow(true);
570 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
571 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
572 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
573 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
574 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
575 northBoundRequest.setOrchestrationFlowList(orchFlows);
577 Service service = new Service();
578 NetworkResourceCustomization networkCustomization = new NetworkResourceCustomization();
579 networkCustomization.setModelCustomizationUUID("1234");
580 service.getNetworkCustomizations().add(networkCustomization);
581 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
582 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
583 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
584 workflowAction.selectExecutionList(execution);
585 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
586 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignNetworkBB", "CreateNetworkBB",
587 "ActivateNetworkBB", "ActivateServiceInstanceBB");
591 public void selectExecutionListServiceMacroCreateWithNetworkCollectionTest() throws Exception {
592 String gAction = "createInstance";
593 String resource = "Service";
594 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
595 execution.setVariable("requestAction", gAction);
596 String bpmnRequest = new String(Files
597 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
598 execution.setVariable("bpmnRequest", bpmnRequest);
599 execution.setVariable("aLaCarte", false);
600 execution.setVariable("apiVersion", "7");
601 execution.setVariable("requestUri", "v6/serviceInstances/123");
604 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
605 northBoundRequest.setIsToplevelflow(true);
606 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
607 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
608 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
609 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
610 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
611 northBoundRequest.setOrchestrationFlowList(orchFlows);
613 Service service = new Service();
614 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
615 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
616 networkCust.setModelCustomizationUUID("123");
617 networkCustomizations.add(networkCust);
618 service.setNetworkCustomizations(networkCustomizations);
619 NetworkCollectionResourceCustomization collectionResourceCustomization =
620 new NetworkCollectionResourceCustomization();
621 collectionResourceCustomization.setModelCustomizationUUID("123");
623 CollectionResource collectionResource = new CollectionResource();
624 collectionResource.setToscaNodeType("NetworkCollection");
625 InstanceGroup instanceGroup = new InstanceGroup();
626 instanceGroup.setToscaNodeType("NetworkCollectionResource");
627 instanceGroup.setCollectionNetworkResourceCustomizations(new ArrayList<>());
628 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
629 new CollectionNetworkResourceCustomization();
630 collectionNetworkResourceCust.setModelCustomizationUUID("123");
631 collectionNetworkResourceCust.setNetworkResourceCustomization(collectionResourceCustomization);
632 instanceGroup.getCollectionNetworkResourceCustomizations().add(collectionNetworkResourceCust);
633 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
634 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
635 new CollectionResourceInstanceGroupCustomization();
636 collectionInstanceGroupCustomization.setModelCustomizationUUID("123");
637 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
638 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
639 collectionInstanceGroupCustomization.setInstanceGroup(instanceGroup);
640 collectionInstanceGroupCustomization.setCollectionResourceCust(collectionResourceCustomization);
641 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
642 collectionResource.setInstanceGroup(instanceGroup);
643 collectionResourceCustomization.setCollectionResource(collectionResource);;
644 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
645 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
646 doReturn(collectionResourceCustomization).when(catalogDbClient)
647 .getNetworkCollectionResourceCustomizationByID("123");
648 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
649 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
650 workflowAction.selectExecutionList(execution);
651 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
652 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "CreateNetworkCollectionBB", "AssignNetworkBB",
653 "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
654 "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB",
655 "ActivateServiceInstanceBB");
656 assertEquals("Network id not empty", !ebbs.get(2).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
657 assertEquals("Network id not empty", !ebbs.get(3).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
658 assertEquals("Network id not empty", !ebbs.get(4).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
659 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
660 ebbs.get(2).getWorkflowResourceIds().getNetworkId() == ebbs.get(3).getWorkflowResourceIds()
662 && ebbs.get(3).getWorkflowResourceIds().getNetworkId() == ebbs.get(4).getWorkflowResourceIds()
665 assertEquals("Network id not empty", !ebbs.get(5).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
666 assertEquals("Network id not empty", !ebbs.get(6).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
667 assertEquals("Network id not empty", !ebbs.get(7).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
668 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
669 ebbs.get(5).getWorkflowResourceIds().getNetworkId() == ebbs.get(6).getWorkflowResourceIds()
671 && ebbs.get(6).getWorkflowResourceIds().getNetworkId() == ebbs.get(7).getWorkflowResourceIds()
674 assertEquals("Network id not empty", !ebbs.get(8).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
675 assertEquals("Network id not empty", !ebbs.get(9).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
676 assertEquals("Network id not empty", !ebbs.get(10).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
677 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
678 ebbs.get(8).getWorkflowResourceIds().getNetworkId() == ebbs.get(9).getWorkflowResourceIds()
680 && ebbs.get(9).getWorkflowResourceIds().getNetworkId() == ebbs.get(10).getWorkflowResourceIds()
686 public void selectExecutionListServiceMacroCreateWithUserParams() throws Exception {
687 String gAction = "createInstance";
688 String resource = "Service";
689 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
690 execution.setVariable("requestAction", gAction);
692 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
693 execution.setVariable("bpmnRequest", bpmnRequest);
694 execution.setVariable("aLaCarte", false);
695 execution.setVariable("apiVersion", "7");
696 execution.setVariable("requestUri", "v6/serviceInstances/123");
699 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
700 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
701 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
702 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
703 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
704 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
705 northBoundRequest.setOrchestrationFlowList(orchFlows);
707 Service service = new Service();
708 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
710 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
711 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
712 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
713 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
714 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
715 HeatTemplate volumeHeatTemplate = new HeatTemplate();
716 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
717 vfModuleCustomization.setVfModule(vfModule);
719 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
720 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
721 HeatEnvironment heatEnvironment = new HeatEnvironment();
722 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
723 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
724 HeatTemplate moduleHeatTemplate = new HeatTemplate();
725 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
726 vfModuleCustomization2.setVfModule(vfModule2);
728 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
729 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
731 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
732 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
733 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
734 .thenReturn(vfModuleCustomization);
735 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
736 .thenReturn(vfModuleCustomization2);
737 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
738 .thenReturn(vfModuleCustomization3);
739 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
740 workflowAction.selectExecutionList(execution);
741 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
742 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
743 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB", "CreateVolumeGroupBB",
744 "ActivateVolumeGroupBB", "CreateVfModuleBB", "CreateVfModuleBB", "CreateVfModuleBB",
745 "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
746 "ActivateServiceInstanceBB");
747 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
748 int randomUUIDLength = UUID.randomUUID().toString().length();
749 assertEquals(randomUUIDLength, ebbs.get(1).getWorkflowResourceIds().getVnfId().length());
750 assertEquals(randomUUIDLength, ebbs.get(2).getWorkflowResourceIds().getVolumeGroupId().length());
751 assertEquals(randomUUIDLength, ebbs.get(3).getWorkflowResourceIds().getVfModuleId().length());
752 assertEquals(randomUUIDLength, ebbs.get(4).getWorkflowResourceIds().getVfModuleId().length());
753 assertEquals(randomUUIDLength, ebbs.get(5).getWorkflowResourceIds().getVfModuleId().length());
754 assertEquals(randomUUIDLength, ebbs.get(6).getWorkflowResourceIds().getVolumeGroupId().length());
755 assertEquals(randomUUIDLength, ebbs.get(7).getWorkflowResourceIds().getVolumeGroupId().length());
756 assertEquals(randomUUIDLength, ebbs.get(8).getWorkflowResourceIds().getVfModuleId().length());
757 assertEquals(randomUUIDLength, ebbs.get(9).getWorkflowResourceIds().getVfModuleId().length());
758 assertEquals(randomUUIDLength, ebbs.get(10).getWorkflowResourceIds().getVfModuleId().length());
759 assertEquals(randomUUIDLength, ebbs.get(11).getWorkflowResourceIds().getVfModuleId().length());
760 assertEquals(randomUUIDLength, ebbs.get(12).getWorkflowResourceIds().getVfModuleId().length());
761 assertEquals(randomUUIDLength, ebbs.get(13).getWorkflowResourceIds().getVfModuleId().length());
762 assertEquals(randomUUIDLength, ebbs.get(14).getWorkflowResourceIds().getVnfId().length());
763 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
764 assertEquals(true, execution.getVariable("homing"));
768 public void selectExecutionListServiceMacroDeleteTest() throws Exception {
769 String gAction = "deleteInstance";
770 String resource = "Service";
771 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
772 execution.setVariable("requestAction", gAction);
773 String bpmnRequest = new String(Files
774 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
775 execution.setVariable("bpmnRequest", bpmnRequest);
776 execution.setVariable("aLaCarte", false);
777 execution.setVariable("apiVersion", "7");
778 execution.setVariable("requestUri", "v6/serviceInstances/123");
781 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
782 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
783 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
784 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
785 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
786 northBoundRequest.setOrchestrationFlowList(orchFlows);
788 ServiceInstance serviceInstanceAAI = new ServiceInstance();
789 serviceInstanceAAI.setServiceInstanceId("aaisi123");
790 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
791 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
792 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
793 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
794 vnf.setVnfId("vnfId123");
796 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
797 vnf.getVfModules().add(vfModule);
798 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
799 vnf.getVfModules().add(vfModule2);
801 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
802 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
803 volumeGroup.setVolumeGroupId("vg123");
804 vnf.getVolumeGroups().add(volumeGroup);
806 serviceInstanceMSO.getVnfs().add(vnf);
808 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
809 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
810 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
811 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
812 workflowAction.selectExecutionList(execution);
813 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
814 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
815 "DeleteVfModuleBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB",
816 "DeactivateServiceInstanceBB", "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
817 "UnassignVnfBB", "UnassignServiceInstanceBB");
821 public void selectExecutionListServiceMacroUnassignTest() throws Exception {
822 String gAction = "unassignInstance";
823 String resource = "Service";
824 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
825 execution.setVariable("requestAction", gAction);
826 String bpmnRequest = new String(Files
827 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
828 execution.setVariable("bpmnRequest", bpmnRequest);
829 execution.setVariable("aLaCarte", false);
830 execution.setVariable("apiVersion", "7");
831 execution.setVariable("requestUri", "v6/serviceInstances/123");
834 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
835 List<OrchestrationFlow> orchFlows = createFlowList("UnassignVfModuleBB", "UnassignVolumeGroupBB",
836 "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
837 northBoundRequest.setOrchestrationFlowList(orchFlows);
839 ServiceInstance serviceInstanceAAI = new ServiceInstance();
840 serviceInstanceAAI.setServiceInstanceId("aaisi123");
841 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
842 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
843 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
844 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
845 vnf.setVnfId("vnfId123");
847 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
848 vnf.getVfModules().add(vfModule);
849 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
850 vnf.getVfModules().add(vfModule2);
852 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
853 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
854 volumeGroup.setVolumeGroupId("vg123");
855 vnf.getVolumeGroups().add(volumeGroup);
857 serviceInstanceMSO.getVnfs().add(vnf);
859 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
860 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
861 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
862 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
863 workflowAction.selectExecutionList(execution);
864 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
865 assertEqualsBulkFlowName(ebbs, "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
866 "UnassignVnfBB", "UnassignServiceInstanceBB");
870 public void selectExecutionListServiceMacroDeleteNetworkCollectionTest() throws Exception {
871 String gAction = "deleteInstance";
872 String resource = "Service";
873 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
874 execution.setVariable("requestAction", gAction);
875 String bpmnRequest = new String(Files
876 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
877 execution.setVariable("bpmnRequest", bpmnRequest);
878 execution.setVariable("aLaCarte", false);
879 execution.setVariable("apiVersion", "7");
880 execution.setVariable("requestUri", "v6/serviceInstances/123");
883 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
884 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
885 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
886 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
887 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
888 northBoundRequest.setOrchestrationFlowList(orchFlows);
890 ServiceInstance serviceInstanceAAI = new ServiceInstance();
891 serviceInstanceAAI.setServiceInstanceId("aaisi123");
892 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
893 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
895 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network =
896 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
897 network.setNetworkId("123");
898 serviceInstanceMSO.getNetworks().add(network);
899 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network2 =
900 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
901 network2.setNetworkId("321");
902 serviceInstanceMSO.getNetworks().add(network2);
904 Collection collection = new Collection();
905 serviceInstanceMSO.setCollection(collection);
907 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
908 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
909 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
910 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
911 workflowAction.selectExecutionList(execution);
912 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
913 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
914 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeleteNetworkCollectionBB",
915 "DeactivateServiceInstanceBB", "UnassignServiceInstanceBB");
919 public void selectExecutionListVnfMacroRecreateTest() throws Exception {
920 String gAction = "recreateInstance";
921 String resource = "Vnf";
922 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
923 execution.setVariable("requestAction", gAction);
925 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/VnfMacroReplace.json")));
926 execution.setVariable("bpmnRequest", bpmnRequest);
927 execution.setVariable("aLaCarte", false);
928 execution.setVariable("apiVersion", "7");
929 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/recreate");
930 execution.setVariable("serviceInstanceId", "123");
931 execution.setVariable("vnfId", "1234");
933 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
934 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
935 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
936 "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB",
937 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
938 "AAIUnsetVnfInMaintBB");
939 northBoundRequest.setOrchestrationFlowList(orchFlows);
941 ServiceInstance serviceInstanceAAI = new ServiceInstance();
942 serviceInstanceAAI.setServiceInstanceId("123");
943 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
944 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
945 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
946 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
947 vnf.setVnfId("1234");
949 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
950 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
951 vfModule.setVfModuleId("vfModule1");
952 vnf.getVfModules().add(vfModule);
953 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
954 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
955 vfModule2.setVfModuleId("vfModule2");
956 vnf.getVfModules().add(vfModule2);
958 serviceInstanceMSO.getVnfs().add(vnf);
960 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
961 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
962 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
963 false, "cloud-owner")).thenReturn(northBoundRequest);
964 workflowAction.selectExecutionList(execution);
965 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
966 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateVfModuleBB",
967 "DeactivateVfModuleBB", "DeleteVfModuleBB", "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB",
968 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
969 "AAIUnsetVnfInMaintBB");
973 public void selectExecutionListVnfMacroReplaceTest() throws Exception {
974 String gAction = "replaceInstance";
975 String resource = "Vnf";
976 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
977 execution.setVariable("requestAction", gAction);
979 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/VnfMacroReplace.json")));
980 execution.setVariable("bpmnRequest", bpmnRequest);
981 execution.setVariable("aLaCarte", false);
982 execution.setVariable("apiVersion", "7");
983 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/replace");
984 execution.setVariable("serviceInstanceId", "123");
985 execution.setVariable("vnfId", "1234");
987 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
988 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
989 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
990 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
991 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB",
992 "ChangeModelVnfBB", "ActivateVnfBB", "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB",
993 "AAIUnsetVnfInMaintBB");
994 northBoundRequest.setOrchestrationFlowList(orchFlows);
996 ServiceInstance serviceInstanceAAI = new ServiceInstance();
997 serviceInstanceAAI.setServiceInstanceId("123");
998 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
999 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
1000 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
1001 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
1002 vnf.setVnfId("1234");
1003 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
1004 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
1005 vfModule.setVfModuleId("vfModule1");
1006 vnf.getVfModules().add(vfModule);
1007 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
1008 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
1009 vfModule2.setVfModuleId("vfModule2");
1010 vnf.getVfModules().add(vfModule2);
1011 serviceInstanceMSO.getVnfs().add(vnf);
1012 VfModule vfModuleAAI = new VfModule();
1013 vfModuleAAI.setVfModuleId("vfModule2");
1014 RelationshipList relationshipList = new RelationshipList();
1015 Relationship relationship = new Relationship();
1016 relationshipList.getRelationship().add(relationship);
1017 vfModuleAAI.setRelationshipList(relationshipList);
1018 Relationships relationships = new Relationships("abc");
1019 Configuration config = new Configuration();
1020 config.setConfigurationId("configId");
1021 Optional<Configuration> configOp = Optional.of(config);
1022 Optional<Relationships> relationshipsOp = Optional.of(relationships);
1024 doReturn(relationshipsOp).when(workflowActionUtils).extractRelationshipsVnfc(isA(Relationships.class));
1025 doReturn(configOp).when(workflowActionUtils).extractRelationshipsConfiguration(isA(Relationships.class));
1026 doReturn(vfModuleAAI).when(bbSetupUtils).getAAIVfModule("1234", "vfModule2");
1027 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
1028 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
1029 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1030 false, "cloud-owner")).thenReturn(northBoundRequest);
1031 workflowAction.selectExecutionList(execution);
1032 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1033 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateFabricConfigurationBB",
1034 "UnassignFabricConfigurationBB", "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
1035 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "ChangeModelVfModuleBB",
1036 "CreateVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB",
1037 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ChangeModelVnfBB", "ActivateVnfBB",
1038 "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
1039 for (ExecuteBuildingBlock executeBuildingBlock : ebbs) {
1040 assertEquals("123", executeBuildingBlock.getWorkflowResourceIds().getServiceInstanceId());
1046 public void selectExecutionListNetworkCollectionMacroCreate() throws Exception {
1047 String gAction = "createInstance";
1048 String resource = "NetworkCollection";
1049 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1050 execution.setVariable("requestAction", gAction);
1051 String bpmnRequest = new String(
1052 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/CreateNetworkCollection.json")));
1053 execution.setVariable("bpmnRequest", bpmnRequest);
1054 execution.setVariable("aLaCarte", false);
1055 execution.setVariable("apiVersion", "7");
1056 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
1059 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1060 List<OrchestrationFlow> orchFlows = createFlowList("CreateNetworkCollectionBB", "AssignNetworkBB",
1061 "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB");
1062 northBoundRequest.setOrchestrationFlowList(orchFlows);
1064 Service service = new Service();
1065 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
1066 CollectionResource collectionResource = new CollectionResource();
1067 collectionResource.setToscaNodeType("Data NetworkCollection Data");
1068 collectionResourceCustomization.setCollectionResource(collectionResource);
1069 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
1071 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1072 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1073 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1074 workflowAction.selectExecutionList(execution);
1075 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1076 assertEqualsBulkFlowName(ebbs, "CreateNetworkCollectionBB", "AssignNetworkBB", "CreateNetworkBB",
1077 "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
1078 "ActivateNetworkCollectionBB");
1083 public void selectExecutionListNetworkCollectionMacroDelete() throws Exception {
1084 String gAction = "deleteInstance";
1085 String resource = "NetworkCollection";
1086 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1087 execution.setVariable("requestAction", gAction);
1088 String bpmnRequest = new String(
1089 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/CreateNetworkCollection.json")));
1090 execution.setVariable("bpmnRequest", bpmnRequest);
1091 execution.setVariable("aLaCarte", false);
1092 execution.setVariable("apiVersion", "7");
1093 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
1095 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1096 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateNetworkBB", "DeleteNetworkBB",
1097 "UnassignNetworkBB", "DeactivateNetworkCollectionBB", "DeleteNetworkCollectionBB");
1098 northBoundRequest.setOrchestrationFlowList(orchFlows);
1100 Service service = new Service();
1101 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
1102 CollectionResource collectionResource = new CollectionResource();
1103 collectionResource.setToscaNodeType("Data NetworkCollection Data");
1104 collectionResourceCustomization.setCollectionResource(collectionResource);
1105 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
1107 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1108 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1109 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1110 workflowAction.selectExecutionList(execution);
1111 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1112 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1113 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeactivateNetworkCollectionBB",
1114 "DeleteNetworkCollectionBB");
1118 public void selectExecutionListALaCarteVfModuleNoFabricCreateTest() throws Exception {
1119 String gAction = "createInstance";
1120 String resource = "VfModule";
1121 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1122 execution.setVariable("requestAction", gAction);
1123 String bpmnRequest =
1124 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1125 execution.setVariable("bpmnRequest", bpmnRequest);
1126 execution.setVariable("aLaCarte", true);
1127 execution.setVariable("apiVersion", "7");
1128 execution.setVariable("requestUri",
1129 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1132 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1133 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1134 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1135 northBoundRequest.setOrchestrationFlowList(orchFlows);
1137 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1138 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1139 workflowAction.selectExecutionList(execution);
1140 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1141 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB");
1145 public void selectExecutionListALaCarteVfModuleFabricCreateTest() throws Exception {
1146 String gAction = "createInstance";
1147 String resource = "VfModule";
1148 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1149 execution.setVariable("requestAction", gAction);
1150 String bpmnRequest =
1151 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1152 execution.setVariable("bpmnRequest", bpmnRequest);
1153 execution.setVariable("aLaCarte", true);
1154 execution.setVariable("apiVersion", "7");
1155 execution.setVariable("requestUri",
1156 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1158 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1159 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1160 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1161 northBoundRequest.setOrchestrationFlowList(orchFlows);
1163 List<CvnfcCustomization> cvnfcCustomizations = new ArrayList<CvnfcCustomization>();
1164 CvnfcCustomization cvnfcCustomization = new CvnfcCustomization();
1165 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1166 new CvnfcConfigurationCustomization();
1167 ConfigurationResource configurationResource = new ConfigurationResource();
1168 configurationResource.setToscaNodeType("FabricConfiguration");
1169 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1170 vnfVfmoduleCvnfcConfigurationCustomization.setModelInstanceName("modelInstanceName1");
1171 vnfVfmoduleCvnfcConfigurationCustomization.setCvnfcCustomization(cvnfcCustomization);
1172 List<CvnfcConfigurationCustomization> custSet = new ArrayList<CvnfcConfigurationCustomization>();
1173 custSet.add(vnfVfmoduleCvnfcConfigurationCustomization);
1174 cvnfcCustomization.setCvnfcConfigurationCustomization(custSet);
1175 cvnfcCustomization.setDescription("description");
1176 cvnfcCustomizations.add(cvnfcCustomization);
1178 CvnfcCustomization cvnfcCustomization2 = new CvnfcCustomization();
1179 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization2 =
1180 new CvnfcConfigurationCustomization();
1181 ConfigurationResource configurationResource2 = new ConfigurationResource();
1182 configurationResource2.setToscaNodeType("FabricConfiguration");
1183 vnfVfmoduleCvnfcConfigurationCustomization2.setConfigurationResource(configurationResource2);
1184 vnfVfmoduleCvnfcConfigurationCustomization2.setModelInstanceName("modelInstanceName2");
1185 vnfVfmoduleCvnfcConfigurationCustomization2.setCvnfcCustomization(cvnfcCustomization2);
1186 List<CvnfcConfigurationCustomization> custSet2 = new ArrayList<CvnfcConfigurationCustomization>();
1187 custSet2.add(vnfVfmoduleCvnfcConfigurationCustomization2);
1188 cvnfcCustomization2.setCvnfcConfigurationCustomization(custSet2);
1189 cvnfcCustomization2.setDescription("description2");
1190 cvnfcCustomizations.add(cvnfcCustomization2);
1192 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1193 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1194 // when(catalogDbClient.getCvnfcCustomizationByVnfCustomizationUUIDAndVfModuleCustomizationUUID("fc25201d-36d6-43a3-8d39-fdae88e526ae",
1195 // "9a6d01fd-19a7-490a-9800-460830a12e0b")).thenReturn(cvnfcCustomizations);
1196 workflowAction.selectExecutionList(execution);
1197 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1198 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1199 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "AssignFabricConfigurationBB",
1200 "ActivateFabricConfigurationBB");
1204 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceTest() throws Exception {
1205 String gAction = "replaceInstance";
1206 String resource = "VfModule";
1207 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1208 execution.setVariable("requestAction", gAction);
1209 String bpmnRequest =
1210 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1211 execution.setVariable("bpmnRequest", bpmnRequest);
1212 execution.setVariable("aLaCarte", true);
1213 execution.setVariable("apiVersion", "7");
1214 execution.setVariable("requestUri",
1215 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1217 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1218 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1219 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1220 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1221 workflowAction.selectExecutionList(execution);
1222 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1224 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1225 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1226 "ChangeModelServiceInstanceBB");
1230 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1231 String gAction = "replaceInstanceRetainAssignments";
1232 String resource = "VfModule";
1233 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1234 execution.setVariable("requestAction", gAction);
1235 String bpmnRequest =
1236 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1237 execution.setVariable("bpmnRequest", bpmnRequest);
1238 execution.setVariable("aLaCarte", true);
1239 execution.setVariable("apiVersion", "7");
1240 execution.setVariable("requestUri",
1241 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1243 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1244 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1245 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1246 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1247 workflowAction.selectExecutionList(execution);
1248 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1250 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1251 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1255 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceTest() throws Exception {
1256 String gAction = "replaceInstance";
1257 String resource = "VfModule";
1258 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1259 execution.setVariable("requestAction", gAction);
1260 String bpmnRequest =
1261 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1262 execution.setVariable("bpmnRequest", bpmnRequest);
1263 execution.setVariable("aLaCarte", true);
1264 execution.setVariable("apiVersion", "7");
1265 execution.setVariable("requestUri",
1266 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1267 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1268 execution.setVariable("vfModuleId", "1234");
1270 VolumeGroup volumeGroup = new VolumeGroup();
1271 volumeGroup.setVolumeGroupId("volumeGroupId");
1272 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1273 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1274 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1275 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1276 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1277 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1278 workflowAction.selectExecutionList(execution);
1279 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1281 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1282 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVfModuleBB",
1283 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1287 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceRetainAssignmentsTest()
1289 String gAction = "replaceInstanceRetainAssignments";
1290 String resource = "VfModule";
1291 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1292 execution.setVariable("requestAction", gAction);
1293 String bpmnRequest =
1294 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1295 execution.setVariable("bpmnRequest", bpmnRequest);
1296 execution.setVariable("aLaCarte", true);
1297 execution.setVariable("apiVersion", "7");
1298 execution.setVariable("requestUri",
1299 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1300 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1301 execution.setVariable("vfModuleId", "1234");
1303 VolumeGroup volumeGroup = new VolumeGroup();
1304 volumeGroup.setVolumeGroupId("volumeGroupId");
1305 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1306 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1308 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1309 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1310 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1311 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1312 workflowAction.selectExecutionList(execution);
1313 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1315 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1316 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
1317 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1321 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceTest() throws Exception {
1322 String gAction = "replaceInstance";
1323 String resource = "VfModule";
1324 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1325 execution.setVariable("requestAction", gAction);
1326 String bpmnRequest =
1327 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1328 execution.setVariable("bpmnRequest", bpmnRequest);
1329 execution.setVariable("aLaCarte", true);
1330 execution.setVariable("apiVersion", "7");
1331 execution.setVariable("requestUri",
1332 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1333 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1334 execution.setVariable("vfModuleId", "1234");
1336 VolumeGroup volumeGroup = new VolumeGroup();
1337 volumeGroup.setVolumeGroupId("volumeGroupId");
1338 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1339 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1341 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1342 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1343 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1344 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1345 vfModuleCustomization.setVfModule(vfModule);
1346 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1347 .thenReturn(vfModuleCustomization);
1349 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1350 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1351 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1352 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1353 workflowAction.selectExecutionList(execution);
1354 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1356 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1357 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1358 "ChangeModelServiceInstanceBB");
1362 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1363 String gAction = "replaceInstanceRetainAssignments";
1364 String resource = "VfModule";
1365 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1366 execution.setVariable("requestAction", gAction);
1367 String bpmnRequest =
1368 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1369 execution.setVariable("bpmnRequest", bpmnRequest);
1370 execution.setVariable("aLaCarte", true);
1371 execution.setVariable("apiVersion", "7");
1372 execution.setVariable("requestUri",
1373 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1374 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1375 execution.setVariable("vfModuleId", "1234");
1377 VolumeGroup volumeGroup = new VolumeGroup();
1378 volumeGroup.setVolumeGroupId("volumeGroupId");
1379 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1380 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1382 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1383 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1384 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1385 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1386 vfModuleCustomization.setVfModule(vfModule);
1387 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1388 .thenReturn(vfModuleCustomization);
1390 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1391 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1392 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1393 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1394 workflowAction.selectExecutionList(execution);
1395 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1397 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1398 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1402 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceTest() throws Exception {
1403 String gAction = "replaceInstance";
1404 String resource = "VfModule";
1405 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1406 execution.setVariable("requestAction", gAction);
1407 String bpmnRequest =
1408 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1409 execution.setVariable("bpmnRequest", bpmnRequest);
1410 execution.setVariable("aLaCarte", true);
1411 execution.setVariable("apiVersion", "7");
1412 execution.setVariable("requestUri",
1413 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1414 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1415 execution.setVariable("vfModuleId", "1234");
1417 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1418 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1419 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1420 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1421 vfModuleCustomization.setVfModule(vfModule);
1422 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1423 .thenReturn(vfModuleCustomization);
1425 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1426 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1427 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1428 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1429 workflowAction.selectExecutionList(execution);
1430 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1432 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1433 "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1434 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1438 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceRetainAssignmentsTest()
1440 String gAction = "replaceInstanceRetainAssignments";
1441 String resource = "VfModule";
1442 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1443 execution.setVariable("requestAction", gAction);
1444 String bpmnRequest =
1445 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1446 execution.setVariable("bpmnRequest", bpmnRequest);
1447 execution.setVariable("aLaCarte", true);
1448 execution.setVariable("apiVersion", "7");
1449 execution.setVariable("requestUri",
1450 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1451 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1452 execution.setVariable("vfModuleId", "1234");
1454 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1455 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1456 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1457 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1458 vfModuleCustomization.setVfModule(vfModule);
1459 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1460 .thenReturn(vfModuleCustomization);
1462 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1463 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1464 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1465 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1466 workflowAction.selectExecutionList(execution);
1467 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1469 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "AssignVolumeGroupBB",
1470 "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
1471 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1475 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceTest() throws Exception {
1476 String gAction = "replaceInstance";
1477 String resource = "VfModule";
1478 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1479 execution.setVariable("requestAction", gAction);
1480 String bpmnRequest = new String(
1481 Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleReplaceRebuildVolumeGroups.json")));
1482 execution.setVariable("bpmnRequest", bpmnRequest);
1483 execution.setVariable("aLaCarte", true);
1484 execution.setVariable("apiVersion", "7");
1485 execution.setVariable("requestUri",
1486 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1487 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1488 execution.setVariable("vfModuleId", "1234");
1490 VolumeGroup volumeGroup = new VolumeGroup();
1491 volumeGroup.setVolumeGroupId("volumeGroupId");
1492 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1493 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1495 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1496 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1497 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1498 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1499 vfModuleCustomization.setVfModule(vfModule);
1500 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1501 .thenReturn(vfModuleCustomization);
1503 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1504 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1505 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1506 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1507 workflowAction.selectExecutionList(execution);
1508 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1510 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1511 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
1512 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
1513 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1517 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1518 String gAction = "replaceInstanceRetainAssignments";
1519 String resource = "VfModule";
1520 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1521 execution.setVariable("requestAction", gAction);
1522 String bpmnRequest = new String(
1523 Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleReplaceRebuildVolumeGroups.json")));
1524 execution.setVariable("bpmnRequest", bpmnRequest);
1525 execution.setVariable("aLaCarte", true);
1526 execution.setVariable("apiVersion", "7");
1527 execution.setVariable("requestUri",
1528 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1529 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1530 execution.setVariable("vfModuleId", "1234");
1532 VolumeGroup volumeGroup = new VolumeGroup();
1533 volumeGroup.setVolumeGroupId("volumeGroupId");
1534 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1535 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1537 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1538 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1539 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1540 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1541 vfModuleCustomization.setVfModule(vfModule);
1542 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1543 .thenReturn(vfModuleCustomization);
1545 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1546 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1547 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1548 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1549 workflowAction.selectExecutionList(execution);
1550 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1552 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1553 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB", "ChangeModelVfModuleBB",
1554 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1555 "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1560 public void selectExecutionListALaCarteVfModuleFabricDeleteTest() throws Exception {
1561 String gAction = "deleteInstance";
1562 String resource = "VfModule";
1563 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1564 execution.setVariable("requestAction", gAction);
1565 String bpmnRequest =
1566 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1567 execution.setVariable("bpmnRequest", bpmnRequest);
1568 execution.setVariable("aLaCarte", true);
1569 execution.setVariable("apiVersion", "7");
1570 execution.setVariable("requestUri",
1571 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1573 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1574 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1575 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1576 northBoundRequest.setOrchestrationFlowList(orchFlows);
1578 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1579 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1581 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1582 vnf.setVnfId("vnf0");
1583 vnf.setModelCustomizationId("modelCustomizationId");
1584 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1586 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1587 vfModule.setModelCustomizationId("modelCustomizationId");
1588 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1590 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1591 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1592 vnfc.setModelInvariantId("modelInvariantId");
1593 vnfc.setVnfcName("testVnfcName");
1595 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1598 List<org.onap.aai.domain.yang.Configuration> configurations =
1599 new ArrayList<org.onap.aai.domain.yang.Configuration>();
1600 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1601 configuration.setConfigurationId("configurationId");
1602 configuration.setModelCustomizationId("modelCustimizationId");
1603 configuration.setConfigurationName("testConfigurationName");
1604 configurations.add(configuration);
1605 doReturn(configurations).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1608 doReturn("testName").when(SPY_workflowAction).getVnfcNameForConfiguration(anyObject());
1610 SPY_workflowAction.selectExecutionList(execution);
1611 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1612 assertEqualsBulkFlowName(ebbs, "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB",
1613 "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1617 public void getConfigBuildingBlocksNoVfModuleFabricDeleteTest() throws Exception {
1618 String gAction = "deleteInstance";
1619 ObjectMapper mapper = new ObjectMapper();
1620 WorkflowType resourceType = WorkflowType.VFMODULE;
1621 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1622 execution.setVariable("requestAction", gAction);
1623 String bpmnRequest =
1624 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1625 execution.setVariable("bpmnRequest", bpmnRequest);
1626 execution.setVariable("vnfId", "1234");
1627 execution.setVariable("vfModuleId", "vfModuleId1234");
1628 execution.setVariable("requestUri",
1629 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1630 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1631 RequestDetails requestDetails = sIRequest.getRequestDetails();
1632 String requestAction = "deleteInstance";
1633 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1634 boolean aLaCarte = true;
1635 String apiVersion = "7";
1636 String vnfType = "vnfType";
1637 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1638 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1639 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1640 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1642 thrown.expect(AAIEntityNotFoundException.class);
1643 thrown.expectMessage(containsString(
1644 "No matching VfModule is found in Generic-Vnf in AAI for vnfId: 1234 and vfModuleId : vfModuleId1234"));
1646 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1647 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1649 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1650 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1651 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1652 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1654 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1655 vnf.setVnfId("vnf0");
1656 vnf.setModelCustomizationId("modelCustomizationId");
1657 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1659 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1660 vfModule.setModelCustomizationId("modelCustomizationId");
1661 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(null);
1663 SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1667 public void selectExecutionListALaCarteVfModuleNoFabricDeleteTest() throws Exception {
1668 String gAction = "deleteInstance";
1669 String resource = "VfModule";
1670 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1671 execution.setVariable("requestAction", gAction);
1672 String bpmnRequest =
1673 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1674 execution.setVariable("bpmnRequest", bpmnRequest);
1675 execution.setVariable("aLaCarte", true);
1676 execution.setVariable("apiVersion", "7");
1677 execution.setVariable("requestUri",
1678 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1680 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1681 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1682 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1683 northBoundRequest.setOrchestrationFlowList(orchFlows);
1685 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1686 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1688 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1689 vnf.setVnfId("vnf0");
1690 vnf.setModelCustomizationId("modelCustomizationId");
1691 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1693 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1694 vfModule.setModelCustomizationId("modelCustomizationId");
1695 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1697 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1698 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1699 vnfc.setModelInvariantId("modelInvariantId");
1700 vnfc.setVnfcName("testVnfcName");
1702 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1705 List<org.onap.aai.domain.yang.Configuration> configurations =
1706 new ArrayList<org.onap.aai.domain.yang.Configuration>();
1707 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1708 doReturn(configurations).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1711 doReturn("testName").when(SPY_workflowAction).getVnfcNameForConfiguration(anyObject());
1713 SPY_workflowAction.selectExecutionList(execution);
1714 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1715 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1719 public void selectExecutionListMacroResumeTest() throws Exception {
1720 String gAction = "createInstance";
1721 String resource = "Service";
1722 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1723 execution.setVariable("requestAction", gAction);
1724 String bpmnRequest =
1725 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
1726 execution.setVariable("bpmnRequest", bpmnRequest);
1727 execution.setVariable("aLaCarte", false);
1728 execution.setVariable("apiVersion", "7");
1729 execution.setVariable("requestUri", "v6/serviceInstances/123");
1731 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1732 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1733 northBoundRequest.setOrchestrationFlowList(orchFlows);
1735 Service service = new Service();
1736 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
1738 ServiceInstance si = new ServiceInstance();
1740 when(bbSetupUtils.getAAIServiceInstanceById("123")).thenReturn(si);
1741 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1743 String flowsToExecuteString =
1744 "[{\"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\"}}]";
1745 ObjectMapper om = new ObjectMapper();
1746 List<ExecuteBuildingBlock> flowsToExecute = null;
1748 ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
1749 flowsToExecute = Arrays.asList(asArray);
1750 } catch (Exception e) {
1751 e.printStackTrace();
1754 when(bbSetupUtils.loadOriginalFlowExecutionPath(anyString())).thenReturn(flowsToExecute);
1756 workflowAction.selectExecutionList(execution);
1757 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1758 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB");
1762 public void getRelatedResourcesInVfModuleTest() throws Exception {
1763 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1764 vnfc.setModelInvariantId("modelInvariantId");
1765 vnfc.setVnfcName("testVnfcName");
1767 String vfncPayload =
1768 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/vnfcResponse.json")));
1769 AAIResultWrapper vfncWrapper = new AAIResultWrapper(vfncPayload);
1771 String configurationPayload =
1772 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/configurationResponse.json")));
1773 AAIResultWrapper configurationWrapper = new AAIResultWrapper(configurationPayload);
1774 List<AAIResultWrapper> configurationResultWrappers = new ArrayList<AAIResultWrapper>();
1775 configurationResultWrappers.add(configurationWrapper);
1777 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VNFC, vnfc.getVnfcName());
1778 when(bbSetupUtils.getAAIResourceDepthOne(uri)).thenReturn(vfncWrapper);
1780 doReturn(configurationResultWrappers).when(SPY_workflowAction).getResultWrappersFromRelationships(anyObject(),
1782 List<org.onap.aai.domain.yang.Configuration> configurationsList = SPY_workflowAction.getRelatedResourcesInVnfc(
1783 vnfc, org.onap.aai.domain.yang.Configuration.class, AAIObjectType.CONFIGURATION);
1784 assertEquals(1, configurationsList.size());
1785 assertEquals("testConfigurationId", configurationsList.get(0).getConfigurationId());
1789 * WorkflowActionBB Tests
1793 public void pluralTest() {
1794 List<String> items = Arrays.asList("serviceInstances, Service", "vnfs, Vnf", "vfModules, VfModule",
1795 "networks, Network", "invalidNames, invalidNames");
1796 items.forEach(item -> {
1797 String[] split = item.split(",");
1798 String type = split[0].trim();
1799 String expected = split[1].trim();
1800 assertThat(workflowAction.convertTypeFromPlural(type), equalTo(expected));
1805 public void sortExecutionPathByObjectForVlanTaggingCreateTest() throws Exception {
1806 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1808 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("0");
1809 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1810 executeFlows.add(ebb);
1812 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("1");
1813 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1814 executeFlows.add(ebb2);
1816 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("0");
1817 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1818 executeFlows.add(ebb3);
1820 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("1");
1821 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1822 executeFlows.add(ebb4);
1824 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("0");
1825 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1826 executeFlows.add(ebb5);
1828 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("1");
1829 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1830 executeFlows.add(ebb6);
1832 List<ExecuteBuildingBlock> sorted =
1833 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "createInstance");
1834 assertEqualsBulkFlowName(sorted, "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB",
1835 "CreateNetworkBB", "ActivateNetworkBB");
1839 public void sortExecutionPathByObjectForVlanTaggingDeleteTest() throws Exception {
1840 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1842 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("0");
1843 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1844 executeFlows.add(ebb);
1846 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("1");
1847 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1848 executeFlows.add(ebb2);
1850 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("0");
1851 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1852 executeFlows.add(ebb3);
1854 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("1");
1855 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1856 executeFlows.add(ebb4);
1858 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("0");
1859 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1860 executeFlows.add(ebb5);
1862 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("1");
1863 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1864 executeFlows.add(ebb6);
1866 List<ExecuteBuildingBlock> sorted =
1867 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "deleteInstance");
1868 assertEqualsBulkFlowName(sorted, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1869 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB");
1873 public void queryNorthBoundRequestCatalogDbNestedTest() throws MalformedURLException {
1874 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1875 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
1876 "VNF-Macro-Replace", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
1877 northBoundRequest.setOrchestrationFlowList(orchFlows);
1878 List<OrchestrationFlow> macroFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1879 "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB");
1881 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner("replaceInstance",
1882 "Vnf", false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1883 when(catalogDbClient.getOrchestrationFlowByAction("VNF-Macro-Replace")).thenReturn(macroFlows);
1884 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "replaceInstance",
1885 WorkflowType.VNF, false, "my-custom-cloud-owner");
1886 assertEquals(flows.get(0).getFlowName(), "AAICheckVnfInMaintBB");
1887 assertEquals(flows.get(1).getFlowName(), "AAISetVnfInMaintBB");
1888 assertEquals(flows.get(2).getFlowName(), "DeactivateVfModuleBB");
1889 assertEquals(flows.get(3).getFlowName(), "DeleteVfModuleBB");
1890 assertEquals(flows.get(4).getFlowName(), "DeactivateVnfBB");
1891 assertEquals(flows.get(5).getFlowName(), "CreateVfModuleBB");
1892 assertEquals(flows.get(6).getFlowName(), "ActivateVfModuleBB");
1893 assertEquals(flows.get(7).getFlowName(), "ActivateVnfBB");
1894 assertEquals(flows.get(8).getFlowName(), "SDNOVnfHealthCheckBB");
1895 assertEquals(flows.get(9).getFlowName(), "AAIUnsetVnfInMaintBB");
1899 public void queryNorthBoundRequestCatalogDbTransportTest() throws MalformedURLException {
1900 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1901 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1902 northBoundRequest.setOrchestrationFlowList(orchFlows);
1903 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwnerAndServiceType(
1904 "createInstance", "Service", true, "my-custom-cloud-owner", "TRANSPORT")).thenReturn(northBoundRequest);
1906 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "createInstance",
1907 WorkflowType.SERVICE, true, "my-custom-cloud-owner", "TRANSPORT");
1908 assertEquals(flows.get(0).getFlowName(), "AssignServiceInstanceBB");
1912 public void extractResourceIdAndTypeFromUriTest() {
1913 String uri = "/v6/serviceInstances/123";
1914 String uri2 = "/v6/serviceInstances/123/vnfs/1234";
1915 String uri3 = "/v6/serviceInstances";
1916 String uri4 = "/v6/serviceInstances/assign";
1917 String uri5 = "'/v6/serviceInstances/123/vnfs";
1918 String uri6 = "/v6/serviceInstances/123/vnfs/1234/someAction";
1919 String uri7 = "/v6/serviceInstances/123/vnfs/1234/vfModules/5678/replace";
1920 String uri8 = "/v6/serviceInstances/123/vnfs/1234/vfModules/scaleOut";
1921 Resource expected1 = new Resource(WorkflowType.SERVICE, "123", true);
1922 Resource expected2 = new Resource(WorkflowType.VNF, "1234", false);
1923 Resource expected3 = new Resource(WorkflowType.VNF, "1234", false);
1924 Resource expected4 = new Resource(WorkflowType.VFMODULE, "5678", false);
1925 Resource result = workflowAction.extractResourceIdAndTypeFromUri(uri);
1926 assertEquals(expected1.getResourceId(), result.getResourceId());
1927 assertEquals(expected1.getResourceType(), result.getResourceType());
1928 result = workflowAction.extractResourceIdAndTypeFromUri(uri2);
1929 assertEquals(expected2.getResourceId(), result.getResourceId());
1930 assertEquals(expected2.getResourceType(), result.getResourceType());
1931 result = workflowAction.extractResourceIdAndTypeFromUri(uri3);
1932 assertEquals("Service", result.getResourceType().toString());
1933 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1934 result = workflowAction.extractResourceIdAndTypeFromUri(uri4);
1935 assertEquals("Service", result.getResourceType().toString());
1936 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1937 result = workflowAction.extractResourceIdAndTypeFromUri(uri5);
1938 assertEquals("Vnf", result.getResourceType().toString());
1939 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1940 result = workflowAction.extractResourceIdAndTypeFromUri(uri6);
1941 assertEquals(expected3.getResourceId(), result.getResourceId());
1942 assertEquals(expected3.getResourceType(), result.getResourceType());
1943 result = workflowAction.extractResourceIdAndTypeFromUri(uri7);
1944 assertEquals(expected4.getResourceId(), result.getResourceId());
1945 assertEquals(expected4.getResourceType(), result.getResourceType());
1946 result = workflowAction.extractResourceIdAndTypeFromUri(uri8);
1947 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1948 assertEquals("VfModule", result.getResourceType().toString());
1953 public void extractResourceIdAndTypeFromUriInvalidTypeTest() {
1954 this.expectedException.expect(IllegalArgumentException.class);
1955 this.expectedException.expectMessage(containsString("Uri could not be parsed. No type found."));
1956 workflowAction.extractResourceIdAndTypeFromUri("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace");
1960 public void extractResourceIdAndTypeFromUriInvalidUriTest() {
1961 this.expectedException.expect(IllegalArgumentException.class);
1962 this.expectedException.expectMessage(containsString("Uri could not be parsed:"));
1963 workflowAction.extractResourceIdAndTypeFromUri("something that doesn't match anything");
1967 public void extractResourceIdAndTypeFromUriResumeTest() {
1968 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1969 "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");
1970 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1974 public void extractResourceIdAndTypeFromUriReplaceResumeTest() {
1975 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1976 "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");
1977 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1981 public void extractResourceIdAndTypeFromUriDeActiveResumeTest() {
1982 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1983 "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");
1984 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1988 public void extractResourceIdAndTypeFromUriResumeIdOnly() {
1989 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1990 "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");
1991 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1995 public void isUriResumeTest() {
1996 assertTrue(workflowAction.isUriResume(
1997 "http://localhost:9100/onap/so/infra/orchestrationRequests/v7/requests/2f8ab587-ef6a-4456-b7b2-d73f9363dabd/resume"));
1998 assertTrue(workflowAction.isUriResume(
1999 " http://localhost:9100/onap/so/infra/serviceInstantiation/v7/serviceInstances/4ff87c63-461b-4d83-8121-d351e6db216c/vnfs/eea9b93b-b5b9-4fad-9c35-12d52e4b683f/vfModules/33cb74cd-9cb3-4090-a3c0-1b8c8e235847/resume"));
2001 assertFalse(workflowAction.isUriResume("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace"));
2005 public void isRequestMacroServiceResumeTest() {
2006 ServiceInstance si = new ServiceInstance();
2007 when(bbSetupUtils.getAAIServiceInstanceById(anyString())).thenReturn(si);
2008 assertFalse(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", ""));
2009 assertTrue(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", "123"));
2013 public void populateResourceIdsFromApiHandlerTest() {
2014 execution.setVariable("serviceInstanceId", "123");
2015 execution.setVariable("vnfId", "888");
2016 WorkflowResourceIds x = workflowAction.populateResourceIdsFromApiHandler(execution);
2017 assertEquals("123", x.getServiceInstanceId());
2018 assertEquals("888", x.getVnfId());
2019 assertNull(x.getVolumeGroupId());
2022 private RequestDetails setupRequestDetails(String globalSubscriberId, String subscriptionServiceType,
2023 String modelCustomizationId) {
2024 RequestDetails reqDetails = new RequestDetails();
2025 SubscriberInfo subInfo = new SubscriberInfo();
2026 subInfo.setGlobalSubscriberId(globalSubscriberId);
2027 reqDetails.setSubscriberInfo(subInfo);
2028 RequestParameters reqParams = new RequestParameters();
2029 reqParams.setSubscriptionServiceType(subscriptionServiceType);
2030 reqDetails.setRequestParameters(reqParams);
2031 ModelInfo modelInfo = new ModelInfo();
2032 modelInfo.setModelCustomizationId(modelCustomizationId);
2033 reqDetails.setModelInfo(modelInfo);
2038 public void validateResourceIdInAAIVnfTest() throws Exception {
2039 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2040 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2041 workflowResourceIds.setServiceInstanceId("siId123");
2043 GenericVnf vnf = new GenericVnf();
2044 vnf.setVnfId("id123");
2045 vnf.setVnfName("vnfName123");
2046 vnf.setModelCustomizationId("1234567");
2047 Optional<GenericVnf> opVnf = Optional.of(vnf);
2048 GenericVnf vnf2 = new GenericVnf();
2049 vnf2.setVnfId("id123");
2050 vnf2.setVnfName("vnfName222");
2051 vnf2.setModelCustomizationId("222");
2052 Optional<GenericVnf> opVnf2 = Optional.of(vnf2);
2053 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2054 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName222")).thenReturn(opVnf2);
2055 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2056 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName123", reqDetails,
2057 workflowResourceIds);
2058 assertEquals("id123", id);
2059 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "111111", reqDetails,
2060 workflowResourceIds);
2061 assertEquals("generatedId123", id2);
2063 this.expectedException.expect(DuplicateNameException.class);
2064 this.expectedException.expectMessage(containsString(
2065 "generic-vnf with name (vnfName222), same parent and different customization id (222) already exists. The name must be unique."));
2066 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName222", reqDetails,
2067 workflowResourceIds);
2071 public void validateResourceIdInAAIVnfNotGloballyUniqueTest() throws Exception {
2072 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2073 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2074 workflowResourceIds.setServiceInstanceId("siId123");
2077 GenericVnfs genericVnfs = new GenericVnfs();
2078 GenericVnf vnf3 = new GenericVnf();
2079 vnf3.setVnfId("id123");
2080 vnf3.setVnfName("vnfName333");
2081 genericVnfs.getGenericVnf().add(vnf3);
2082 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName333")).thenReturn(Optional.empty());
2083 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName333")).thenReturn(genericVnfs);
2085 this.expectedException.expect(DuplicateNameException.class);
2086 this.expectedException.expectMessage(containsString(
2087 "generic-vnf with name (vnfName333) id (id123) and different parent relationship already exists. The name must be unique."));
2088 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName333", reqDetails,
2089 workflowResourceIds);
2093 public void validateResourceIdInAAINetworkTest() throws Exception {
2094 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2095 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2096 workflowResourceIds.setServiceInstanceId("siId123");
2099 L3Network network = new L3Network();
2100 network.setNetworkId("id123");
2101 network.setNetworkName("name123");
2102 network.setModelCustomizationId("1234567");
2103 workflowResourceIds.setServiceInstanceId("siId123");
2104 Optional<L3Network> opNetwork = Optional.of(network);
2105 L3Network network2 = new L3Network();
2106 network2.setNetworkId("id123");
2107 network2.setNetworkName("networkName222");
2108 network2.setModelCustomizationId("222");
2109 Optional<L3Network> opNetwork2 = Optional.of(network2);
2110 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2111 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "networkName222"))
2112 .thenReturn(opNetwork2);
2113 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2114 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "name123",
2115 reqDetails, workflowResourceIds);
2116 assertEquals("id123", id);
2117 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "111111",
2118 reqDetails, workflowResourceIds);
2119 assertEquals("generatedId123", id2);
2121 this.expectedException.expect(DuplicateNameException.class);
2122 this.expectedException.expectMessage(containsString(
2123 "l3Network with name (networkName222), same parent and different customization id (222) already exists. The name must be unique."));
2124 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName222", reqDetails,
2125 workflowResourceIds);
2129 public void validateNetworkResourceNameExistsInAAITest() throws Exception {
2130 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2131 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2132 workflowResourceIds.setServiceInstanceId("siId123");
2135 L3Network network = new L3Network();
2136 network.setNetworkId("id123");
2137 network.setNetworkName("name123");
2138 network.setModelCustomizationId("1234567");
2139 workflowResourceIds.setServiceInstanceId("siId123");
2141 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("networkName333", "111111"))
2142 .thenReturn(Optional.empty());
2143 when(bbSetupUtils.existsAAINetworksGloballyByName("networkName333")).thenReturn(true);
2145 this.expectedException.expect(DuplicateNameException.class);
2146 this.expectedException.expectMessage(containsString(
2147 "l3Network with name (networkName333) id (siId123) and different parent relationship already exists. The name must be unique."));
2148 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName333", reqDetails,
2149 workflowResourceIds);
2153 public void validateResourceIdInAAIVfModuleTest() throws Exception {
2154 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2155 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2156 workflowResourceIds.setServiceInstanceId("siId123");
2158 GenericVnf vnf = new GenericVnf();
2159 vnf.setVnfId("id123");
2160 vnf.setVnfName("vnfName123");
2161 vnf.setModelCustomizationId("222");
2164 VfModules vfModules = new VfModules();
2165 VfModule vfModule = new VfModule();
2166 vfModule.setVfModuleId("id123");
2167 vfModule.setVfModuleName("name123");
2168 vfModule.setModelCustomizationId("1234567");
2169 vfModules.getVfModule().add(vfModule);
2170 vnf.setVfModules(vfModules);
2171 workflowResourceIds.setVnfId("id123");
2172 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2173 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "name123",
2174 reqDetails, workflowResourceIds);
2175 assertEquals("id123", id);
2177 GenericVnf vnf1 = new GenericVnf();
2178 VfModules vfModules2 = new VfModules();
2179 VfModule vfModule2 = new VfModule();
2180 vfModule2.setVfModuleId("id123");
2181 vfModule2.setVfModuleName("vFModName222");
2182 vfModule2.setModelCustomizationId("222");
2183 vfModules2.getVfModule().add(vfModule2);
2184 vnf1.setVfModules(vfModules2);
2185 workflowResourceIds.setVnfId("id111");
2186 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2187 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "111111",
2188 reqDetails, workflowResourceIds);
2189 assertEquals("generatedId123", id2);
2191 this.expectedException.expect(DuplicateNameException.class);
2192 this.expectedException.expectMessage(containsString(
2193 "vfModule with name (vFModName222), same parent and different customization id (1234567) already exists. The name must be unique."));
2194 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName222", reqDetails,
2195 workflowResourceIds);
2199 public void validateResourceIdInAAIVfModuleNotGloballyUniqueTest() throws Exception {
2200 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2201 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2202 workflowResourceIds.setVnfId("id111");
2204 GenericVnf vnf1 = new GenericVnf();
2205 workflowResourceIds.setVnfId("id111");
2206 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2208 when(bbSetupUtils.existsAAIVfModuleGloballyByName("vFModName333")).thenReturn(true);
2209 this.expectedException.expect(DuplicateNameException.class);
2210 this.expectedException.expectMessage(
2211 containsString("vfModule with name vFModName333 already exists. The name must be unique."));
2212 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName333", reqDetails,
2213 workflowResourceIds);
2217 public void validateResourceIdInAAIVolumeGroupTest() throws Exception {
2218 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2219 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2220 workflowResourceIds.setServiceInstanceId("siId123");
2222 GenericVnf vnf = new GenericVnf();
2223 vnf.setVnfId("id123");
2224 vnf.setVnfName("vnfName123");
2225 vnf.setModelCustomizationId("1234567");
2227 GenericVnf vnf2 = new GenericVnf();
2228 vnf2.setVnfId("id123");
2229 vnf2.setVnfName("vnfName123");
2230 vnf2.setModelCustomizationId("222");
2233 VolumeGroup volumeGroup = new VolumeGroup();
2234 volumeGroup.setVolumeGroupId("id123");
2235 volumeGroup.setVolumeGroupName("name123");
2236 volumeGroup.setVfModuleModelCustomizationId("1234567");
2237 workflowResourceIds.setVnfId("id123");
2238 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2240 workflowResourceIds.setVnfId("id123");
2242 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2243 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(opVolumeGroup);
2244 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2245 reqDetails, workflowResourceIds);
2246 assertEquals("id123", id);
2248 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf2);
2249 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "111111"))
2250 .thenReturn(opVolumeGroup);
2252 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "111111")).thenReturn(Optional.empty());
2253 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "111111",
2254 reqDetails, workflowResourceIds);
2255 assertEquals("generatedId123", id2);
2259 public void validatesourceIdInAAIVolumeGroupNotGloballyUniqueTest() throws Exception {
2260 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2261 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2262 workflowResourceIds.setVnfId("id123");
2263 GenericVnf vnf = new GenericVnf();
2264 vnf.setVnfId("id123");
2265 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2266 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "testVolumeGroup")).thenReturn(Optional.empty());
2268 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("testVolumeGroup")).thenReturn(true);
2269 this.expectedException.expect(DuplicateNameException.class);
2270 this.expectedException.expectMessage(
2271 containsString("volumeGroup with name testVolumeGroup already exists. The name must be unique."));
2272 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "testVolumeGroup",
2273 reqDetails, workflowResourceIds);
2277 public void validateResourceIdInAAIConfigurationTest() throws Exception {
2278 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2279 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2280 workflowResourceIds.setServiceInstanceId("siId123");
2283 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2284 configuration.setConfigurationId("id123");
2285 configuration.setConfigurationName("name123");
2286 configuration.setModelCustomizationId("1234567");
2287 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2289 org.onap.aai.domain.yang.Configuration configuration2 = new org.onap.aai.domain.yang.Configuration();
2290 configuration2.setConfigurationId("id123");
2291 configuration2.setConfigurationName("name123");
2292 configuration2.setModelCustomizationId("222");
2293 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration2 = Optional.of(configuration2);
2295 workflowResourceIds.setVnfId("id123");
2297 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2298 .thenReturn(opConfiguration);
2299 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name123",
2300 reqDetails, workflowResourceIds);
2301 assertEquals("id123", id);
2303 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "111111"))
2304 .thenReturn(Optional.empty());
2305 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "111111",
2306 reqDetails, workflowResourceIds);
2307 assertEquals("generatedId123", id2);
2309 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name222"))
2310 .thenReturn(opConfiguration2);
2311 this.expectedException.expect(DuplicateNameException.class);
2312 this.expectedException.expectMessage(containsString(
2313 "configuration with name (name222), same parent and different customization id (id123) already exists. The name must be unique."));
2314 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name222", reqDetails,
2315 workflowResourceIds);
2319 public void validateResourceIdInAAIConfigurationNotGloballyUniqueTest() throws Exception {
2320 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2321 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2322 workflowResourceIds.setServiceInstanceId("siId123");
2324 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "testConfig"))
2325 .thenReturn(Optional.empty());
2326 when(bbSetupUtils.existsAAIConfigurationGloballyByName("testConfig")).thenReturn(true);
2327 this.expectedException.expect(DuplicateNameException.class);
2328 this.expectedException.expectMessage(
2329 containsString("configuration with name testConfig already exists. The name must be unique."));
2330 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "testConfig", reqDetails,
2331 workflowResourceIds);
2335 public void validateResourceIdInAAISITest() throws Exception {
2336 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2337 workflowResourceIds.setServiceInstanceId("siId123");
2338 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2339 reqDetails.getModelInfo().setModelVersionId("1234567");
2341 ServiceInstance si = new ServiceInstance();
2342 si.setServiceInstanceId("siId123");
2343 si.setModelVersionId("1234567");
2344 ServiceInstances serviceInstances = new ServiceInstances();
2345 serviceInstances.getServiceInstance().add(si);
2346 Optional<ServiceInstance> siOp = Optional.of(si);
2347 ServiceInstance si2 = new ServiceInstance();
2348 si2.setServiceInstanceId("siId222");
2349 si2.setModelVersionId("22222");
2350 si2.setServiceInstanceName("siName222");
2351 Optional<ServiceInstance> siOp2 = Optional.of(si2);
2352 ServiceInstances serviceInstances2 = new ServiceInstances();
2353 serviceInstances2.getServiceInstance().add(si2);
2355 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2356 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName222")).thenReturn(siOp2);
2357 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "111111"))
2358 .thenReturn(Optional.empty());
2360 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2361 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123",
2362 reqDetails, workflowResourceIds);
2363 assertEquals("siId123", id);
2364 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "111111",
2365 reqDetails, workflowResourceIds);
2366 assertEquals("generatedId123", id2);
2368 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName222")).thenReturn(serviceInstances2);
2369 this.expectedException.expect(DuplicateNameException.class);
2370 this.expectedException.expectMessage(containsString(
2371 "serviceInstance with name (siName222) and different version id (1234567) already exists. The name must be unique."));
2372 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName222", reqDetails,
2373 workflowResourceIds);
2377 public void validateResourceIdInAAIMultipleSITest() throws Exception {
2378 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2379 workflowResourceIds.setServiceInstanceId("siId123");
2380 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2381 reqDetails.getModelInfo().setModelVersionId("1234567");
2383 ServiceInstance si = new ServiceInstance();
2384 si.setServiceInstanceId("siId123");
2385 si.setModelVersionId("1234567");
2386 ServiceInstances serviceInstances = new ServiceInstances();
2387 serviceInstances.getServiceInstance().add(si);
2389 ServiceInstance si2 = new ServiceInstance();
2390 si2.setServiceInstanceId("siId222");
2391 si2.setModelVersionId("22222");
2392 si2.setServiceInstanceName("siName222");
2393 serviceInstances.getServiceInstance().add(si2);
2395 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2396 .thenReturn(Optional.empty());
2398 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2400 this.expectedException.expect(DuplicateNameException.class);
2401 this.expectedException.expectMessage(containsString(
2402 "serviceInstance with name (siName123) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2403 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2404 workflowResourceIds);
2408 public void validateResourceIdInAAISIExistsTest() throws Exception {
2409 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2410 workflowResourceIds.setServiceInstanceId("siId123");
2411 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2412 reqDetails.getModelInfo().setModelVersionId("1234567");
2414 ServiceInstance si = new ServiceInstance();
2415 si.setServiceInstanceId("siId123");
2416 si.setModelVersionId("1234567");
2417 ServiceInstances serviceInstances = new ServiceInstances();
2418 serviceInstances.getServiceInstance().add(si);
2420 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2421 .thenReturn(Optional.empty());
2423 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2425 Map<String, String> uriKeys = new HashMap<>();
2426 uriKeys.put("global-customer-id", "globalCustomerId");
2427 uriKeys.put("service-type", "serviceType");
2429 when(bbSetupUtils.getURIKeysFromServiceInstance("siId123")).thenReturn(uriKeys);
2431 this.expectedException.expect(DuplicateNameException.class);
2432 this.expectedException.expectMessage(containsString(
2433 "serviceInstance with name (siName123) and global-customer-id (globalCustomerId), service-type (serviceType), model-version-id (1234567) already exists. The name must be unique."));
2434 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2435 workflowResourceIds);
2439 public void validateServiceResourceIdInAAINoDupTest() throws Exception {
2440 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2441 reqDetails.getModelInfo().setModelVersionId("1234567");
2442 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123"))
2443 .thenReturn(Optional.empty());
2444 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(null);
2445 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2446 assertEquals("generatedId123", id);
2450 public void validateServiceResourceIdInAAISameModelVersionId() throws Exception {
2451 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2452 reqDetails.getModelInfo().setModelVersionId("1234567");
2454 ServiceInstance si = new ServiceInstance();
2455 si.setServiceInstanceId("siId123");
2456 si.setModelVersionId("1234567");
2457 Optional<ServiceInstance> siOp = Optional.of(si);
2459 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2460 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2461 assertEquals("siId123", id);
2465 public void validateServiceResourceIdInAAIDifferentModelVersionId() throws Exception {
2466 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2467 reqDetails.getModelInfo().setModelVersionId("1234567");
2469 ServiceInstance si = new ServiceInstance();
2470 si.setServiceInstanceId("siId123");
2471 si.setModelVersionId("9999999");
2472 ServiceInstances serviceInstances = new ServiceInstances();
2473 serviceInstances.getServiceInstance().add(si);
2474 Optional<ServiceInstance> siOp = Optional.of(si);
2476 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2478 this.expectedException.expect(DuplicateNameException.class);
2479 this.expectedException.expectMessage(containsString(
2480 "serviceInstance with name (siName123) and different version id (1234567) already exists. The name must be unique."));
2482 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2483 assertEquals("siId123", id);
2487 public void validateServiceResourceIdInAAIDuplicateNameTest() throws Exception {
2489 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2490 reqDetails.getModelInfo().setModelVersionId("1234567");
2492 ServiceInstance si = new ServiceInstance();
2493 si.setServiceInstanceId("siId123");
2494 si.setModelVersionId("1234567");
2496 ServiceInstances serviceInstances = new ServiceInstances();
2497 serviceInstances.getServiceInstance().add(si);
2499 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2500 .thenReturn(Optional.empty());
2501 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2503 this.expectedException.expect(DuplicateNameException.class);
2504 this.expectedException.expectMessage(containsString(
2505 "serviceInstance with name (siName) and global-customer-id (null), service-type (null), model-version-id (1234567) already exists. The name must be unique."));
2507 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2511 public void validateServiceResourceIdInAAIDuplicateNameMultipleTest() throws Exception {
2513 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2514 reqDetails.getModelInfo().setModelVersionId("1234567");
2516 ServiceInstance si = new ServiceInstance();
2517 si.setServiceInstanceId("siId123");
2518 si.setModelVersionId("1234567");
2520 ServiceInstance si2 = new ServiceInstance();
2521 si2.setServiceInstanceId("siId222");
2522 si2.setModelVersionId("22222");
2523 si2.setServiceInstanceName("siName222");
2525 ServiceInstances serviceInstances = new ServiceInstances();
2526 serviceInstances.getServiceInstance().add(si);
2527 serviceInstances.getServiceInstance().add(si2);
2529 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2530 .thenReturn(Optional.empty());
2531 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2533 this.expectedException.expect(DuplicateNameException.class);
2534 this.expectedException.expectMessage(containsString(
2535 "serviceInstance with name (siName) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2537 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2541 public void validateNetworkResourceIdInAAITest() throws Exception {
2542 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2543 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2544 workflowResourceIds.setServiceInstanceId("siId123");
2546 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2547 .thenReturn(Optional.empty());
2548 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(false);
2550 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2551 workflowResourceIds);
2552 assertEquals("generatedId123", id);
2556 public void validateNetworkResourceIdInAAISameModelCustIdTest() throws Exception {
2557 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2558 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2559 workflowResourceIds.setServiceInstanceId("siId123");
2561 L3Network network = new L3Network();
2562 network.setNetworkId("id123");
2563 network.setNetworkName("name123");
2564 network.setModelCustomizationId("1234567");
2565 Optional<L3Network> opNetwork = Optional.of(network);
2567 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2569 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2570 workflowResourceIds);
2571 assertEquals("id123", id);
2575 public void validateNetworkResourceIdInAAIDuplicateNameTest() throws Exception {
2576 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2577 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2578 workflowResourceIds.setServiceInstanceId("siId123");
2580 L3Network network = new L3Network();
2581 network.setNetworkId("id123");
2582 network.setNetworkName("name123");
2583 network.setModelCustomizationId("9999999");
2584 Optional<L3Network> opNetwork = Optional.of(network);
2586 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2588 this.expectedException.expect(DuplicateNameException.class);
2589 this.expectedException.expectMessage(containsString(
2590 "l3Network with name (name123), same parent and different customization id (9999999) already exists. The name must be unique."));
2592 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2596 public void validateNetworkResourceIdInAAINotGloballyUniqueTest() throws Exception {
2597 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2598 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2599 workflowResourceIds.setServiceInstanceId("siId123");
2601 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2602 .thenReturn(Optional.empty());
2603 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(true);
2605 this.expectedException.expect(DuplicateNameException.class);
2606 this.expectedException.expectMessage(containsString(
2607 "l3Network with name (name123) id (siId123) and different parent relationship already exists. The name must be unique."));
2609 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2613 public void validateVnfResourceIdInAAITest() throws Exception {
2614 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2615 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2616 workflowResourceIds.setServiceInstanceId("siId123");
2617 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2618 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2619 workflowResourceIds);
2620 assertEquals("generatedId123", id);
2624 public void validateVnfResourceIdInAAISameModelCustomizationIdTest() throws Exception {
2625 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2626 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2627 workflowResourceIds.setServiceInstanceId("siId123");
2629 GenericVnf vnf = new GenericVnf();
2630 vnf.setVnfId("id123");
2631 vnf.setVnfName("vnfName123");
2632 vnf.setModelCustomizationId("1234567");
2633 Optional<GenericVnf> opVnf = Optional.of(vnf);
2635 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2636 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2637 workflowResourceIds);
2638 assertEquals("id123", id);
2642 public void validateVnfResourceIdInAAIDiffModelCustomizationIdTest() throws Exception {
2643 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2644 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2645 workflowResourceIds.setServiceInstanceId("siId123");
2647 GenericVnf vnf = new GenericVnf();
2648 vnf.setVnfId("id123");
2649 vnf.setVnfName("vnfName123");
2650 vnf.setModelCustomizationId("9999999");
2651 Optional<GenericVnf> opVnf = Optional.of(vnf);
2653 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2655 this.expectedException.expect(DuplicateNameException.class);
2656 this.expectedException.expectMessage(containsString(
2657 "generic-vnf with name (vnfName123), same parent and different customization id (9999999) already exists. The name must be unique."));
2659 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2663 public void validateVnfResourceIdInAAINotGloballyUniqueTest() throws Exception {
2664 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2665 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2666 workflowResourceIds.setServiceInstanceId("siId123");
2669 GenericVnf vnf = new GenericVnf();
2670 vnf.setVnfId("id123");
2671 vnf.setVnfName("vnfName123");
2672 GenericVnfs genericVnfs = new GenericVnfs();
2673 genericVnfs.getGenericVnf().add(vnf);
2675 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2676 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName123")).thenReturn(genericVnfs);
2678 this.expectedException.expect(DuplicateNameException.class);
2679 this.expectedException.expectMessage(containsString(
2680 "generic-vnf with name (vnfName123) id (id123) and different parent relationship already exists. The name must be unique."));
2682 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2686 public void validateVfModuleResourceIdTest() throws Exception {
2687 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2688 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2689 workflowResourceIds.setVnfId("vnfId123");
2691 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2692 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(false);
2694 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2695 workflowResourceIds);
2696 assertEquals("generatedId123", id);
2700 public void validateVfModuleResourceIdSameModelCustIdTest() throws Exception {
2701 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2702 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2703 workflowResourceIds.setVnfId("vnfId123");
2705 VfModules vfModules = new VfModules();
2706 VfModule vfModule = new VfModule();
2707 vfModule.setVfModuleId("id123");
2708 vfModule.setVfModuleName("name123");
2709 vfModule.setModelCustomizationId("1234567");
2710 vfModules.getVfModule().add(vfModule);
2712 GenericVnf vnf = new GenericVnf();
2713 vnf.setVnfId("id123");
2714 vnf.setVnfName("vnfName123");
2715 vnf.setVfModules(vfModules);
2717 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2719 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2720 workflowResourceIds);
2721 assertEquals("id123", id);
2725 public void validateVfModuleResourceIdDifferentModelCustIdTest() throws Exception {
2726 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2727 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2728 workflowResourceIds.setVnfId("vnfId123");
2730 VfModules vfModules = new VfModules();
2731 VfModule vfModule = new VfModule();
2732 vfModule.setVfModuleId("id123");
2733 vfModule.setVfModuleName("name123");
2734 vfModule.setModelCustomizationId("9999999");
2735 vfModules.getVfModule().add(vfModule);
2737 GenericVnf vnf = new GenericVnf();
2738 vnf.setVnfId("id123");
2739 vnf.setVnfName("vnfName123");
2740 vnf.setVfModules(vfModules);
2742 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2744 this.expectedException.expect(DuplicateNameException.class);
2745 this.expectedException.expectMessage(containsString(
2746 "vfModule with name (name123), same parent and different customization id (1234567) already exists. The name must be unique."));
2748 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2753 public void validateVfModuleResourceIdNotGloballyUniqueTest() throws Exception {
2754 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2755 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2756 workflowResourceIds.setVnfId("vnfId123");
2758 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2759 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(true);
2761 this.expectedException.expect(DuplicateNameException.class);
2762 this.expectedException
2763 .expectMessage(containsString("vfModule with name name123 already exists. The name must be unique."));
2765 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2769 public void validateVolumeGroupResourceIdInAAITest() throws Exception {
2770 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2771 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2772 workflowResourceIds.setVnfId("vnfId123");
2774 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(Optional.empty());
2775 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(false);
2777 String id = workflowAction.validateVolumeGroupResourceIdInAAI("generatedId123", "name123", reqDetails,
2778 workflowResourceIds);
2779 assertEquals("generatedId123", id);
2783 public void validateVolumeGroupResourceIdInAAISameModelCustIdTest() throws Exception {
2784 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2785 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2786 workflowResourceIds.setServiceInstanceId("siId123");
2787 workflowResourceIds.setVnfId("vnfId123");
2789 VolumeGroup volumeGroup = new VolumeGroup();
2790 volumeGroup.setVolumeGroupId("id123");
2791 volumeGroup.setVolumeGroupName("name123");
2792 volumeGroup.setVfModuleModelCustomizationId("1234567");
2794 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2796 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2797 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2798 reqDetails, workflowResourceIds);
2800 assertEquals("id123", id);
2804 public void validateVolumeGroupResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2805 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2806 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2807 workflowResourceIds.setServiceInstanceId("siId123");
2808 workflowResourceIds.setVnfId("vnfId123");
2810 VolumeGroup volumeGroup = new VolumeGroup();
2811 volumeGroup.setVolumeGroupId("id123");
2812 volumeGroup.setVolumeGroupName("name123");
2813 volumeGroup.setVfModuleModelCustomizationId("9999999");
2815 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2817 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2819 this.expectedException.expect(DuplicateNameException.class);
2820 this.expectedException.expectMessage(
2821 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2823 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2824 workflowResourceIds);
2828 public void validateVolumeGroupResourceIdInAAINotGloballyUniqueTest() throws Exception {
2829 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2830 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2831 workflowResourceIds.setVnfId("vnfId123");
2833 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(Optional.empty());
2834 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(true);
2836 this.expectedException.expect(DuplicateNameException.class);
2837 this.expectedException.expectMessage(
2838 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2840 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2841 workflowResourceIds);
2845 public void validateConfigurationResourceIdInAAITest() throws Exception {
2846 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2847 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2848 workflowResourceIds.setServiceInstanceId("siId123");
2850 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2851 .thenReturn(Optional.empty());
2852 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2854 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2855 workflowResourceIds);
2856 assertEquals("generatedId123", id);
2860 public void validateConfigurationResourceIdInAAISameModelCustIdTest() throws Exception {
2861 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2862 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2863 workflowResourceIds.setServiceInstanceId("siId123");
2865 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2866 configuration.setConfigurationId("id123");
2867 configuration.setConfigurationName("name123");
2868 configuration.setModelCustomizationId("1234567");
2869 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2871 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2872 .thenReturn(opConfiguration);
2873 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2875 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2876 workflowResourceIds);
2877 assertEquals("id123", id);
2881 public void validateConfigurationResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2882 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2883 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2884 workflowResourceIds.setServiceInstanceId("siId123");
2886 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2887 configuration.setConfigurationId("id123");
2888 configuration.setConfigurationName("name123");
2889 configuration.setModelCustomizationId("9999999");
2890 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2892 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2893 .thenReturn(opConfiguration);
2894 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2896 this.expectedException.expect(DuplicateNameException.class);
2897 this.expectedException.expectMessage(containsString(
2898 "configuration with name (name123), same parent and different customization id (id123) already exists. The name must be unique."));
2900 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2901 workflowResourceIds);
2905 public void validateConfigurationResourceIdInAAINotGloballyUniqueTest() throws Exception {
2906 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2907 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2908 workflowResourceIds.setServiceInstanceId("siId123");
2910 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2911 .thenReturn(Optional.empty());
2912 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(true);
2914 this.expectedException.expect(DuplicateNameException.class);
2915 this.expectedException.expectMessage(
2916 containsString("configuration with name name123 already exists. The name must be unique."));
2918 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2919 workflowResourceIds);
2923 public void handleRuntimeExceptionTest() {
2924 execution.setVariable("BPMN_javaExpMsg", "test runtime error message");
2925 execution.setVariable("testProcessKey", "testProcessKeyValue");
2927 workflowAction.handleRuntimeException(execution);
2928 } catch (BpmnError wfe) {
2929 assertEquals("MSOWorkflowException", wfe.getErrorCode());
2935 public void traverseCatalogDbServiceMultipleNetworkTest() throws IOException, VrfBondingServiceException {
2936 execution.setVariable("testProcessKey", "testProcessKeyValue");
2937 Service service = new Service();
2938 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
2939 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
2940 networkCust.setModelCustomizationUUID("123");
2941 networkCustomizations.add(networkCust);
2942 service.setNetworkCustomizations(networkCustomizations);
2943 NetworkCollectionResourceCustomization collectionResourceCustomization =
2944 new NetworkCollectionResourceCustomization();
2945 collectionResourceCustomization.setModelCustomizationUUID("123");
2946 CollectionResource collectionResource = new CollectionResource();
2947 collectionResource.setToscaNodeType("NetworkCollection");
2948 InstanceGroup instanceGroup = new InstanceGroup();
2949 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
2950 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
2951 new CollectionResourceInstanceGroupCustomization();
2952 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
2953 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
2954 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
2955 collectionResource.setInstanceGroup(instanceGroup);
2956 collectionResourceCustomization.setCollectionResource(collectionResource);;
2957 service.setModelUUID("abc");
2958 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2959 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2960 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
2961 doReturn(collectionResourceCustomization).when(catalogDbClient)
2962 .getNetworkCollectionResourceCustomizationByID("123");
2963 String bpmnRequest = new String(Files
2964 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
2965 ObjectMapper mapper = new ObjectMapper();
2966 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
2967 List<Resource> resourceCounter = new ArrayList<>();
2968 thrown.expect(BpmnError.class);
2969 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
2970 workflowAction.traverseCatalogDbService(execution, sIRequest, resourceCounter, aaiResourceIds);
2974 public void sortVfModulesByBaseFirstTest() {
2975 List<Resource> resources = new ArrayList<>();
2976 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2977 resource1.setBaseVfModule(false);
2978 resources.add(resource1);
2979 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2980 resource2.setBaseVfModule(false);
2981 resources.add(resource2);
2982 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
2983 resource3.setBaseVfModule(true);
2984 resources.add(resource3);
2985 List<Resource> result = workflowAction.sortVfModulesByBaseFirst(resources);
2986 assertEquals("333", result.get(0).getResourceId());
2987 assertEquals("222", result.get(1).getResourceId());
2988 assertEquals("111", result.get(2).getResourceId());
2992 public void sortVfModulesByBaseLastTest() {
2993 List<Resource> resources = new ArrayList<>();
2994 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2995 resource1.setBaseVfModule(true);
2996 resources.add(resource1);
2997 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2998 resource2.setBaseVfModule(false);
2999 resources.add(resource2);
3000 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
3001 resource3.setBaseVfModule(false);
3002 resources.add(resource3);
3003 List<Resource> result = workflowAction.sortVfModulesByBaseLast(resources);
3004 assertEquals("333", result.get(0).getResourceId());
3005 assertEquals("222", result.get(1).getResourceId());
3006 assertEquals("111", result.get(2).getResourceId());
3010 public void findCatalogNetworkCollectionTest() {
3011 Service service = new Service();
3012 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
3013 networkCustomization.setModelCustomizationUUID("123");
3014 service.getCollectionResourceCustomizations().add(networkCustomization);
3015 doReturn(networkCustomization).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
3016 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
3017 assertNotNull(customization);
3021 public void findCatalogNetworkCollectionEmptyTest() {
3022 Service service = new Service();
3023 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
3024 networkCustomization.setModelCustomizationUUID("123");
3025 service.getCollectionResourceCustomizations().add(networkCustomization);
3026 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
3027 assertNull(customization);
3031 public void findCatalogNetworkCollectionMoreThanOneTest() {
3032 Service service = new Service();
3033 NetworkCollectionResourceCustomization networkCustomization1 = new NetworkCollectionResourceCustomization();
3034 networkCustomization1.setModelCustomizationUUID("123");
3035 NetworkCollectionResourceCustomization networkCustomization2 = new NetworkCollectionResourceCustomization();
3036 networkCustomization2.setModelCustomizationUUID("321");
3037 service.getCollectionResourceCustomizations().add(networkCustomization1);
3038 service.getCollectionResourceCustomizations().add(networkCustomization2);
3039 doReturn(networkCustomization1).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
3040 doReturn(networkCustomization2).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("321");
3041 workflowAction.findCatalogNetworkCollection(execution, service);
3042 assertEquals("Found multiple Network Collections in the Service model, only one per Service is supported.",
3043 execution.getVariable("WorkflowActionErrorMessage"));
3047 public void verifyLackOfNullPointerExceptionForNullResource() {
3048 ExecuteBuildingBlock result = null;
3050 result = workflowAction.buildExecuteBuildingBlock(new OrchestrationFlow(), null, null, null, null, null,
3051 false, null, null, null, false, null, null, true);
3052 } catch (NullPointerException e) {
3053 fail("NullPointerException should not be thrown when 'resource' is null");
3055 assertNotNull(result);
3059 public void traverseAAIServiceTest() {
3060 List<Resource> resourceCounter = new ArrayList<>();
3061 String resourceId = "si0";
3062 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
3064 ServiceInstance serviceInstanceAAI = new ServiceInstance();
3065 serviceInstanceAAI.setServiceInstanceId(resourceId);
3067 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstance = setServiceInstance();
3075 Configuration config = new Configuration();
3076 config.setConfigurationId("testConfigurationId2");
3077 serviceInstance.getConfigurations().add(config);
3079 Relationship relationship1 = new Relationship();
3080 relationship1.setRelatedTo("vnfc");
3081 RelationshipList relationshipList1 = new RelationshipList();
3082 relationshipList1.getRelationship().add(relationship1);
3084 Relationship relationship2 = new Relationship();
3085 relationship2.setRelatedTo("vpn-binding");
3086 RelationshipList relationshipList2 = new RelationshipList();
3087 relationshipList2.getRelationship().add(relationship2);
3089 org.onap.aai.domain.yang.Configuration aaiConfiguration1 = new org.onap.aai.domain.yang.Configuration();
3090 aaiConfiguration1.setConfigurationId("testConfigurationId");
3091 aaiConfiguration1.setRelationshipList(relationshipList1);
3093 org.onap.aai.domain.yang.Configuration aaiConfiguration2 = new org.onap.aai.domain.yang.Configuration();
3094 aaiConfiguration2.setConfigurationId("testConfigurationId2");
3095 aaiConfiguration2.setRelationshipList(relationshipList1);
3098 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById(resourceId);
3099 doReturn(serviceInstance).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
3100 doReturn(Optional.of(aaiConfiguration1)).when(aaiConfigurationResources)
3101 .getConfiguration("testConfigurationId");
3102 doReturn(Optional.of(aaiConfiguration2)).when(aaiConfigurationResources)
3103 .getConfiguration("testConfigurationId2");
3104 workflowAction.traverseAAIService(execution, resourceCounter, resourceId, aaiResourceIds);
3105 assertEquals(8, resourceCounter.size());
3106 assertTrue(resourceCounter.get(2).isBaseVfModule());
3107 assertThat(aaiResourceIds, sameBeanAs(getExpectedResourceIds()));
3108 } catch (Exception e) {
3109 fail("Unexpected exception was thrown.");
3113 private List<Pair<WorkflowType, String>> getExpectedResourceIds() {
3114 List<Pair<WorkflowType, String>> resourceIds = new ArrayList<>();
3115 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VNF, "testVnfId1"));
3116 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VFMODULE, "testVfModuleId1"));
3117 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VOLUMEGROUP, "testVolumeGroupId1"));
3118 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORK, "testNetworkId1"));
3119 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORKCOLLECTION, "testId"));
3120 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId"));
3121 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId2"));
3125 private List<OrchestrationFlow> createFlowList(String... flowNames) {
3126 List<OrchestrationFlow> result = new ArrayList<>();
3127 for (String flowName : flowNames) {
3128 OrchestrationFlow orchFlow = new OrchestrationFlow();
3129 orchFlow.setFlowName(flowName);
3130 result.add(orchFlow);
3135 private void assertEqualsBulkFlowName(List<ExecuteBuildingBlock> ebbs, String... flowNames) {
3136 for (int i = 0; i < ebbs.size(); i++) {
3137 assertEquals(ebbs.get(i).getBuildingBlock().getBpmnFlowName(), flowNames[i]);