2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (c) 2019 Samsung
8 * ================================================================================
9 * Modifications Copyright (c) 2020 Nokia
10 * ================================================================================
11 * Licensed under the Apache License, Version 2.0 (the "License");
12 * you may not use this file except in compliance with the License.
13 * You may obtain a copy of the License at
15 * http://www.apache.org/licenses/LICENSE-2.0
17 * Unless required by applicable law or agreed to in writing, software
18 * distributed under the License is distributed on an "AS IS" BASIS,
19 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 * See the License for the specific language governing permissions and
21 * limitations under the License.
22 * ============LICENSE_END=========================================================
25 package org.onap.so.bpmn.infrastructure.workflow.tasks;
27 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
28 import static org.hamcrest.CoreMatchers.containsString;
29 import static org.hamcrest.CoreMatchers.equalTo;
30 import static org.junit.Assert.assertEquals;
31 import static org.junit.Assert.assertFalse;
32 import static org.junit.Assert.assertNotNull;
33 import static org.junit.Assert.assertNull;
34 import static org.junit.Assert.assertThat;
35 import static org.junit.Assert.assertTrue;
36 import static org.junit.Assert.fail;
37 import static org.mockito.ArgumentMatchers.any;
38 import static org.mockito.ArgumentMatchers.anyObject;
39 import static org.mockito.ArgumentMatchers.anyString;
40 import static org.mockito.ArgumentMatchers.eq;
41 import static org.mockito.ArgumentMatchers.isA;
42 import static org.mockito.Mockito.doAnswer;
43 import static org.mockito.Mockito.doReturn;
44 import static org.mockito.Mockito.doThrow;
45 import static org.mockito.Mockito.when;
46 import com.fasterxml.jackson.databind.ObjectMapper;
47 import java.io.IOException;
48 import java.net.MalformedURLException;
49 import java.nio.file.Files;
50 import java.nio.file.Paths;
51 import java.util.ArrayList;
52 import java.util.Arrays;
53 import java.util.HashMap;
54 import java.util.List;
56 import java.util.Optional;
57 import java.util.UUID;
58 import org.camunda.bpm.engine.delegate.BpmnError;
59 import org.camunda.bpm.engine.delegate.DelegateExecution;
60 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
61 import org.javatuples.Pair;
62 import org.junit.Before;
63 import org.junit.Ignore;
64 import org.junit.Rule;
65 import org.junit.Test;
66 import org.junit.rules.ExpectedException;
67 import org.mockito.InjectMocks;
68 import org.mockito.Mock;
69 import org.mockito.Spy;
70 import org.onap.aai.domain.yang.GenericVnf;
71 import org.onap.aai.domain.yang.GenericVnfs;
72 import org.onap.aai.domain.yang.L3Network;
73 import org.onap.aai.domain.yang.Relationship;
74 import org.onap.aai.domain.yang.RelationshipList;
75 import org.onap.aai.domain.yang.ServiceInstance;
76 import org.onap.aai.domain.yang.ServiceInstances;
77 import org.onap.aai.domain.yang.VfModule;
78 import org.onap.aai.domain.yang.VfModules;
79 import org.onap.aai.domain.yang.VolumeGroup;
80 import org.onap.aaiclient.client.aai.AAIObjectType;
81 import org.onap.aaiclient.client.aai.entities.AAIResultWrapper;
82 import org.onap.aaiclient.client.aai.entities.Relationships;
83 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
84 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
85 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder;
86 import org.onap.so.bpmn.BaseTaskTest;
87 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
88 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
89 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
90 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
91 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
92 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.DuplicateNameException;
93 import org.onap.so.client.orchestration.AAIEntityNotFoundException;
94 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
95 import org.onap.so.db.catalog.beans.CollectionResource;
96 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
97 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
98 import org.onap.so.db.catalog.beans.ConfigurationResource;
99 import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
100 import org.onap.so.db.catalog.beans.CvnfcCustomization;
101 import org.onap.so.db.catalog.beans.HeatEnvironment;
102 import org.onap.so.db.catalog.beans.HeatTemplate;
103 import org.onap.so.db.catalog.beans.InstanceGroup;
104 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
105 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
106 import org.onap.so.db.catalog.beans.Service;
107 import org.onap.so.db.catalog.beans.VfModuleCustomization;
108 import org.onap.so.db.catalog.beans.macro.NorthBoundRequest;
109 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
110 import org.onap.so.serviceinstancebeans.ModelInfo;
111 import org.onap.so.serviceinstancebeans.RequestDetails;
112 import org.onap.so.serviceinstancebeans.RequestParameters;
113 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
114 import org.onap.so.serviceinstancebeans.SubscriberInfo;
115 import org.springframework.core.env.Environment;
117 public class WorkflowActionTest extends BaseTaskTest {
120 protected Environment environment;
122 protected WorkflowAction workflowAction;
123 private DelegateExecution execution;
127 protected WorkflowAction SPY_workflowAction;
130 public ExpectedException thrown = ExpectedException.none();
132 private String RESOURCE_PATH = "src/test/resources/__files/";
134 private List<OrchestrationFlow> replaceVfModuleOrchFlows =
135 createFlowList("DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
136 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
137 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
138 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
139 private List<OrchestrationFlow> replaceRetainAssignmentsVfModuleOrchFlows = createFlowList("DeactivateVfModuleBB",
140 "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "UnassignVolumeGroupBB",
141 "AssignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
142 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
143 private List<OrchestrationFlow> replaceVfModuleWithFabricOrchFlows = createFlowList("DeleteFabricConfigurationBB",
144 "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB",
145 "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB", "AssignVfModuleBB",
146 "CreateVfModuleBB", "ActivateVfModuleBB", "AddFabricConfigurationBB", "CreateVolumeGroupBB",
147 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
150 public void before() throws Exception {
151 execution = new DelegateExecutionFake();
152 org.onap.aai.domain.yang.ServiceInstance servInstance = new org.onap.aai.domain.yang.ServiceInstance();
153 servInstance.setServiceInstanceId("TEST");
154 when(bbSetupUtils.getAAIServiceInstanceByName(anyString(), anyObject())).thenReturn(servInstance);
155 workflowAction.setBbInputSetupUtils(bbSetupUtils);
156 workflowAction.setBbInputSetup(bbInputSetup);
163 public void selectExecutionListALaCarteNetworkCreateTest() throws Exception {
164 String gAction = "createInstance";
165 String resource = "Network";
166 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
167 execution.setVariable("requestAction", gAction);
169 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
170 execution.setVariable("bpmnRequest", bpmnRequest);
171 execution.setVariable("aLaCarte", true);
172 execution.setVariable("apiVersion", "7");
173 execution.setVariable("requestUri", "v6/networks/123");
175 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
176 List<OrchestrationFlow> orchFlows =
177 createFlowList("AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
178 northBoundRequest.setOrchestrationFlowList(orchFlows);
180 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
181 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
182 workflowAction.selectExecutionList(execution);
183 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
184 assertEqualsBulkFlowName(ebbs, "AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
188 public void selectExecutionListALaCarteNetworkDeleteTest() throws Exception {
189 String gAction = "deleteInstance";
190 String resource = "Network";
191 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
192 execution.setVariable("requestAction", gAction);
194 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
195 execution.setVariable("bpmnRequest", bpmnRequest);
196 execution.setVariable("aLaCarte", true);
197 execution.setVariable("apiVersion", "7");
198 execution.setVariable("requestUri", "v6/networks/123");
200 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
201 List<OrchestrationFlow> orchFlows =
202 createFlowList("DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
203 northBoundRequest.setOrchestrationFlowList(orchFlows);
205 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
206 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
207 workflowAction.selectExecutionList(execution);
208 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
209 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
213 public void selectExecutionListALaCarteServiceCreateTest() throws Exception {
214 String gAction = "createInstance";
215 String resource = "Service";
216 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
217 execution.setVariable("requestAction", gAction);
219 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
220 execution.setVariable("bpmnRequest", bpmnRequest);
221 execution.setVariable("aLaCarte", true);
222 execution.setVariable("apiVersion", "7");
223 execution.setVariable("requestUri", "v6/serviceInstances/123");
226 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
227 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "ActivateServiceInstanceBB");
228 northBoundRequest.setOrchestrationFlowList(orchFlows);
230 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
231 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
232 workflowAction.selectExecutionList(execution);
233 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
234 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
238 public void selectExecutionListExceptionAlreadyBuiltTest() throws Exception {
239 DelegateExecution delegateExecution = new DelegateExecutionFake();
240 String gAction = "deleteInstance";
241 String resource = "VfModule";
242 delegateExecution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
243 delegateExecution.setVariable("requestAction", gAction);
245 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
246 delegateExecution.setVariable("bpmnRequest", bpmnRequest);
247 delegateExecution.setVariable("aLaCarte", true);
248 delegateExecution.setVariable("apiVersion", "7");
249 delegateExecution.setVariable("requestUri",
250 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
252 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
253 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
254 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
255 northBoundRequest.setOrchestrationFlowList(orchFlows);
257 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
258 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
260 doAnswer(invocation -> {
261 DelegateExecutionFake execution = invocation.getArgument(0);
262 execution.setVariable("WorkflowException", "exception");
263 execution.setVariable("WorkflowExceptionErrorMessage", "errorMessage");
264 throw new BpmnError("WorkflowException");
265 }).when(exceptionUtil).buildAndThrowWorkflowException(delegateExecution, 7000,
266 "Exception in getConfigBuildingBlock: Multiple relationships exist from VNFC testVnfcName to Configurations");
269 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
270 vnf.setVnfId("vnf0");
271 vnf.setModelCustomizationId("modelCustomizationId");
272 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
274 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
275 vfModule.setModelCustomizationId("modelCustomizationId");
276 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModule);
278 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
279 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
280 vnfc.setModelInvariantId("modelInvariantId");
281 vnfc.setVnfcName("testVnfcName");
283 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(), any(), any());
285 List<org.onap.aai.domain.yang.Configuration> configurations =
286 new ArrayList<org.onap.aai.domain.yang.Configuration>();
287 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
288 configuration.setConfigurationId("configurationId");
289 configuration.setModelCustomizationId("modelCustimizationId");
290 configuration.setConfigurationName("testConfigurationName");
291 configurations.add(configuration);
292 org.onap.aai.domain.yang.Configuration configuration1 = new org.onap.aai.domain.yang.Configuration();
293 configuration1.setConfigurationId("configurationId");
294 configuration1.setModelCustomizationId("modelCustimizationId");
295 configuration1.setConfigurationName("testConfigurationName");
296 configurations.add(configuration1);
297 doReturn(configurations).when(SPY_workflowAction).getRelatedResourcesInVnfc(any(), any(), any());
299 doReturn("testName").when(SPY_workflowAction).getVnfcNameForConfiguration(any());
301 thrown.expect(BpmnError.class);
302 SPY_workflowAction.selectExecutionList(delegateExecution);
304 "Exception in getConfigBuildingBlock: Multiple relationships exist from VNFC testVnfcName to Configurations",
305 delegateExecution.getVariable("WorkflowException"));
309 public void selectExecutionListDuplicateNameExceptionTest() throws Exception {
310 String gAction = "createInstance";
311 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
313 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
314 execution.setVariable("bpmnRequest", bpmnRequest);
315 execution.setVariable("aLaCarte", true);
316 execution.setVariable("apiVersion", "7");
317 execution.setVariable("requestUri", "v6/serviceInstances");
318 execution.setVariable("requestAction", gAction);
320 doThrow(new DuplicateNameException(
321 "serviceInstance with name (instanceName) and different version id (3c40d244-808e-42ca-b09a-256d83d19d0a) already exists. The name must be unique."))
322 .when(SPY_workflowAction).validateResourceIdInAAI(anyString(), eq(WorkflowType.SERVICE),
323 eq("test"), any(RequestDetails.class), any(WorkflowResourceIds.class));
325 SPY_workflowAction.selectExecutionList(execution);
326 assertEquals(execution.getVariable("WorkflowActionErrorMessage"),
327 "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.");
331 * SERVICE MACRO TESTS
334 public void selectExecutionListServiceMacroAssignTest() throws Exception {
335 String gAction = "assignInstance";
336 String resource = "Service";
337 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
338 execution.setVariable("requestAction", gAction);
340 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
341 execution.setVariable("bpmnRequest", bpmnRequest);
342 execution.setVariable("aLaCarte", false);
343 execution.setVariable("apiVersion", "7");
344 execution.setVariable("requestUri", "v6/serviceInstances/123");
347 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
348 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
349 "AssignVolumeGroupBB", "AssignVfModuleBB");
350 northBoundRequest.setOrchestrationFlowList(orchFlows);
352 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
353 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
354 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
355 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
356 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
357 HeatTemplate volumeHeatTemplate = new HeatTemplate();
358 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
359 vfModuleCustomization.setVfModule(vfModule);
361 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
362 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
363 HeatEnvironment heatEnvironment = new HeatEnvironment();
364 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
365 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
366 HeatTemplate moduleHeatTemplate = new HeatTemplate();
367 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
368 vfModuleCustomization2.setVfModule(vfModule2);
370 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
371 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
373 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
374 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
375 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
376 .thenReturn(vfModuleCustomization);
377 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
378 .thenReturn(vfModuleCustomization2);
379 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
380 .thenReturn(vfModuleCustomization3);
381 workflowAction.selectExecutionList(execution);
382 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
383 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
384 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
388 public void selectExecutionListServiceMacroAssignNoCloudTest() throws Exception {
389 String gAction = "assignInstance";
390 String resource = "Service";
391 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
392 execution.setVariable("requestAction", gAction);
393 String bpmnRequest = new String(
394 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssignNoCloud.json")));
395 execution.setVariable("bpmnRequest", bpmnRequest);
396 execution.setVariable("aLaCarte", false);
397 execution.setVariable("apiVersion", "7");
398 execution.setVariable("requestUri", "v6/serviceInstances/123");
401 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
402 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
403 "AssignVolumeGroupBB", "AssignVfModuleBB");
404 northBoundRequest.setOrchestrationFlowList(orchFlows);
406 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
407 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
408 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
409 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
410 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
411 HeatTemplate volumeHeatTemplate = new HeatTemplate();
412 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
413 vfModuleCustomization.setVfModule(vfModule);
415 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
416 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
417 HeatEnvironment heatEnvironment = new HeatEnvironment();
418 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
419 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
420 HeatTemplate moduleHeatTemplate = new HeatTemplate();
421 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
422 vfModuleCustomization2.setVfModule(vfModule2);
424 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
425 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
427 when(environment.getProperty("org.onap.so.cloud-owner")).thenReturn("att-aic");
428 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
429 false, "att-aic")).thenReturn(northBoundRequest);
430 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
431 .thenReturn(vfModuleCustomization);
432 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
433 .thenReturn(vfModuleCustomization2);
434 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
435 .thenReturn(vfModuleCustomization3);
436 workflowAction.selectExecutionList(execution);
437 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
438 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
439 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
443 public void selectExecutionListServiceMacroActivateTest() throws Exception {
444 String gAction = "activateInstance";
445 String resource = "Service";
446 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
447 execution.setVariable("requestAction", gAction);
448 String bpmnRequest = new String(Files
449 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
450 execution.setVariable("bpmnRequest", bpmnRequest);
451 execution.setVariable("aLaCarte", false);
452 execution.setVariable("apiVersion", "7");
453 execution.setVariable("requestUri", "v6/serviceInstances/si0");
456 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
457 List<OrchestrationFlow> orchFlows =
458 createFlowList("CreateNetworkBB", "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
459 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "ActivateServiceInstanceBB");
460 northBoundRequest.setOrchestrationFlowList(orchFlows);
462 ServiceInstance serviceInstanceAAI = new ServiceInstance();
463 serviceInstanceAAI.setServiceInstanceId("si0");
464 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
465 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
466 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
467 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
468 vnf.setVnfId("vnf0");
471 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
472 vnf.getVfModules().add(vfModule);
473 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
474 vnf.getVfModules().add(vfModule2);
476 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
477 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
478 volumeGroup.setVolumeGroupId("volumeGroup0");
479 vnf.getVolumeGroups().add(volumeGroup);
481 serviceInstanceMSO.getVnfs().add(vnf);
483 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("si0");
484 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
485 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
486 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
487 workflowAction.selectExecutionList(execution);
488 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
489 assertEqualsBulkFlowName(ebbs, "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
490 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
491 "ActivateServiceInstanceBB");
492 assertEquals("volumeGroup0", ebbs.get(0).getWorkflowResourceIds().getVolumeGroupId());
493 assertEquals("volumeGroup0", ebbs.get(1).getWorkflowResourceIds().getVolumeGroupId());
494 assertEquals("testVfModuleId1", ebbs.get(2).getWorkflowResourceIds().getVfModuleId());
495 assertEquals("testVfModuleId2", ebbs.get(3).getWorkflowResourceIds().getVfModuleId());
496 assertEquals("testVfModuleId1", ebbs.get(4).getWorkflowResourceIds().getVfModuleId());
497 assertEquals("testVfModuleId2", ebbs.get(5).getWorkflowResourceIds().getVfModuleId());
498 assertEquals("vnf0", ebbs.get(6).getWorkflowResourceIds().getVnfId());
499 assertEquals("si0", ebbs.get(7).getWorkflowResourceIds().getServiceInstanceId());
504 public void selectExecutionListServiceMacroDeactivateTest() throws Exception {
505 String gAction = "deactivateInstance";
506 String resource = "Service";
507 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
508 execution.setVariable("requestAction", gAction);
509 String bpmnRequest = new String(Files
510 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
511 execution.setVariable("bpmnRequest", bpmnRequest);
512 execution.setVariable("aLaCarte", false);
513 execution.setVariable("apiVersion", "7");
514 execution.setVariable("requestUri", "v6/serviceInstances/123");
517 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
518 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateServiceInstanceBB");
519 northBoundRequest.setOrchestrationFlowList(orchFlows);
521 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
522 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
523 workflowAction.selectExecutionList(execution);
524 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
525 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(), "DeactivateServiceInstanceBB");
529 public void selectExecutionListServiceMacroEmptyServiceTest() throws Exception {
530 String gAction = "createInstance";
531 String resource = "Service";
532 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
533 execution.setVariable("requestAction", gAction);
534 String bpmnRequest = new String(Files
535 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
536 execution.setVariable("bpmnRequest", bpmnRequest);
537 execution.setVariable("aLaCarte", false);
538 execution.setVariable("apiVersion", "7");
539 execution.setVariable("requestUri", "v6/serviceInstances/123");
542 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
543 northBoundRequest.setIsToplevelflow(true);
544 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
545 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
546 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
547 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
548 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
549 northBoundRequest.setOrchestrationFlowList(orchFlows);
551 Service service = new Service();
552 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
553 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
554 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
555 workflowAction.selectExecutionList(execution);
556 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
557 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
561 public void selectExecutionListServiceMacroCreateJustNetworkTest() throws Exception {
562 String gAction = "createInstance";
563 String resource = "Service";
564 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
565 execution.setVariable("requestAction", gAction);
566 String bpmnRequest = new String(Files
567 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
568 execution.setVariable("bpmnRequest", bpmnRequest);
569 execution.setVariable("aLaCarte", false);
570 execution.setVariable("apiVersion", "7");
571 execution.setVariable("requestUri", "v6/serviceInstances/123");
574 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
575 northBoundRequest.setIsToplevelflow(true);
576 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
577 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
578 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
579 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
580 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
581 northBoundRequest.setOrchestrationFlowList(orchFlows);
583 Service service = new Service();
584 NetworkResourceCustomization networkCustomization = new NetworkResourceCustomization();
585 networkCustomization.setModelCustomizationUUID("1234");
586 service.getNetworkCustomizations().add(networkCustomization);
587 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
588 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
589 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
590 workflowAction.selectExecutionList(execution);
591 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
592 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignNetworkBB", "CreateNetworkBB",
593 "ActivateNetworkBB", "ActivateServiceInstanceBB");
597 public void selectExecutionListServiceMacroCreateWithNetworkCollectionTest() throws Exception {
598 String gAction = "createInstance";
599 String resource = "Service";
600 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
601 execution.setVariable("requestAction", gAction);
602 String bpmnRequest = new String(Files
603 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
604 execution.setVariable("bpmnRequest", bpmnRequest);
605 execution.setVariable("aLaCarte", false);
606 execution.setVariable("apiVersion", "7");
607 execution.setVariable("requestUri", "v6/serviceInstances/123");
610 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
611 northBoundRequest.setIsToplevelflow(true);
612 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
613 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
614 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
615 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
616 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
617 northBoundRequest.setOrchestrationFlowList(orchFlows);
619 Service service = new Service();
620 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
621 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
622 networkCust.setModelCustomizationUUID("123");
623 networkCustomizations.add(networkCust);
624 service.setNetworkCustomizations(networkCustomizations);
625 NetworkCollectionResourceCustomization collectionResourceCustomization =
626 new NetworkCollectionResourceCustomization();
627 collectionResourceCustomization.setModelCustomizationUUID("123");
629 CollectionResource collectionResource = new CollectionResource();
630 collectionResource.setToscaNodeType("NetworkCollection");
631 InstanceGroup instanceGroup = new InstanceGroup();
632 instanceGroup.setToscaNodeType("NetworkCollectionResource");
633 instanceGroup.setCollectionNetworkResourceCustomizations(new ArrayList<>());
634 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
635 new CollectionNetworkResourceCustomization();
636 collectionNetworkResourceCust.setModelCustomizationUUID("123");
637 collectionNetworkResourceCust.setNetworkResourceCustomization(collectionResourceCustomization);
638 instanceGroup.getCollectionNetworkResourceCustomizations().add(collectionNetworkResourceCust);
639 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
640 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
641 new CollectionResourceInstanceGroupCustomization();
642 collectionInstanceGroupCustomization.setModelCustomizationUUID("123");
643 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
644 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
645 collectionInstanceGroupCustomization.setInstanceGroup(instanceGroup);
646 collectionInstanceGroupCustomization.setCollectionResourceCust(collectionResourceCustomization);
647 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
648 collectionResource.setInstanceGroup(instanceGroup);
649 collectionResourceCustomization.setCollectionResource(collectionResource);;
650 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
651 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
652 doReturn(collectionResourceCustomization).when(catalogDbClient)
653 .getNetworkCollectionResourceCustomizationByID("123");
654 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
655 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
656 workflowAction.selectExecutionList(execution);
657 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
658 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "CreateNetworkCollectionBB", "AssignNetworkBB",
659 "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
660 "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB",
661 "ActivateServiceInstanceBB");
662 assertEquals("Network id not empty", !ebbs.get(2).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
663 assertEquals("Network id not empty", !ebbs.get(3).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
664 assertEquals("Network id not empty", !ebbs.get(4).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
665 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
666 ebbs.get(2).getWorkflowResourceIds().getNetworkId() == ebbs.get(3).getWorkflowResourceIds()
668 && ebbs.get(3).getWorkflowResourceIds().getNetworkId() == ebbs.get(4).getWorkflowResourceIds()
671 assertEquals("Network id not empty", !ebbs.get(5).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
672 assertEquals("Network id not empty", !ebbs.get(6).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
673 assertEquals("Network id not empty", !ebbs.get(7).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
674 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
675 ebbs.get(5).getWorkflowResourceIds().getNetworkId() == ebbs.get(6).getWorkflowResourceIds()
677 && ebbs.get(6).getWorkflowResourceIds().getNetworkId() == ebbs.get(7).getWorkflowResourceIds()
680 assertEquals("Network id not empty", !ebbs.get(8).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
681 assertEquals("Network id not empty", !ebbs.get(9).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
682 assertEquals("Network id not empty", !ebbs.get(10).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
683 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
684 ebbs.get(8).getWorkflowResourceIds().getNetworkId() == ebbs.get(9).getWorkflowResourceIds()
686 && ebbs.get(9).getWorkflowResourceIds().getNetworkId() == ebbs.get(10).getWorkflowResourceIds()
692 public void selectExecutionListServiceMacroCreateWithUserParams() throws Exception {
693 String gAction = "createInstance";
694 String resource = "Service";
695 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
696 execution.setVariable("requestAction", gAction);
698 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
699 execution.setVariable("bpmnRequest", bpmnRequest);
700 execution.setVariable("aLaCarte", false);
701 execution.setVariable("apiVersion", "7");
702 execution.setVariable("requestUri", "v6/serviceInstances/123");
705 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
706 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
707 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
708 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
709 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
710 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
711 northBoundRequest.setOrchestrationFlowList(orchFlows);
713 Service service = new Service();
714 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
716 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
717 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
718 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
719 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
720 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
721 HeatTemplate volumeHeatTemplate = new HeatTemplate();
722 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
723 vfModuleCustomization.setVfModule(vfModule);
725 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
726 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
727 HeatEnvironment heatEnvironment = new HeatEnvironment();
728 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
729 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
730 HeatTemplate moduleHeatTemplate = new HeatTemplate();
731 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
732 vfModuleCustomization2.setVfModule(vfModule2);
734 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
735 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
737 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
738 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
739 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
740 .thenReturn(vfModuleCustomization);
741 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
742 .thenReturn(vfModuleCustomization2);
743 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
744 .thenReturn(vfModuleCustomization3);
745 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
746 workflowAction.selectExecutionList(execution);
747 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
748 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
749 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB", "CreateVolumeGroupBB",
750 "ActivateVolumeGroupBB", "CreateVfModuleBB", "CreateVfModuleBB", "CreateVfModuleBB",
751 "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
752 "ActivateServiceInstanceBB");
753 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
754 int randomUUIDLength = UUID.randomUUID().toString().length();
755 assertEquals(randomUUIDLength, ebbs.get(1).getWorkflowResourceIds().getVnfId().length());
756 assertEquals(randomUUIDLength, ebbs.get(2).getWorkflowResourceIds().getVolumeGroupId().length());
757 assertEquals(randomUUIDLength, ebbs.get(3).getWorkflowResourceIds().getVfModuleId().length());
758 assertEquals(randomUUIDLength, ebbs.get(4).getWorkflowResourceIds().getVfModuleId().length());
759 assertEquals(randomUUIDLength, ebbs.get(5).getWorkflowResourceIds().getVfModuleId().length());
760 assertEquals(randomUUIDLength, ebbs.get(6).getWorkflowResourceIds().getVolumeGroupId().length());
761 assertEquals(randomUUIDLength, ebbs.get(7).getWorkflowResourceIds().getVolumeGroupId().length());
762 assertEquals(randomUUIDLength, ebbs.get(8).getWorkflowResourceIds().getVfModuleId().length());
763 assertEquals(randomUUIDLength, ebbs.get(9).getWorkflowResourceIds().getVfModuleId().length());
764 assertEquals(randomUUIDLength, ebbs.get(10).getWorkflowResourceIds().getVfModuleId().length());
765 assertEquals(randomUUIDLength, ebbs.get(11).getWorkflowResourceIds().getVfModuleId().length());
766 assertEquals(randomUUIDLength, ebbs.get(12).getWorkflowResourceIds().getVfModuleId().length());
767 assertEquals(randomUUIDLength, ebbs.get(13).getWorkflowResourceIds().getVfModuleId().length());
768 assertEquals(randomUUIDLength, ebbs.get(14).getWorkflowResourceIds().getVnfId().length());
769 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
770 assertEquals(true, execution.getVariable("homing"));
774 public void selectExecutionListServiceMacroDeleteTest() throws Exception {
775 String gAction = "deleteInstance";
776 String resource = "Service";
777 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
778 execution.setVariable("requestAction", gAction);
779 String bpmnRequest = new String(Files
780 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
781 execution.setVariable("bpmnRequest", bpmnRequest);
782 execution.setVariable("aLaCarte", false);
783 execution.setVariable("apiVersion", "7");
784 execution.setVariable("requestUri", "v6/serviceInstances/123");
787 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
788 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
789 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
790 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
791 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
792 northBoundRequest.setOrchestrationFlowList(orchFlows);
794 ServiceInstance serviceInstanceAAI = new ServiceInstance();
795 serviceInstanceAAI.setServiceInstanceId("aaisi123");
796 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
797 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
798 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
799 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
800 vnf.setVnfId("vnfId123");
802 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
803 vnf.getVfModules().add(vfModule);
804 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
805 vnf.getVfModules().add(vfModule2);
807 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
808 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
809 volumeGroup.setVolumeGroupId("vg123");
810 vnf.getVolumeGroups().add(volumeGroup);
812 serviceInstanceMSO.getVnfs().add(vnf);
814 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
815 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
816 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
817 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
818 workflowAction.selectExecutionList(execution);
819 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
820 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
821 "DeleteVfModuleBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB",
822 "DeactivateServiceInstanceBB", "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
823 "UnassignVnfBB", "UnassignServiceInstanceBB");
827 public void selectExecutionListServiceMacroUnassignTest() throws Exception {
828 String gAction = "unassignInstance";
829 String resource = "Service";
830 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
831 execution.setVariable("requestAction", gAction);
832 String bpmnRequest = new String(Files
833 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
834 execution.setVariable("bpmnRequest", bpmnRequest);
835 execution.setVariable("aLaCarte", false);
836 execution.setVariable("apiVersion", "7");
837 execution.setVariable("requestUri", "v6/serviceInstances/123");
840 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
841 List<OrchestrationFlow> orchFlows = createFlowList("UnassignVfModuleBB", "UnassignVolumeGroupBB",
842 "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
843 northBoundRequest.setOrchestrationFlowList(orchFlows);
845 ServiceInstance serviceInstanceAAI = new ServiceInstance();
846 serviceInstanceAAI.setServiceInstanceId("aaisi123");
847 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
848 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
849 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
850 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
851 vnf.setVnfId("vnfId123");
853 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
854 vnf.getVfModules().add(vfModule);
855 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
856 vnf.getVfModules().add(vfModule2);
858 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
859 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
860 volumeGroup.setVolumeGroupId("vg123");
861 vnf.getVolumeGroups().add(volumeGroup);
863 serviceInstanceMSO.getVnfs().add(vnf);
865 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
866 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
867 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
868 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
869 workflowAction.selectExecutionList(execution);
870 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
871 assertEqualsBulkFlowName(ebbs, "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
872 "UnassignVnfBB", "UnassignServiceInstanceBB");
876 public void selectExecutionListServiceMacroDeleteNetworkCollectionTest() throws Exception {
877 String gAction = "deleteInstance";
878 String resource = "Service";
879 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
880 execution.setVariable("requestAction", gAction);
881 String bpmnRequest = new String(Files
882 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
883 execution.setVariable("bpmnRequest", bpmnRequest);
884 execution.setVariable("aLaCarte", false);
885 execution.setVariable("apiVersion", "7");
886 execution.setVariable("requestUri", "v6/serviceInstances/123");
889 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
890 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
891 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
892 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
893 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
894 northBoundRequest.setOrchestrationFlowList(orchFlows);
896 ServiceInstance serviceInstanceAAI = new ServiceInstance();
897 serviceInstanceAAI.setServiceInstanceId("aaisi123");
898 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
899 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
901 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network =
902 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
903 network.setNetworkId("123");
904 serviceInstanceMSO.getNetworks().add(network);
905 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network2 =
906 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
907 network2.setNetworkId("321");
908 serviceInstanceMSO.getNetworks().add(network2);
910 Collection collection = new Collection();
911 serviceInstanceMSO.setCollection(collection);
913 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
914 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
915 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
916 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
917 workflowAction.selectExecutionList(execution);
918 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
919 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
920 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeleteNetworkCollectionBB",
921 "DeactivateServiceInstanceBB", "UnassignServiceInstanceBB");
925 public void selectExecutionListVnfMacroRecreateTest() throws Exception {
926 String gAction = "recreateInstance";
927 String resource = "Vnf";
928 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
929 execution.setVariable("requestAction", gAction);
931 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/VnfMacroReplace.json")));
932 execution.setVariable("bpmnRequest", bpmnRequest);
933 execution.setVariable("aLaCarte", false);
934 execution.setVariable("apiVersion", "7");
935 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/recreate");
936 execution.setVariable("serviceInstanceId", "123");
937 execution.setVariable("vnfId", "1234");
939 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
940 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
941 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
942 "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB",
943 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
944 "AAIUnsetVnfInMaintBB");
945 northBoundRequest.setOrchestrationFlowList(orchFlows);
947 ServiceInstance serviceInstanceAAI = new ServiceInstance();
948 serviceInstanceAAI.setServiceInstanceId("123");
949 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
950 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
951 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
952 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
953 vnf.setVnfId("1234");
955 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
956 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
957 vfModule.setVfModuleId("vfModule1");
958 vnf.getVfModules().add(vfModule);
959 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
960 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
961 vfModule2.setVfModuleId("vfModule2");
962 vnf.getVfModules().add(vfModule2);
964 serviceInstanceMSO.getVnfs().add(vnf);
966 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
967 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
968 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
969 false, "cloud-owner")).thenReturn(northBoundRequest);
970 workflowAction.selectExecutionList(execution);
971 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
972 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateVfModuleBB",
973 "DeactivateVfModuleBB", "DeleteVfModuleBB", "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB",
974 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
975 "AAIUnsetVnfInMaintBB");
979 public void selectExecutionListVnfMacroReplaceTest() throws Exception {
980 String gAction = "replaceInstance";
981 String resource = "Vnf";
982 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
983 execution.setVariable("requestAction", gAction);
985 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/VnfMacroReplace.json")));
986 execution.setVariable("bpmnRequest", bpmnRequest);
987 execution.setVariable("aLaCarte", false);
988 execution.setVariable("apiVersion", "7");
989 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/replace");
990 execution.setVariable("serviceInstanceId", "123");
991 execution.setVariable("vnfId", "1234");
993 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
994 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
995 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
996 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
997 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB",
998 "ChangeModelVnfBB", "ActivateVnfBB", "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB",
999 "AAIUnsetVnfInMaintBB");
1000 northBoundRequest.setOrchestrationFlowList(orchFlows);
1002 ServiceInstance serviceInstanceAAI = new ServiceInstance();
1003 serviceInstanceAAI.setServiceInstanceId("123");
1004 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
1005 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
1006 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
1007 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
1008 vnf.setVnfId("1234");
1009 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
1010 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
1011 vfModule.setVfModuleId("vfModule1");
1012 vnf.getVfModules().add(vfModule);
1013 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
1014 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
1015 vfModule2.setVfModuleId("vfModule2");
1016 vnf.getVfModules().add(vfModule2);
1017 serviceInstanceMSO.getVnfs().add(vnf);
1018 VfModule vfModuleAAI = new VfModule();
1019 vfModuleAAI.setVfModuleId("vfModule2");
1020 RelationshipList relationshipList = new RelationshipList();
1021 Relationship relationship = new Relationship();
1022 relationshipList.getRelationship().add(relationship);
1023 vfModuleAAI.setRelationshipList(relationshipList);
1024 Relationships relationships = new Relationships("abc");
1025 Configuration config = new Configuration();
1026 config.setConfigurationId("configId");
1027 Optional<Configuration> configOp = Optional.of(config);
1028 Optional<Relationships> relationshipsOp = Optional.of(relationships);
1030 doReturn(relationshipsOp).when(workflowActionUtils).extractRelationshipsVnfc(isA(Relationships.class));
1031 doReturn(configOp).when(workflowActionUtils).extractRelationshipsConfiguration(isA(Relationships.class));
1032 doReturn(vfModuleAAI).when(bbSetupUtils).getAAIVfModule("1234", "vfModule2");
1033 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
1034 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
1035 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1036 false, "cloud-owner")).thenReturn(northBoundRequest);
1037 workflowAction.selectExecutionList(execution);
1038 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1039 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateFabricConfigurationBB",
1040 "UnassignFabricConfigurationBB", "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
1041 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "ChangeModelVfModuleBB",
1042 "CreateVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB",
1043 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ChangeModelVnfBB", "ActivateVnfBB",
1044 "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
1045 for (ExecuteBuildingBlock executeBuildingBlock : ebbs) {
1046 assertEquals("123", executeBuildingBlock.getWorkflowResourceIds().getServiceInstanceId());
1052 public void selectExecutionListNetworkCollectionMacroCreate() throws Exception {
1053 String gAction = "createInstance";
1054 String resource = "NetworkCollection";
1055 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1056 execution.setVariable("requestAction", gAction);
1057 String bpmnRequest = new String(
1058 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/CreateNetworkCollection.json")));
1059 execution.setVariable("bpmnRequest", bpmnRequest);
1060 execution.setVariable("aLaCarte", false);
1061 execution.setVariable("apiVersion", "7");
1062 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
1065 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1066 List<OrchestrationFlow> orchFlows = createFlowList("CreateNetworkCollectionBB", "AssignNetworkBB",
1067 "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB");
1068 northBoundRequest.setOrchestrationFlowList(orchFlows);
1070 Service service = new Service();
1071 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
1072 CollectionResource collectionResource = new CollectionResource();
1073 collectionResource.setToscaNodeType("Data NetworkCollection Data");
1074 collectionResourceCustomization.setCollectionResource(collectionResource);
1075 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
1077 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1078 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1079 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1080 workflowAction.selectExecutionList(execution);
1081 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1082 assertEqualsBulkFlowName(ebbs, "CreateNetworkCollectionBB", "AssignNetworkBB", "CreateNetworkBB",
1083 "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
1084 "ActivateNetworkCollectionBB");
1089 public void selectExecutionListNetworkCollectionMacroDelete() throws Exception {
1090 String gAction = "deleteInstance";
1091 String resource = "NetworkCollection";
1092 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1093 execution.setVariable("requestAction", gAction);
1094 String bpmnRequest = new String(
1095 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/CreateNetworkCollection.json")));
1096 execution.setVariable("bpmnRequest", bpmnRequest);
1097 execution.setVariable("aLaCarte", false);
1098 execution.setVariable("apiVersion", "7");
1099 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
1101 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1102 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateNetworkBB", "DeleteNetworkBB",
1103 "UnassignNetworkBB", "DeactivateNetworkCollectionBB", "DeleteNetworkCollectionBB");
1104 northBoundRequest.setOrchestrationFlowList(orchFlows);
1106 Service service = new Service();
1107 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
1108 CollectionResource collectionResource = new CollectionResource();
1109 collectionResource.setToscaNodeType("Data NetworkCollection Data");
1110 collectionResourceCustomization.setCollectionResource(collectionResource);
1111 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
1113 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1114 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1115 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1116 workflowAction.selectExecutionList(execution);
1117 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1118 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1119 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeactivateNetworkCollectionBB",
1120 "DeleteNetworkCollectionBB");
1124 public void selectExecutionListALaCarteVfModuleNoFabricCreateTest() throws Exception {
1125 String gAction = "createInstance";
1126 String resource = "VfModule";
1127 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1128 execution.setVariable("requestAction", gAction);
1129 String bpmnRequest =
1130 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1131 execution.setVariable("bpmnRequest", bpmnRequest);
1132 execution.setVariable("aLaCarte", true);
1133 execution.setVariable("apiVersion", "7");
1134 execution.setVariable("requestUri",
1135 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1138 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1139 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1140 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1141 northBoundRequest.setOrchestrationFlowList(orchFlows);
1143 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1144 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1145 workflowAction.selectExecutionList(execution);
1146 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1147 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB");
1151 public void selectExecutionListALaCarteVfModuleFabricCreateTest() throws Exception {
1152 String gAction = "createInstance";
1153 String resource = "VfModule";
1154 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1155 execution.setVariable("requestAction", gAction);
1156 String bpmnRequest =
1157 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1158 execution.setVariable("bpmnRequest", bpmnRequest);
1159 execution.setVariable("aLaCarte", true);
1160 execution.setVariable("apiVersion", "7");
1161 execution.setVariable("requestUri",
1162 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1164 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1165 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1166 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1167 northBoundRequest.setOrchestrationFlowList(orchFlows);
1169 List<CvnfcCustomization> cvnfcCustomizations = new ArrayList<CvnfcCustomization>();
1170 CvnfcCustomization cvnfcCustomization = new CvnfcCustomization();
1171 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1172 new CvnfcConfigurationCustomization();
1173 ConfigurationResource configurationResource = new ConfigurationResource();
1174 configurationResource.setToscaNodeType("FabricConfiguration");
1175 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1176 vnfVfmoduleCvnfcConfigurationCustomization.setModelInstanceName("modelInstanceName1");
1177 vnfVfmoduleCvnfcConfigurationCustomization.setCvnfcCustomization(cvnfcCustomization);
1178 List<CvnfcConfigurationCustomization> custSet = new ArrayList<CvnfcConfigurationCustomization>();
1179 custSet.add(vnfVfmoduleCvnfcConfigurationCustomization);
1180 cvnfcCustomization.setCvnfcConfigurationCustomization(custSet);
1181 cvnfcCustomization.setDescription("description");
1182 cvnfcCustomizations.add(cvnfcCustomization);
1184 CvnfcCustomization cvnfcCustomization2 = new CvnfcCustomization();
1185 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization2 =
1186 new CvnfcConfigurationCustomization();
1187 ConfigurationResource configurationResource2 = new ConfigurationResource();
1188 configurationResource2.setToscaNodeType("FabricConfiguration");
1189 vnfVfmoduleCvnfcConfigurationCustomization2.setConfigurationResource(configurationResource2);
1190 vnfVfmoduleCvnfcConfigurationCustomization2.setModelInstanceName("modelInstanceName2");
1191 vnfVfmoduleCvnfcConfigurationCustomization2.setCvnfcCustomization(cvnfcCustomization2);
1192 List<CvnfcConfigurationCustomization> custSet2 = new ArrayList<CvnfcConfigurationCustomization>();
1193 custSet2.add(vnfVfmoduleCvnfcConfigurationCustomization2);
1194 cvnfcCustomization2.setCvnfcConfigurationCustomization(custSet2);
1195 cvnfcCustomization2.setDescription("description2");
1196 cvnfcCustomizations.add(cvnfcCustomization2);
1198 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1199 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1200 // when(catalogDbClient.getCvnfcCustomizationByVnfCustomizationUUIDAndVfModuleCustomizationUUID("fc25201d-36d6-43a3-8d39-fdae88e526ae",
1201 // "9a6d01fd-19a7-490a-9800-460830a12e0b")).thenReturn(cvnfcCustomizations);
1202 workflowAction.selectExecutionList(execution);
1203 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1204 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1205 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "AssignFabricConfigurationBB",
1206 "ActivateFabricConfigurationBB");
1210 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceTest() throws Exception {
1211 String gAction = "replaceInstance";
1212 String resource = "VfModule";
1213 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1214 execution.setVariable("requestAction", gAction);
1215 String bpmnRequest =
1216 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1217 execution.setVariable("bpmnRequest", bpmnRequest);
1218 execution.setVariable("aLaCarte", true);
1219 execution.setVariable("apiVersion", "7");
1220 execution.setVariable("requestUri",
1221 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1223 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1224 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1225 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1226 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1227 workflowAction.selectExecutionList(execution);
1228 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1230 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1231 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1232 "ChangeModelServiceInstanceBB");
1236 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1237 String gAction = "replaceInstanceRetainAssignments";
1238 String resource = "VfModule";
1239 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1240 execution.setVariable("requestAction", gAction);
1241 String bpmnRequest =
1242 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1243 execution.setVariable("bpmnRequest", bpmnRequest);
1244 execution.setVariable("aLaCarte", true);
1245 execution.setVariable("apiVersion", "7");
1246 execution.setVariable("requestUri",
1247 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1249 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1250 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1251 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1252 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1253 workflowAction.selectExecutionList(execution);
1254 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1256 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1257 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1261 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceTest() throws Exception {
1262 String gAction = "replaceInstance";
1263 String resource = "VfModule";
1264 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1265 execution.setVariable("requestAction", gAction);
1266 String bpmnRequest =
1267 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1268 execution.setVariable("bpmnRequest", bpmnRequest);
1269 execution.setVariable("aLaCarte", true);
1270 execution.setVariable("apiVersion", "7");
1271 execution.setVariable("requestUri",
1272 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1273 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1274 execution.setVariable("vfModuleId", "1234");
1276 VolumeGroup volumeGroup = new VolumeGroup();
1277 volumeGroup.setVolumeGroupId("volumeGroupId");
1278 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1279 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1280 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1281 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1282 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1283 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1284 workflowAction.selectExecutionList(execution);
1285 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1287 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1288 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVfModuleBB",
1289 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1293 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceRetainAssignmentsTest()
1295 String gAction = "replaceInstanceRetainAssignments";
1296 String resource = "VfModule";
1297 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1298 execution.setVariable("requestAction", gAction);
1299 String bpmnRequest =
1300 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1301 execution.setVariable("bpmnRequest", bpmnRequest);
1302 execution.setVariable("aLaCarte", true);
1303 execution.setVariable("apiVersion", "7");
1304 execution.setVariable("requestUri",
1305 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1306 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1307 execution.setVariable("vfModuleId", "1234");
1309 VolumeGroup volumeGroup = new VolumeGroup();
1310 volumeGroup.setVolumeGroupId("volumeGroupId");
1311 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1312 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1314 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1315 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1316 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1317 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1318 workflowAction.selectExecutionList(execution);
1319 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1321 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1322 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
1323 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1327 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceTest() throws Exception {
1328 String gAction = "replaceInstance";
1329 String resource = "VfModule";
1330 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1331 execution.setVariable("requestAction", gAction);
1332 String bpmnRequest =
1333 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1334 execution.setVariable("bpmnRequest", bpmnRequest);
1335 execution.setVariable("aLaCarte", true);
1336 execution.setVariable("apiVersion", "7");
1337 execution.setVariable("requestUri",
1338 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1339 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1340 execution.setVariable("vfModuleId", "1234");
1342 VolumeGroup volumeGroup = new VolumeGroup();
1343 volumeGroup.setVolumeGroupId("volumeGroupId");
1344 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1345 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1347 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1348 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1349 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1350 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1351 vfModuleCustomization.setVfModule(vfModule);
1352 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1353 .thenReturn(vfModuleCustomization);
1355 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1356 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1357 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1358 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1359 workflowAction.selectExecutionList(execution);
1360 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1362 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1363 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1364 "ChangeModelServiceInstanceBB");
1368 public void selectExecutionListALaCarteVfModuleWithFabricKeepVolumeGroupReplaceTest() throws Exception {
1369 String gAction = "replaceInstance";
1370 String resource = "VfModule";
1371 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1372 execution.setVariable("requestAction", gAction);
1373 String bpmnRequest =
1374 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1375 execution.setVariable("bpmnRequest", bpmnRequest);
1376 execution.setVariable("aLaCarte", true);
1377 execution.setVariable("apiVersion", "7");
1378 execution.setVariable("requestUri",
1379 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1380 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1381 execution.setVariable("vfModuleId", "1234");
1383 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1384 vnf.setVnfId("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1385 vnf.setModelCustomizationId("modelCustomizationId");
1386 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
1388 org.onap.aai.domain.yang.VfModule vfModuleFromAAI = new org.onap.aai.domain.yang.VfModule();
1389 vfModuleFromAAI.setModelCustomizationId("modelCustomizationId");
1390 vfModuleFromAAI.setVfModuleId("1234");
1391 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModuleFromAAI);
1393 VolumeGroup volumeGroup = new VolumeGroup();
1394 volumeGroup.setVolumeGroupId("volumeGroupId");
1395 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1396 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1398 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1399 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1400 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1401 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1402 vfModuleCustomization.setVfModule(vfModule);
1403 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1404 .thenReturn(vfModuleCustomization);
1405 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1406 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1407 vnfc.setModelInvariantId("modelInvariantId");
1408 vnfc.setVnfcName("testVnfcName");
1410 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(), any(), any());
1412 List<org.onap.aai.domain.yang.Configuration> configurations =
1413 new ArrayList<org.onap.aai.domain.yang.Configuration>();
1414 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1415 configuration.setConfigurationId("configurationId");
1416 configuration.setModelCustomizationId("modelCustimizationId");
1417 configuration.setConfigurationName("testConfigurationName");
1418 configurations.add(configuration);
1419 doReturn(configurations).when(SPY_workflowAction).getRelatedResourcesInVnfc(any(), any(), any());
1421 doReturn("testVnfcName").when(SPY_workflowAction).getVnfcNameForConfiguration(any());
1423 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1424 northBoundRequest.setOrchestrationFlowList(replaceVfModuleWithFabricOrchFlows);
1425 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1426 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1427 SPY_workflowAction.selectExecutionList(execution);
1428 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1430 assertEqualsBulkFlowName(ebbs, "DeleteFabricConfigurationBB", "DeactivateVfModuleBB", "DeleteVfModuleATTBB",
1431 "UnassignVFModuleBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1432 "AddFabricConfigurationBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1436 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1437 String gAction = "replaceInstanceRetainAssignments";
1438 String resource = "VfModule";
1439 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1440 execution.setVariable("requestAction", gAction);
1441 String bpmnRequest =
1442 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1443 execution.setVariable("bpmnRequest", bpmnRequest);
1444 execution.setVariable("aLaCarte", true);
1445 execution.setVariable("apiVersion", "7");
1446 execution.setVariable("requestUri",
1447 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1448 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1449 execution.setVariable("vfModuleId", "1234");
1451 VolumeGroup volumeGroup = new VolumeGroup();
1452 volumeGroup.setVolumeGroupId("volumeGroupId");
1453 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1454 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1456 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1457 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1458 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1459 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1460 vfModuleCustomization.setVfModule(vfModule);
1461 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1462 .thenReturn(vfModuleCustomization);
1464 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1465 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1466 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1467 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1468 workflowAction.selectExecutionList(execution);
1469 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1471 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1472 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1476 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceTest() throws Exception {
1477 String gAction = "replaceInstance";
1478 String resource = "VfModule";
1479 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1480 execution.setVariable("requestAction", gAction);
1481 String bpmnRequest =
1482 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1483 execution.setVariable("bpmnRequest", bpmnRequest);
1484 execution.setVariable("aLaCarte", true);
1485 execution.setVariable("apiVersion", "7");
1486 execution.setVariable("requestUri",
1487 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1488 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1489 execution.setVariable("vfModuleId", "1234");
1491 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1492 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1493 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1494 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1495 vfModuleCustomization.setVfModule(vfModule);
1496 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1497 .thenReturn(vfModuleCustomization);
1499 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1500 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1501 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1502 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1503 workflowAction.selectExecutionList(execution);
1504 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1506 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1507 "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1508 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1512 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceRetainAssignmentsTest()
1514 String gAction = "replaceInstanceRetainAssignments";
1515 String resource = "VfModule";
1516 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1517 execution.setVariable("requestAction", gAction);
1518 String bpmnRequest =
1519 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1520 execution.setVariable("bpmnRequest", bpmnRequest);
1521 execution.setVariable("aLaCarte", true);
1522 execution.setVariable("apiVersion", "7");
1523 execution.setVariable("requestUri",
1524 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1525 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1526 execution.setVariable("vfModuleId", "1234");
1528 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1529 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1530 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1531 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1532 vfModuleCustomization.setVfModule(vfModule);
1533 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1534 .thenReturn(vfModuleCustomization);
1536 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1537 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1538 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1539 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1540 workflowAction.selectExecutionList(execution);
1541 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1543 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "AssignVolumeGroupBB",
1544 "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
1545 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1549 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceTest() throws Exception {
1550 String gAction = "replaceInstance";
1551 String resource = "VfModule";
1552 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1553 execution.setVariable("requestAction", gAction);
1554 String bpmnRequest = new String(
1555 Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleReplaceRebuildVolumeGroups.json")));
1556 execution.setVariable("bpmnRequest", bpmnRequest);
1557 execution.setVariable("aLaCarte", true);
1558 execution.setVariable("apiVersion", "7");
1559 execution.setVariable("requestUri",
1560 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1561 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1562 execution.setVariable("vfModuleId", "1234");
1564 VolumeGroup volumeGroup = new VolumeGroup();
1565 volumeGroup.setVolumeGroupId("volumeGroupId");
1566 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1567 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1569 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1570 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1571 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1572 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1573 vfModuleCustomization.setVfModule(vfModule);
1574 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1575 .thenReturn(vfModuleCustomization);
1577 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1578 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1579 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1580 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1581 workflowAction.selectExecutionList(execution);
1582 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1584 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1585 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
1586 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
1587 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1591 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1592 String gAction = "replaceInstanceRetainAssignments";
1593 String resource = "VfModule";
1594 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1595 execution.setVariable("requestAction", gAction);
1596 String bpmnRequest = new String(
1597 Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleReplaceRebuildVolumeGroups.json")));
1598 execution.setVariable("bpmnRequest", bpmnRequest);
1599 execution.setVariable("aLaCarte", true);
1600 execution.setVariable("apiVersion", "7");
1601 execution.setVariable("requestUri",
1602 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1603 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1604 execution.setVariable("vfModuleId", "1234");
1606 VolumeGroup volumeGroup = new VolumeGroup();
1607 volumeGroup.setVolumeGroupId("volumeGroupId");
1608 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1609 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1611 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1612 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1613 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1614 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1615 vfModuleCustomization.setVfModule(vfModule);
1616 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1617 .thenReturn(vfModuleCustomization);
1619 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1620 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1621 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1622 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1623 workflowAction.selectExecutionList(execution);
1624 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1626 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1627 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB", "ChangeModelVfModuleBB",
1628 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1629 "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1634 public void selectExecutionListALaCarteVfModuleFabricDeleteTest() throws Exception {
1635 String gAction = "deleteInstance";
1636 String resource = "VfModule";
1637 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1638 execution.setVariable("requestAction", gAction);
1639 String bpmnRequest =
1640 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1641 execution.setVariable("bpmnRequest", bpmnRequest);
1642 execution.setVariable("aLaCarte", true);
1643 execution.setVariable("apiVersion", "7");
1644 execution.setVariable("requestUri",
1645 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1647 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1648 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1649 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1650 northBoundRequest.setOrchestrationFlowList(orchFlows);
1652 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1653 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1655 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1656 vnf.setVnfId("vnf0");
1657 vnf.setModelCustomizationId("modelCustomizationId");
1658 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1660 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1661 vfModule.setModelCustomizationId("modelCustomizationId");
1662 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1664 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1665 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1666 vnfc.setModelInvariantId("modelInvariantId");
1667 vnfc.setVnfcName("testVnfcName");
1669 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1672 List<org.onap.aai.domain.yang.Configuration> configurations =
1673 new ArrayList<org.onap.aai.domain.yang.Configuration>();
1674 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1675 configuration.setConfigurationId("configurationId");
1676 configuration.setModelCustomizationId("modelCustimizationId");
1677 configuration.setConfigurationName("testConfigurationName");
1678 configurations.add(configuration);
1679 doReturn(configurations).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1682 doReturn("testName").when(SPY_workflowAction).getVnfcNameForConfiguration(anyObject());
1684 SPY_workflowAction.selectExecutionList(execution);
1685 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1686 assertEqualsBulkFlowName(ebbs, "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB",
1687 "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1691 public void getConfigBuildingBlocksNoVfModuleFabricDeleteTest() throws Exception {
1692 String gAction = "deleteInstance";
1693 ObjectMapper mapper = new ObjectMapper();
1694 WorkflowType resourceType = WorkflowType.VFMODULE;
1695 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1696 execution.setVariable("requestAction", gAction);
1697 String bpmnRequest =
1698 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1699 execution.setVariable("bpmnRequest", bpmnRequest);
1700 execution.setVariable("vnfId", "1234");
1701 execution.setVariable("vfModuleId", "vfModuleId1234");
1702 execution.setVariable("requestUri",
1703 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1704 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1705 RequestDetails requestDetails = sIRequest.getRequestDetails();
1706 String requestAction = "deleteInstance";
1707 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1708 boolean aLaCarte = true;
1709 String apiVersion = "7";
1710 String vnfType = "vnfType";
1711 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1712 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1713 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1714 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1716 thrown.expect(AAIEntityNotFoundException.class);
1717 thrown.expectMessage(containsString(
1718 "No matching VfModule is found in Generic-Vnf in AAI for vnfId: 1234 and vfModuleId : vfModuleId1234"));
1720 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1721 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1723 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1724 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1725 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1726 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1728 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1729 vnf.setVnfId("vnf0");
1730 vnf.setModelCustomizationId("modelCustomizationId");
1731 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1733 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1734 vfModule.setModelCustomizationId("modelCustomizationId");
1735 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(null);
1737 SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1741 public void selectExecutionListALaCarteVfModuleNoFabricDeleteTest() throws Exception {
1742 String gAction = "deleteInstance";
1743 String resource = "VfModule";
1744 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1745 execution.setVariable("requestAction", gAction);
1746 String bpmnRequest =
1747 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1748 execution.setVariable("bpmnRequest", bpmnRequest);
1749 execution.setVariable("aLaCarte", true);
1750 execution.setVariable("apiVersion", "7");
1751 execution.setVariable("requestUri",
1752 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1754 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1755 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1756 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1757 northBoundRequest.setOrchestrationFlowList(orchFlows);
1759 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1760 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1762 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1763 vnf.setVnfId("vnf0");
1764 vnf.setModelCustomizationId("modelCustomizationId");
1765 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1767 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1768 vfModule.setModelCustomizationId("modelCustomizationId");
1769 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1771 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1772 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1773 vnfc.setModelInvariantId("modelInvariantId");
1774 vnfc.setVnfcName("testVnfcName");
1776 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1779 List<org.onap.aai.domain.yang.Configuration> configurations =
1780 new ArrayList<org.onap.aai.domain.yang.Configuration>();
1781 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1782 doReturn(configurations).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1785 doReturn("testName").when(SPY_workflowAction).getVnfcNameForConfiguration(anyObject());
1787 SPY_workflowAction.selectExecutionList(execution);
1788 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1789 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1793 public void selectExecutionListMacroResumeTest() throws Exception {
1794 String gAction = "createInstance";
1795 String resource = "Service";
1796 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1797 execution.setVariable("requestAction", gAction);
1798 String bpmnRequest =
1799 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
1800 execution.setVariable("bpmnRequest", bpmnRequest);
1801 execution.setVariable("aLaCarte", false);
1802 execution.setVariable("apiVersion", "7");
1803 execution.setVariable("requestUri", "v6/serviceInstances/123");
1805 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1806 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1807 northBoundRequest.setOrchestrationFlowList(orchFlows);
1809 Service service = new Service();
1810 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
1812 ServiceInstance si = new ServiceInstance();
1814 when(bbSetupUtils.getAAIServiceInstanceById("123")).thenReturn(si);
1815 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1817 String flowsToExecuteString =
1818 "[{\"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\"}}]";
1819 ObjectMapper om = new ObjectMapper();
1820 List<ExecuteBuildingBlock> flowsToExecute = null;
1822 ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
1823 flowsToExecute = Arrays.asList(asArray);
1824 } catch (Exception e) {
1825 e.printStackTrace();
1828 when(bbSetupUtils.loadOriginalFlowExecutionPath(anyString())).thenReturn(flowsToExecute);
1830 workflowAction.selectExecutionList(execution);
1831 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1832 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB");
1836 public void getRelatedResourcesInVfModuleTest() throws Exception {
1837 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1838 vnfc.setModelInvariantId("modelInvariantId");
1839 vnfc.setVnfcName("testVnfcName");
1841 String vfncPayload =
1842 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/vnfcResponse.json")));
1843 AAIResultWrapper vfncWrapper = new AAIResultWrapper(vfncPayload);
1845 String configurationPayload =
1846 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/configurationResponse.json")));
1847 AAIResultWrapper configurationWrapper = new AAIResultWrapper(configurationPayload);
1848 List<AAIResultWrapper> configurationResultWrappers = new ArrayList<AAIResultWrapper>();
1849 configurationResultWrappers.add(configurationWrapper);
1851 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VNFC, vnfc.getVnfcName());
1852 when(bbSetupUtils.getAAIResourceDepthOne(uri)).thenReturn(vfncWrapper);
1854 doReturn(configurationResultWrappers).when(SPY_workflowAction).getResultWrappersFromRelationships(anyObject(),
1856 List<org.onap.aai.domain.yang.Configuration> configurationsList = SPY_workflowAction.getRelatedResourcesInVnfc(
1857 vnfc, org.onap.aai.domain.yang.Configuration.class, AAIObjectType.CONFIGURATION);
1858 assertEquals(1, configurationsList.size());
1859 assertEquals("testConfigurationId", configurationsList.get(0).getConfigurationId());
1863 * WorkflowActionBB Tests
1867 public void pluralTest() {
1868 List<String> items = Arrays.asList("serviceInstances, Service", "vnfs, Vnf", "vfModules, VfModule",
1869 "networks, Network", "invalidNames, invalidNames");
1870 items.forEach(item -> {
1871 String[] split = item.split(",");
1872 String type = split[0].trim();
1873 String expected = split[1].trim();
1874 assertThat(workflowAction.convertTypeFromPlural(type), equalTo(expected));
1879 public void sortExecutionPathByObjectForVlanTaggingCreateTest() throws Exception {
1880 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1882 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("0");
1883 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1884 executeFlows.add(ebb);
1886 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("1");
1887 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1888 executeFlows.add(ebb2);
1890 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("0");
1891 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1892 executeFlows.add(ebb3);
1894 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("1");
1895 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1896 executeFlows.add(ebb4);
1898 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("0");
1899 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1900 executeFlows.add(ebb5);
1902 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("1");
1903 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1904 executeFlows.add(ebb6);
1906 List<ExecuteBuildingBlock> sorted =
1907 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "createInstance");
1908 assertEqualsBulkFlowName(sorted, "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB",
1909 "CreateNetworkBB", "ActivateNetworkBB");
1913 public void sortExecutionPathByObjectForVlanTaggingDeleteTest() throws Exception {
1914 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1916 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("0");
1917 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1918 executeFlows.add(ebb);
1920 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("1");
1921 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1922 executeFlows.add(ebb2);
1924 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("0");
1925 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1926 executeFlows.add(ebb3);
1928 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("1");
1929 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1930 executeFlows.add(ebb4);
1932 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("0");
1933 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1934 executeFlows.add(ebb5);
1936 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("1");
1937 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1938 executeFlows.add(ebb6);
1940 List<ExecuteBuildingBlock> sorted =
1941 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "deleteInstance");
1942 assertEqualsBulkFlowName(sorted, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1943 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB");
1947 public void queryNorthBoundRequestCatalogDbNestedTest() throws MalformedURLException {
1948 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1949 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
1950 "VNF-Macro-Replace", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
1951 northBoundRequest.setOrchestrationFlowList(orchFlows);
1952 List<OrchestrationFlow> macroFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1953 "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB");
1955 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner("replaceInstance",
1956 "Vnf", false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1957 when(catalogDbClient.getOrchestrationFlowByAction("VNF-Macro-Replace")).thenReturn(macroFlows);
1958 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "replaceInstance",
1959 WorkflowType.VNF, false, "my-custom-cloud-owner");
1960 assertEquals(flows.get(0).getFlowName(), "AAICheckVnfInMaintBB");
1961 assertEquals(flows.get(1).getFlowName(), "AAISetVnfInMaintBB");
1962 assertEquals(flows.get(2).getFlowName(), "DeactivateVfModuleBB");
1963 assertEquals(flows.get(3).getFlowName(), "DeleteVfModuleBB");
1964 assertEquals(flows.get(4).getFlowName(), "DeactivateVnfBB");
1965 assertEquals(flows.get(5).getFlowName(), "CreateVfModuleBB");
1966 assertEquals(flows.get(6).getFlowName(), "ActivateVfModuleBB");
1967 assertEquals(flows.get(7).getFlowName(), "ActivateVnfBB");
1968 assertEquals(flows.get(8).getFlowName(), "SDNOVnfHealthCheckBB");
1969 assertEquals(flows.get(9).getFlowName(), "AAIUnsetVnfInMaintBB");
1973 public void queryNorthBoundRequestCatalogDbTransportTest() throws MalformedURLException {
1974 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1975 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1976 northBoundRequest.setOrchestrationFlowList(orchFlows);
1977 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwnerAndServiceType(
1978 "createInstance", "Service", true, "my-custom-cloud-owner", "TRANSPORT")).thenReturn(northBoundRequest);
1980 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "createInstance",
1981 WorkflowType.SERVICE, true, "my-custom-cloud-owner", "TRANSPORT");
1982 assertEquals(flows.get(0).getFlowName(), "AssignServiceInstanceBB");
1986 public void extractResourceIdAndTypeFromUriTest() {
1987 String uri = "/v6/serviceInstances/123";
1988 String uri2 = "/v6/serviceInstances/123/vnfs/1234";
1989 String uri3 = "/v6/serviceInstances";
1990 String uri4 = "/v6/serviceInstances/assign";
1991 String uri5 = "'/v6/serviceInstances/123/vnfs";
1992 String uri6 = "/v6/serviceInstances/123/vnfs/1234/someAction";
1993 String uri7 = "/v6/serviceInstances/123/vnfs/1234/vfModules/5678/replace";
1994 String uri8 = "/v6/serviceInstances/123/vnfs/1234/vfModules/scaleOut";
1995 Resource expected1 = new Resource(WorkflowType.SERVICE, "123", true);
1996 Resource expected2 = new Resource(WorkflowType.VNF, "1234", false);
1997 Resource expected3 = new Resource(WorkflowType.VNF, "1234", false);
1998 Resource expected4 = new Resource(WorkflowType.VFMODULE, "5678", false);
1999 Resource result = workflowAction.extractResourceIdAndTypeFromUri(uri);
2000 assertEquals(expected1.getResourceId(), result.getResourceId());
2001 assertEquals(expected1.getResourceType(), result.getResourceType());
2002 result = workflowAction.extractResourceIdAndTypeFromUri(uri2);
2003 assertEquals(expected2.getResourceId(), result.getResourceId());
2004 assertEquals(expected2.getResourceType(), result.getResourceType());
2005 result = workflowAction.extractResourceIdAndTypeFromUri(uri3);
2006 assertEquals("Service", result.getResourceType().toString());
2007 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
2008 result = workflowAction.extractResourceIdAndTypeFromUri(uri4);
2009 assertEquals("Service", result.getResourceType().toString());
2010 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
2011 result = workflowAction.extractResourceIdAndTypeFromUri(uri5);
2012 assertEquals("Vnf", result.getResourceType().toString());
2013 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
2014 result = workflowAction.extractResourceIdAndTypeFromUri(uri6);
2015 assertEquals(expected3.getResourceId(), result.getResourceId());
2016 assertEquals(expected3.getResourceType(), result.getResourceType());
2017 result = workflowAction.extractResourceIdAndTypeFromUri(uri7);
2018 assertEquals(expected4.getResourceId(), result.getResourceId());
2019 assertEquals(expected4.getResourceType(), result.getResourceType());
2020 result = workflowAction.extractResourceIdAndTypeFromUri(uri8);
2021 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
2022 assertEquals("VfModule", result.getResourceType().toString());
2027 public void extractResourceIdAndTypeFromUriInvalidTypeTest() {
2028 this.expectedException.expect(IllegalArgumentException.class);
2029 this.expectedException.expectMessage(containsString("Uri could not be parsed. No type found."));
2030 workflowAction.extractResourceIdAndTypeFromUri("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace");
2034 public void extractResourceIdAndTypeFromUriInvalidUriTest() {
2035 this.expectedException.expect(IllegalArgumentException.class);
2036 this.expectedException.expectMessage(containsString("Uri could not be parsed:"));
2037 workflowAction.extractResourceIdAndTypeFromUri("something that doesn't match anything");
2041 public void extractResourceIdAndTypeFromUriResumeTest() {
2042 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
2043 "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");
2044 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
2048 public void extractResourceIdAndTypeFromUriReplaceResumeTest() {
2049 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
2050 "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");
2051 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
2055 public void extractResourceIdAndTypeFromUriDeActiveResumeTest() {
2056 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
2057 "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");
2058 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
2062 public void extractResourceIdAndTypeFromUriResumeIdOnly() {
2063 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
2064 "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");
2065 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
2069 public void isUriResumeTest() {
2070 assertTrue(workflowAction.isUriResume(
2071 "http://localhost:9100/onap/so/infra/orchestrationRequests/v7/requests/2f8ab587-ef6a-4456-b7b2-d73f9363dabd/resume"));
2072 assertTrue(workflowAction.isUriResume(
2073 " 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"));
2075 assertFalse(workflowAction.isUriResume("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace"));
2079 public void isRequestMacroServiceResumeTest() {
2080 ServiceInstance si = new ServiceInstance();
2081 when(bbSetupUtils.getAAIServiceInstanceById(anyString())).thenReturn(si);
2082 assertFalse(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", ""));
2083 assertTrue(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", "123"));
2087 public void populateResourceIdsFromApiHandlerTest() {
2088 execution.setVariable("serviceInstanceId", "123");
2089 execution.setVariable("vnfId", "888");
2090 WorkflowResourceIds x = workflowAction.populateResourceIdsFromApiHandler(execution);
2091 assertEquals("123", x.getServiceInstanceId());
2092 assertEquals("888", x.getVnfId());
2093 assertNull(x.getVolumeGroupId());
2096 private RequestDetails setupRequestDetails(String globalSubscriberId, String subscriptionServiceType,
2097 String modelCustomizationId) {
2098 RequestDetails reqDetails = new RequestDetails();
2099 SubscriberInfo subInfo = new SubscriberInfo();
2100 subInfo.setGlobalSubscriberId(globalSubscriberId);
2101 reqDetails.setSubscriberInfo(subInfo);
2102 RequestParameters reqParams = new RequestParameters();
2103 reqParams.setSubscriptionServiceType(subscriptionServiceType);
2104 reqDetails.setRequestParameters(reqParams);
2105 ModelInfo modelInfo = new ModelInfo();
2106 modelInfo.setModelCustomizationId(modelCustomizationId);
2107 reqDetails.setModelInfo(modelInfo);
2112 public void validateResourceIdInAAIVnfTest() throws Exception {
2113 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2114 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2115 workflowResourceIds.setServiceInstanceId("siId123");
2117 GenericVnf vnf = new GenericVnf();
2118 vnf.setVnfId("id123");
2119 vnf.setVnfName("vnfName123");
2120 vnf.setModelCustomizationId("1234567");
2121 Optional<GenericVnf> opVnf = Optional.of(vnf);
2122 GenericVnf vnf2 = new GenericVnf();
2123 vnf2.setVnfId("id123");
2124 vnf2.setVnfName("vnfName222");
2125 vnf2.setModelCustomizationId("222");
2126 Optional<GenericVnf> opVnf2 = Optional.of(vnf2);
2127 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2128 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName222")).thenReturn(opVnf2);
2129 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2130 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName123", reqDetails,
2131 workflowResourceIds);
2132 assertEquals("id123", id);
2133 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "111111", reqDetails,
2134 workflowResourceIds);
2135 assertEquals("generatedId123", id2);
2137 this.expectedException.expect(DuplicateNameException.class);
2138 this.expectedException.expectMessage(containsString(
2139 "generic-vnf with name (vnfName222), same parent and different customization id (222) already exists. The name must be unique."));
2140 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName222", reqDetails,
2141 workflowResourceIds);
2145 public void validateResourceIdInAAIVnfNotGloballyUniqueTest() throws Exception {
2146 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2147 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2148 workflowResourceIds.setServiceInstanceId("siId123");
2151 GenericVnfs genericVnfs = new GenericVnfs();
2152 GenericVnf vnf3 = new GenericVnf();
2153 vnf3.setVnfId("id123");
2154 vnf3.setVnfName("vnfName333");
2155 genericVnfs.getGenericVnf().add(vnf3);
2156 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName333")).thenReturn(Optional.empty());
2157 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName333")).thenReturn(genericVnfs);
2159 this.expectedException.expect(DuplicateNameException.class);
2160 this.expectedException.expectMessage(containsString(
2161 "generic-vnf with name (vnfName333) id (id123) and different parent relationship already exists. The name must be unique."));
2162 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName333", reqDetails,
2163 workflowResourceIds);
2167 public void validateResourceIdInAAINetworkTest() throws Exception {
2168 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2169 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2170 workflowResourceIds.setServiceInstanceId("siId123");
2173 L3Network network = new L3Network();
2174 network.setNetworkId("id123");
2175 network.setNetworkName("name123");
2176 network.setModelCustomizationId("1234567");
2177 workflowResourceIds.setServiceInstanceId("siId123");
2178 Optional<L3Network> opNetwork = Optional.of(network);
2179 L3Network network2 = new L3Network();
2180 network2.setNetworkId("id123");
2181 network2.setNetworkName("networkName222");
2182 network2.setModelCustomizationId("222");
2183 Optional<L3Network> opNetwork2 = Optional.of(network2);
2184 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2185 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "networkName222"))
2186 .thenReturn(opNetwork2);
2187 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2188 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "name123",
2189 reqDetails, workflowResourceIds);
2190 assertEquals("id123", id);
2191 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "111111",
2192 reqDetails, workflowResourceIds);
2193 assertEquals("generatedId123", id2);
2195 this.expectedException.expect(DuplicateNameException.class);
2196 this.expectedException.expectMessage(containsString(
2197 "l3Network with name (networkName222), same parent and different customization id (222) already exists. The name must be unique."));
2198 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName222", reqDetails,
2199 workflowResourceIds);
2203 public void validateNetworkResourceNameExistsInAAITest() throws Exception {
2204 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2205 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2206 workflowResourceIds.setServiceInstanceId("siId123");
2209 L3Network network = new L3Network();
2210 network.setNetworkId("id123");
2211 network.setNetworkName("name123");
2212 network.setModelCustomizationId("1234567");
2213 workflowResourceIds.setServiceInstanceId("siId123");
2215 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("networkName333", "111111"))
2216 .thenReturn(Optional.empty());
2217 when(bbSetupUtils.existsAAINetworksGloballyByName("networkName333")).thenReturn(true);
2219 this.expectedException.expect(DuplicateNameException.class);
2220 this.expectedException.expectMessage(containsString(
2221 "l3Network with name (networkName333) id (siId123) and different parent relationship already exists. The name must be unique."));
2222 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName333", reqDetails,
2223 workflowResourceIds);
2227 public void validateResourceIdInAAIVfModuleTest() throws Exception {
2228 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2229 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2230 workflowResourceIds.setServiceInstanceId("siId123");
2232 GenericVnf vnf = new GenericVnf();
2233 vnf.setVnfId("id123");
2234 vnf.setVnfName("vnfName123");
2235 vnf.setModelCustomizationId("222");
2238 VfModules vfModules = new VfModules();
2239 VfModule vfModule = new VfModule();
2240 vfModule.setVfModuleId("id123");
2241 vfModule.setVfModuleName("name123");
2242 vfModule.setModelCustomizationId("1234567");
2243 vfModules.getVfModule().add(vfModule);
2244 vnf.setVfModules(vfModules);
2245 workflowResourceIds.setVnfId("id123");
2246 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2247 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "name123",
2248 reqDetails, workflowResourceIds);
2249 assertEquals("id123", id);
2251 GenericVnf vnf1 = new GenericVnf();
2252 VfModules vfModules2 = new VfModules();
2253 VfModule vfModule2 = new VfModule();
2254 vfModule2.setVfModuleId("id123");
2255 vfModule2.setVfModuleName("vFModName222");
2256 vfModule2.setModelCustomizationId("222");
2257 vfModules2.getVfModule().add(vfModule2);
2258 vnf1.setVfModules(vfModules2);
2259 workflowResourceIds.setVnfId("id111");
2260 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2261 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "111111",
2262 reqDetails, workflowResourceIds);
2263 assertEquals("generatedId123", id2);
2265 this.expectedException.expect(DuplicateNameException.class);
2266 this.expectedException.expectMessage(containsString(
2267 "vfModule with name (vFModName222), same parent and different customization id (1234567) already exists. The name must be unique."));
2268 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName222", reqDetails,
2269 workflowResourceIds);
2273 public void validateResourceIdInAAIVfModuleNotGloballyUniqueTest() throws Exception {
2274 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2275 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2276 workflowResourceIds.setVnfId("id111");
2278 GenericVnf vnf1 = new GenericVnf();
2279 workflowResourceIds.setVnfId("id111");
2280 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2282 when(bbSetupUtils.existsAAIVfModuleGloballyByName("vFModName333")).thenReturn(true);
2283 this.expectedException.expect(DuplicateNameException.class);
2284 this.expectedException.expectMessage(
2285 containsString("vfModule with name vFModName333 already exists. The name must be unique."));
2286 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName333", reqDetails,
2287 workflowResourceIds);
2291 public void validateResourceIdInAAIVolumeGroupTest() throws Exception {
2292 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2293 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2294 workflowResourceIds.setServiceInstanceId("siId123");
2296 GenericVnf vnf = new GenericVnf();
2297 vnf.setVnfId("id123");
2298 vnf.setVnfName("vnfName123");
2299 vnf.setModelCustomizationId("1234567");
2301 GenericVnf vnf2 = new GenericVnf();
2302 vnf2.setVnfId("id123");
2303 vnf2.setVnfName("vnfName123");
2304 vnf2.setModelCustomizationId("222");
2307 VolumeGroup volumeGroup = new VolumeGroup();
2308 volumeGroup.setVolumeGroupId("id123");
2309 volumeGroup.setVolumeGroupName("name123");
2310 volumeGroup.setVfModuleModelCustomizationId("1234567");
2311 workflowResourceIds.setVnfId("id123");
2312 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2314 workflowResourceIds.setVnfId("id123");
2316 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2317 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(opVolumeGroup);
2318 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2319 reqDetails, workflowResourceIds);
2320 assertEquals("id123", id);
2322 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf2);
2323 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "111111"))
2324 .thenReturn(opVolumeGroup);
2326 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "111111")).thenReturn(Optional.empty());
2327 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "111111",
2328 reqDetails, workflowResourceIds);
2329 assertEquals("generatedId123", id2);
2333 public void validatesourceIdInAAIVolumeGroupNotGloballyUniqueTest() throws Exception {
2334 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2335 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2336 workflowResourceIds.setVnfId("id123");
2337 GenericVnf vnf = new GenericVnf();
2338 vnf.setVnfId("id123");
2339 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2340 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "testVolumeGroup")).thenReturn(Optional.empty());
2342 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("testVolumeGroup")).thenReturn(true);
2343 this.expectedException.expect(DuplicateNameException.class);
2344 this.expectedException.expectMessage(
2345 containsString("volumeGroup with name testVolumeGroup already exists. The name must be unique."));
2346 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "testVolumeGroup",
2347 reqDetails, workflowResourceIds);
2351 public void validateResourceIdInAAIConfigurationTest() throws Exception {
2352 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2353 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2354 workflowResourceIds.setServiceInstanceId("siId123");
2357 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2358 configuration.setConfigurationId("id123");
2359 configuration.setConfigurationName("name123");
2360 configuration.setModelCustomizationId("1234567");
2361 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2363 org.onap.aai.domain.yang.Configuration configuration2 = new org.onap.aai.domain.yang.Configuration();
2364 configuration2.setConfigurationId("id123");
2365 configuration2.setConfigurationName("name123");
2366 configuration2.setModelCustomizationId("222");
2367 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration2 = Optional.of(configuration2);
2369 workflowResourceIds.setVnfId("id123");
2371 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2372 .thenReturn(opConfiguration);
2373 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name123",
2374 reqDetails, workflowResourceIds);
2375 assertEquals("id123", id);
2377 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "111111"))
2378 .thenReturn(Optional.empty());
2379 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "111111",
2380 reqDetails, workflowResourceIds);
2381 assertEquals("generatedId123", id2);
2383 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name222"))
2384 .thenReturn(opConfiguration2);
2385 this.expectedException.expect(DuplicateNameException.class);
2386 this.expectedException.expectMessage(containsString(
2387 "configuration with name (name222), same parent and different customization id (id123) already exists. The name must be unique."));
2388 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name222", reqDetails,
2389 workflowResourceIds);
2393 public void validateResourceIdInAAIConfigurationNotGloballyUniqueTest() throws Exception {
2394 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2395 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2396 workflowResourceIds.setServiceInstanceId("siId123");
2398 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "testConfig"))
2399 .thenReturn(Optional.empty());
2400 when(bbSetupUtils.existsAAIConfigurationGloballyByName("testConfig")).thenReturn(true);
2401 this.expectedException.expect(DuplicateNameException.class);
2402 this.expectedException.expectMessage(
2403 containsString("configuration with name testConfig already exists. The name must be unique."));
2404 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "testConfig", reqDetails,
2405 workflowResourceIds);
2409 public void validateResourceIdInAAISITest() throws Exception {
2410 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2411 workflowResourceIds.setServiceInstanceId("siId123");
2412 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2413 reqDetails.getModelInfo().setModelVersionId("1234567");
2415 ServiceInstance si = new ServiceInstance();
2416 si.setServiceInstanceId("siId123");
2417 si.setModelVersionId("1234567");
2418 ServiceInstances serviceInstances = new ServiceInstances();
2419 serviceInstances.getServiceInstance().add(si);
2420 Optional<ServiceInstance> siOp = Optional.of(si);
2421 ServiceInstance si2 = new ServiceInstance();
2422 si2.setServiceInstanceId("siId222");
2423 si2.setModelVersionId("22222");
2424 si2.setServiceInstanceName("siName222");
2425 Optional<ServiceInstance> siOp2 = Optional.of(si2);
2426 ServiceInstances serviceInstances2 = new ServiceInstances();
2427 serviceInstances2.getServiceInstance().add(si2);
2429 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2430 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName222")).thenReturn(siOp2);
2431 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "111111"))
2432 .thenReturn(Optional.empty());
2434 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2435 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123",
2436 reqDetails, workflowResourceIds);
2437 assertEquals("siId123", id);
2438 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "111111",
2439 reqDetails, workflowResourceIds);
2440 assertEquals("generatedId123", id2);
2442 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName222")).thenReturn(serviceInstances2);
2443 this.expectedException.expect(DuplicateNameException.class);
2444 this.expectedException.expectMessage(containsString(
2445 "serviceInstance with name (siName222) and different version id (1234567) already exists. The name must be unique."));
2446 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName222", reqDetails,
2447 workflowResourceIds);
2451 public void validateResourceIdInAAIMultipleSITest() throws Exception {
2452 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2453 workflowResourceIds.setServiceInstanceId("siId123");
2454 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2455 reqDetails.getModelInfo().setModelVersionId("1234567");
2457 ServiceInstance si = new ServiceInstance();
2458 si.setServiceInstanceId("siId123");
2459 si.setModelVersionId("1234567");
2460 ServiceInstances serviceInstances = new ServiceInstances();
2461 serviceInstances.getServiceInstance().add(si);
2463 ServiceInstance si2 = new ServiceInstance();
2464 si2.setServiceInstanceId("siId222");
2465 si2.setModelVersionId("22222");
2466 si2.setServiceInstanceName("siName222");
2467 serviceInstances.getServiceInstance().add(si2);
2469 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2470 .thenReturn(Optional.empty());
2472 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2474 this.expectedException.expect(DuplicateNameException.class);
2475 this.expectedException.expectMessage(containsString(
2476 "serviceInstance with name (siName123) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2477 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2478 workflowResourceIds);
2482 public void validateResourceIdInAAISIExistsTest() throws Exception {
2483 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2484 workflowResourceIds.setServiceInstanceId("siId123");
2485 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2486 reqDetails.getModelInfo().setModelVersionId("1234567");
2488 ServiceInstance si = new ServiceInstance();
2489 si.setServiceInstanceId("siId123");
2490 si.setModelVersionId("1234567");
2491 ServiceInstances serviceInstances = new ServiceInstances();
2492 serviceInstances.getServiceInstance().add(si);
2494 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2495 .thenReturn(Optional.empty());
2497 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2499 Map<String, String> uriKeys = new HashMap<>();
2500 uriKeys.put(AAIFluentTypeBuilder.Types.CUSTOMER.getUriParams().globalCustomerId, "globalCustomerId");
2501 uriKeys.put(AAIFluentTypeBuilder.Types.SERVICE_SUBSCRIPTION.getUriParams().serviceType, "serviceType");
2503 when(bbSetupUtils.getURIKeysFromServiceInstance("siId123")).thenReturn(uriKeys);
2505 this.expectedException.expect(DuplicateNameException.class);
2506 this.expectedException.expectMessage(containsString(
2507 "serviceInstance with name (siName123) and global-customer-id (globalCustomerId), service-type (serviceType), model-version-id (1234567) already exists. The name must be unique."));
2508 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2509 workflowResourceIds);
2513 public void validateServiceResourceIdInAAINoDupTest() throws Exception {
2514 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2515 reqDetails.getModelInfo().setModelVersionId("1234567");
2516 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123"))
2517 .thenReturn(Optional.empty());
2518 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(null);
2519 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2520 assertEquals("generatedId123", id);
2524 public void validateServiceResourceIdInAAISameModelVersionId() throws Exception {
2525 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2526 reqDetails.getModelInfo().setModelVersionId("1234567");
2528 ServiceInstance si = new ServiceInstance();
2529 si.setServiceInstanceId("siId123");
2530 si.setModelVersionId("1234567");
2531 Optional<ServiceInstance> siOp = Optional.of(si);
2533 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2534 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2535 assertEquals("siId123", id);
2539 public void validateServiceResourceIdInAAIDifferentModelVersionId() throws Exception {
2540 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2541 reqDetails.getModelInfo().setModelVersionId("1234567");
2543 ServiceInstance si = new ServiceInstance();
2544 si.setServiceInstanceId("siId123");
2545 si.setModelVersionId("9999999");
2546 ServiceInstances serviceInstances = new ServiceInstances();
2547 serviceInstances.getServiceInstance().add(si);
2548 Optional<ServiceInstance> siOp = Optional.of(si);
2550 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2552 this.expectedException.expect(DuplicateNameException.class);
2553 this.expectedException.expectMessage(containsString(
2554 "serviceInstance with name (siName123) and different version id (1234567) already exists. The name must be unique."));
2556 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2557 assertEquals("siId123", id);
2561 public void validateServiceResourceIdInAAIDuplicateNameTest() throws Exception {
2563 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2564 reqDetails.getModelInfo().setModelVersionId("1234567");
2566 ServiceInstance si = new ServiceInstance();
2567 si.setServiceInstanceId("siId123");
2568 si.setModelVersionId("1234567");
2570 ServiceInstances serviceInstances = new ServiceInstances();
2571 serviceInstances.getServiceInstance().add(si);
2573 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2574 .thenReturn(Optional.empty());
2575 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2577 this.expectedException.expect(DuplicateNameException.class);
2578 this.expectedException.expectMessage(containsString(
2579 "serviceInstance with name (siName) and global-customer-id (null), service-type (null), model-version-id (1234567) already exists. The name must be unique."));
2581 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2585 public void validateServiceResourceIdInAAIDuplicateNameMultipleTest() throws Exception {
2587 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2588 reqDetails.getModelInfo().setModelVersionId("1234567");
2590 ServiceInstance si = new ServiceInstance();
2591 si.setServiceInstanceId("siId123");
2592 si.setModelVersionId("1234567");
2594 ServiceInstance si2 = new ServiceInstance();
2595 si2.setServiceInstanceId("siId222");
2596 si2.setModelVersionId("22222");
2597 si2.setServiceInstanceName("siName222");
2599 ServiceInstances serviceInstances = new ServiceInstances();
2600 serviceInstances.getServiceInstance().add(si);
2601 serviceInstances.getServiceInstance().add(si2);
2603 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2604 .thenReturn(Optional.empty());
2605 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2607 this.expectedException.expect(DuplicateNameException.class);
2608 this.expectedException.expectMessage(containsString(
2609 "serviceInstance with name (siName) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2611 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2615 public void validateNetworkResourceIdInAAITest() throws Exception {
2616 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2617 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2618 workflowResourceIds.setServiceInstanceId("siId123");
2620 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2621 .thenReturn(Optional.empty());
2622 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(false);
2624 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2625 workflowResourceIds);
2626 assertEquals("generatedId123", id);
2630 public void validateNetworkResourceIdInAAISameModelCustIdTest() throws Exception {
2631 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2632 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2633 workflowResourceIds.setServiceInstanceId("siId123");
2635 L3Network network = new L3Network();
2636 network.setNetworkId("id123");
2637 network.setNetworkName("name123");
2638 network.setModelCustomizationId("1234567");
2639 Optional<L3Network> opNetwork = Optional.of(network);
2641 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2643 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2644 workflowResourceIds);
2645 assertEquals("id123", id);
2649 public void validateNetworkResourceIdInAAIDuplicateNameTest() throws Exception {
2650 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2651 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2652 workflowResourceIds.setServiceInstanceId("siId123");
2654 L3Network network = new L3Network();
2655 network.setNetworkId("id123");
2656 network.setNetworkName("name123");
2657 network.setModelCustomizationId("9999999");
2658 Optional<L3Network> opNetwork = Optional.of(network);
2660 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2662 this.expectedException.expect(DuplicateNameException.class);
2663 this.expectedException.expectMessage(containsString(
2664 "l3Network with name (name123), same parent and different customization id (9999999) already exists. The name must be unique."));
2666 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2670 public void validateNetworkResourceIdInAAINotGloballyUniqueTest() throws Exception {
2671 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2672 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2673 workflowResourceIds.setServiceInstanceId("siId123");
2675 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2676 .thenReturn(Optional.empty());
2677 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(true);
2679 this.expectedException.expect(DuplicateNameException.class);
2680 this.expectedException.expectMessage(containsString(
2681 "l3Network with name (name123) id (siId123) and different parent relationship already exists. The name must be unique."));
2683 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2687 public void validateVnfResourceIdInAAITest() throws Exception {
2688 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2689 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2690 workflowResourceIds.setServiceInstanceId("siId123");
2691 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2692 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2693 workflowResourceIds);
2694 assertEquals("generatedId123", id);
2698 public void validateVnfResourceIdInAAISameModelCustomizationIdTest() throws Exception {
2699 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2700 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2701 workflowResourceIds.setServiceInstanceId("siId123");
2703 GenericVnf vnf = new GenericVnf();
2704 vnf.setVnfId("id123");
2705 vnf.setVnfName("vnfName123");
2706 vnf.setModelCustomizationId("1234567");
2707 Optional<GenericVnf> opVnf = Optional.of(vnf);
2709 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2710 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2711 workflowResourceIds);
2712 assertEquals("id123", id);
2716 public void validateVnfResourceIdInAAIDiffModelCustomizationIdTest() throws Exception {
2717 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2718 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2719 workflowResourceIds.setServiceInstanceId("siId123");
2721 GenericVnf vnf = new GenericVnf();
2722 vnf.setVnfId("id123");
2723 vnf.setVnfName("vnfName123");
2724 vnf.setModelCustomizationId("9999999");
2725 Optional<GenericVnf> opVnf = Optional.of(vnf);
2727 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2729 this.expectedException.expect(DuplicateNameException.class);
2730 this.expectedException.expectMessage(containsString(
2731 "generic-vnf with name (vnfName123), same parent and different customization id (9999999) already exists. The name must be unique."));
2733 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2737 public void validateVnfResourceIdInAAINotGloballyUniqueTest() throws Exception {
2738 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2739 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2740 workflowResourceIds.setServiceInstanceId("siId123");
2743 GenericVnf vnf = new GenericVnf();
2744 vnf.setVnfId("id123");
2745 vnf.setVnfName("vnfName123");
2746 GenericVnfs genericVnfs = new GenericVnfs();
2747 genericVnfs.getGenericVnf().add(vnf);
2749 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2750 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName123")).thenReturn(genericVnfs);
2752 this.expectedException.expect(DuplicateNameException.class);
2753 this.expectedException.expectMessage(containsString(
2754 "generic-vnf with name (vnfName123) id (id123) and different parent relationship already exists. The name must be unique."));
2756 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2760 public void validateVfModuleResourceIdTest() throws Exception {
2761 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2762 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2763 workflowResourceIds.setVnfId("vnfId123");
2765 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2766 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(false);
2768 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2769 workflowResourceIds);
2770 assertEquals("generatedId123", id);
2774 public void validateVfModuleResourceIdSameModelCustIdTest() throws Exception {
2775 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2776 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2777 workflowResourceIds.setVnfId("vnfId123");
2779 VfModules vfModules = new VfModules();
2780 VfModule vfModule = new VfModule();
2781 vfModule.setVfModuleId("id123");
2782 vfModule.setVfModuleName("name123");
2783 vfModule.setModelCustomizationId("1234567");
2784 vfModules.getVfModule().add(vfModule);
2786 GenericVnf vnf = new GenericVnf();
2787 vnf.setVnfId("id123");
2788 vnf.setVnfName("vnfName123");
2789 vnf.setVfModules(vfModules);
2791 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2793 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2794 workflowResourceIds);
2795 assertEquals("id123", id);
2799 public void validateVfModuleResourceIdDifferentModelCustIdTest() throws Exception {
2800 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2801 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2802 workflowResourceIds.setVnfId("vnfId123");
2804 VfModules vfModules = new VfModules();
2805 VfModule vfModule = new VfModule();
2806 vfModule.setVfModuleId("id123");
2807 vfModule.setVfModuleName("name123");
2808 vfModule.setModelCustomizationId("9999999");
2809 vfModules.getVfModule().add(vfModule);
2811 GenericVnf vnf = new GenericVnf();
2812 vnf.setVnfId("id123");
2813 vnf.setVnfName("vnfName123");
2814 vnf.setVfModules(vfModules);
2816 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2818 this.expectedException.expect(DuplicateNameException.class);
2819 this.expectedException.expectMessage(containsString(
2820 "vfModule with name (name123), same parent and different customization id (1234567) already exists. The name must be unique."));
2822 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2827 public void validateVfModuleResourceIdNotGloballyUniqueTest() throws Exception {
2828 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2829 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2830 workflowResourceIds.setVnfId("vnfId123");
2832 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2833 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(true);
2835 this.expectedException.expect(DuplicateNameException.class);
2836 this.expectedException
2837 .expectMessage(containsString("vfModule with name name123 already exists. The name must be unique."));
2839 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2843 public void validateVolumeGroupResourceIdInAAITest() throws Exception {
2844 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2845 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2846 workflowResourceIds.setVnfId("vnfId123");
2848 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(Optional.empty());
2849 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(false);
2851 String id = workflowAction.validateVolumeGroupResourceIdInAAI("generatedId123", "name123", reqDetails,
2852 workflowResourceIds);
2853 assertEquals("generatedId123", id);
2857 public void validateVolumeGroupResourceIdInAAISameModelCustIdTest() throws Exception {
2858 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2859 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2860 workflowResourceIds.setServiceInstanceId("siId123");
2861 workflowResourceIds.setVnfId("vnfId123");
2863 VolumeGroup volumeGroup = new VolumeGroup();
2864 volumeGroup.setVolumeGroupId("id123");
2865 volumeGroup.setVolumeGroupName("name123");
2866 volumeGroup.setVfModuleModelCustomizationId("1234567");
2868 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2870 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2871 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2872 reqDetails, workflowResourceIds);
2874 assertEquals("id123", id);
2878 public void validateVolumeGroupResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2879 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2880 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2881 workflowResourceIds.setServiceInstanceId("siId123");
2882 workflowResourceIds.setVnfId("vnfId123");
2884 VolumeGroup volumeGroup = new VolumeGroup();
2885 volumeGroup.setVolumeGroupId("id123");
2886 volumeGroup.setVolumeGroupName("name123");
2887 volumeGroup.setVfModuleModelCustomizationId("9999999");
2889 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2891 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2893 this.expectedException.expect(DuplicateNameException.class);
2894 this.expectedException.expectMessage(
2895 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2897 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2898 workflowResourceIds);
2902 public void validateVolumeGroupResourceIdInAAINotGloballyUniqueTest() throws Exception {
2903 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2904 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2905 workflowResourceIds.setVnfId("vnfId123");
2907 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(Optional.empty());
2908 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(true);
2910 this.expectedException.expect(DuplicateNameException.class);
2911 this.expectedException.expectMessage(
2912 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2914 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2915 workflowResourceIds);
2919 public void validateConfigurationResourceIdInAAITest() throws Exception {
2920 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2921 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2922 workflowResourceIds.setServiceInstanceId("siId123");
2924 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2925 .thenReturn(Optional.empty());
2926 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2928 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2929 workflowResourceIds);
2930 assertEquals("generatedId123", id);
2934 public void validateConfigurationResourceIdInAAISameModelCustIdTest() throws Exception {
2935 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2936 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2937 workflowResourceIds.setServiceInstanceId("siId123");
2939 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2940 configuration.setConfigurationId("id123");
2941 configuration.setConfigurationName("name123");
2942 configuration.setModelCustomizationId("1234567");
2943 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2945 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2946 .thenReturn(opConfiguration);
2947 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2949 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2950 workflowResourceIds);
2951 assertEquals("id123", id);
2955 public void validateConfigurationResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2956 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2957 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2958 workflowResourceIds.setServiceInstanceId("siId123");
2960 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2961 configuration.setConfigurationId("id123");
2962 configuration.setConfigurationName("name123");
2963 configuration.setModelCustomizationId("9999999");
2964 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2966 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2967 .thenReturn(opConfiguration);
2968 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2970 this.expectedException.expect(DuplicateNameException.class);
2971 this.expectedException.expectMessage(containsString(
2972 "configuration with name (name123), same parent and different customization id (id123) already exists. The name must be unique."));
2974 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2975 workflowResourceIds);
2979 public void validateConfigurationResourceIdInAAINotGloballyUniqueTest() throws Exception {
2980 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2981 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2982 workflowResourceIds.setServiceInstanceId("siId123");
2984 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2985 .thenReturn(Optional.empty());
2986 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(true);
2988 this.expectedException.expect(DuplicateNameException.class);
2989 this.expectedException.expectMessage(
2990 containsString("configuration with name name123 already exists. The name must be unique."));
2992 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2993 workflowResourceIds);
2997 public void handleRuntimeExceptionTest() {
2998 execution.setVariable("BPMN_javaExpMsg", "test runtime error message");
2999 execution.setVariable("testProcessKey", "testProcessKeyValue");
3001 workflowAction.handleRuntimeException(execution);
3002 } catch (BpmnError wfe) {
3003 assertEquals("MSOWorkflowException", wfe.getErrorCode());
3009 public void traverseCatalogDbServiceMultipleNetworkTest() throws IOException, VrfBondingServiceException {
3010 execution.setVariable("testProcessKey", "testProcessKeyValue");
3011 Service service = new Service();
3012 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
3013 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
3014 networkCust.setModelCustomizationUUID("123");
3015 networkCustomizations.add(networkCust);
3016 service.setNetworkCustomizations(networkCustomizations);
3017 NetworkCollectionResourceCustomization collectionResourceCustomization =
3018 new NetworkCollectionResourceCustomization();
3019 collectionResourceCustomization.setModelCustomizationUUID("123");
3020 CollectionResource collectionResource = new CollectionResource();
3021 collectionResource.setToscaNodeType("NetworkCollection");
3022 InstanceGroup instanceGroup = new InstanceGroup();
3023 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
3024 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
3025 new CollectionResourceInstanceGroupCustomization();
3026 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
3027 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
3028 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
3029 collectionResource.setInstanceGroup(instanceGroup);
3030 collectionResourceCustomization.setCollectionResource(collectionResource);;
3031 service.setModelUUID("abc");
3032 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
3033 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
3034 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
3035 doReturn(collectionResourceCustomization).when(catalogDbClient)
3036 .getNetworkCollectionResourceCustomizationByID("123");
3037 String bpmnRequest = new String(Files
3038 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
3039 ObjectMapper mapper = new ObjectMapper();
3040 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
3041 List<Resource> resourceCounter = new ArrayList<>();
3042 thrown.expect(BpmnError.class);
3043 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
3044 workflowAction.traverseCatalogDbService(execution, sIRequest, resourceCounter, aaiResourceIds);
3048 public void sortVfModulesByBaseFirstTest() {
3049 List<Resource> resources = new ArrayList<>();
3050 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
3051 resource1.setBaseVfModule(false);
3052 resources.add(resource1);
3053 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
3054 resource2.setBaseVfModule(false);
3055 resources.add(resource2);
3056 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
3057 resource3.setBaseVfModule(true);
3058 resources.add(resource3);
3059 List<Resource> result = workflowAction.sortVfModulesByBaseFirst(resources);
3060 assertEquals("333", result.get(0).getResourceId());
3061 assertEquals("222", result.get(1).getResourceId());
3062 assertEquals("111", result.get(2).getResourceId());
3066 public void sortVfModulesByBaseLastTest() {
3067 List<Resource> resources = new ArrayList<>();
3068 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
3069 resource1.setBaseVfModule(true);
3070 resources.add(resource1);
3071 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
3072 resource2.setBaseVfModule(false);
3073 resources.add(resource2);
3074 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
3075 resource3.setBaseVfModule(false);
3076 resources.add(resource3);
3077 List<Resource> result = workflowAction.sortVfModulesByBaseLast(resources);
3078 assertEquals("333", result.get(0).getResourceId());
3079 assertEquals("222", result.get(1).getResourceId());
3080 assertEquals("111", result.get(2).getResourceId());
3084 public void findCatalogNetworkCollectionTest() {
3085 Service service = new Service();
3086 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
3087 networkCustomization.setModelCustomizationUUID("123");
3088 service.getCollectionResourceCustomizations().add(networkCustomization);
3089 doReturn(networkCustomization).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
3090 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
3091 assertNotNull(customization);
3095 public void findCatalogNetworkCollectionEmptyTest() {
3096 Service service = new Service();
3097 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
3098 networkCustomization.setModelCustomizationUUID("123");
3099 service.getCollectionResourceCustomizations().add(networkCustomization);
3100 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
3101 assertNull(customization);
3105 public void findCatalogNetworkCollectionMoreThanOneTest() {
3106 Service service = new Service();
3107 NetworkCollectionResourceCustomization networkCustomization1 = new NetworkCollectionResourceCustomization();
3108 networkCustomization1.setModelCustomizationUUID("123");
3109 NetworkCollectionResourceCustomization networkCustomization2 = new NetworkCollectionResourceCustomization();
3110 networkCustomization2.setModelCustomizationUUID("321");
3111 service.getCollectionResourceCustomizations().add(networkCustomization1);
3112 service.getCollectionResourceCustomizations().add(networkCustomization2);
3113 doReturn(networkCustomization1).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
3114 doReturn(networkCustomization2).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("321");
3115 workflowAction.findCatalogNetworkCollection(execution, service);
3116 assertEquals("Found multiple Network Collections in the Service model, only one per Service is supported.",
3117 execution.getVariable("WorkflowActionErrorMessage"));
3121 public void verifyLackOfNullPointerExceptionForNullResource() {
3122 ExecuteBuildingBlock result = null;
3124 result = workflowAction.buildExecuteBuildingBlock(new OrchestrationFlow(), null, null, null, null, null,
3125 false, null, null, null, false, null, null, true);
3126 } catch (NullPointerException e) {
3127 fail("NullPointerException should not be thrown when 'resource' is null");
3129 assertNotNull(result);
3133 public void traverseAAIServiceTest() {
3134 List<Resource> resourceCounter = new ArrayList<>();
3135 String resourceId = "si0";
3136 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
3138 ServiceInstance serviceInstanceAAI = new ServiceInstance();
3139 serviceInstanceAAI.setServiceInstanceId(resourceId);
3141 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstance = setServiceInstance();
3149 Configuration config = new Configuration();
3150 config.setConfigurationId("testConfigurationId2");
3151 serviceInstance.getConfigurations().add(config);
3153 Relationship relationship1 = new Relationship();
3154 relationship1.setRelatedTo("vnfc");
3155 RelationshipList relationshipList1 = new RelationshipList();
3156 relationshipList1.getRelationship().add(relationship1);
3158 Relationship relationship2 = new Relationship();
3159 relationship2.setRelatedTo("vpn-binding");
3160 RelationshipList relationshipList2 = new RelationshipList();
3161 relationshipList2.getRelationship().add(relationship2);
3163 org.onap.aai.domain.yang.Configuration aaiConfiguration1 = new org.onap.aai.domain.yang.Configuration();
3164 aaiConfiguration1.setConfigurationId("testConfigurationId");
3165 aaiConfiguration1.setRelationshipList(relationshipList1);
3167 org.onap.aai.domain.yang.Configuration aaiConfiguration2 = new org.onap.aai.domain.yang.Configuration();
3168 aaiConfiguration2.setConfigurationId("testConfigurationId2");
3169 aaiConfiguration2.setRelationshipList(relationshipList1);
3172 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById(resourceId);
3173 doReturn(serviceInstance).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
3174 doReturn(Optional.of(aaiConfiguration1)).when(aaiConfigurationResources)
3175 .getConfiguration("testConfigurationId");
3176 doReturn(Optional.of(aaiConfiguration2)).when(aaiConfigurationResources)
3177 .getConfiguration("testConfigurationId2");
3178 workflowAction.traverseAAIService(execution, resourceCounter, resourceId, aaiResourceIds);
3179 assertEquals(8, resourceCounter.size());
3180 assertTrue(resourceCounter.get(2).isBaseVfModule());
3181 assertThat(aaiResourceIds, sameBeanAs(getExpectedResourceIds()));
3182 } catch (Exception e) {
3183 fail("Unexpected exception was thrown.");
3187 private List<Pair<WorkflowType, String>> getExpectedResourceIds() {
3188 List<Pair<WorkflowType, String>> resourceIds = new ArrayList<>();
3189 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VNF, "testVnfId1"));
3190 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VFMODULE, "testVfModuleId1"));
3191 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VOLUMEGROUP, "testVolumeGroupId1"));
3192 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORK, "testNetworkId1"));
3193 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORKCOLLECTION, "testId"));
3194 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId"));
3195 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId2"));
3199 private List<OrchestrationFlow> createFlowList(String... flowNames) {
3200 List<OrchestrationFlow> result = new ArrayList<>();
3201 for (String flowName : flowNames) {
3202 OrchestrationFlow orchFlow = new OrchestrationFlow();
3203 orchFlow.setFlowName(flowName);
3204 result.add(orchFlow);
3209 private void assertEqualsBulkFlowName(List<ExecuteBuildingBlock> ebbs, String... flowNames) {
3210 for (int i = 0; i < ebbs.size(); i++) {
3211 assertEquals(ebbs.get(i).getBuildingBlock().getBpmnFlowName(), flowNames[i]);