2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (c) 2019 Samsung
8 * ================================================================================
9 * Modifications Copyright (c) 2020 Nokia
10 * ================================================================================
11 * Licensed under the Apache License, Version 2.0 (the "License");
12 * you may not use this file except in compliance with the License.
13 * You may obtain a copy of the License at
15 * http://www.apache.org/licenses/LICENSE-2.0
17 * Unless required by applicable law or agreed to in writing, software
18 * distributed under the License is distributed on an "AS IS" BASIS,
19 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 * See the License for the specific language governing permissions and
21 * limitations under the License.
22 * ============LICENSE_END=========================================================
25 package org.onap.so.bpmn.infrastructure.workflow.tasks;
27 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
28 import static org.hamcrest.CoreMatchers.containsString;
29 import static org.hamcrest.CoreMatchers.equalTo;
30 import static org.junit.Assert.assertEquals;
31 import static org.junit.Assert.assertFalse;
32 import static org.junit.Assert.assertNotNull;
33 import static org.junit.Assert.assertNull;
34 import static org.junit.Assert.assertThat;
35 import static org.junit.Assert.assertTrue;
36 import static org.junit.Assert.fail;
37 import static org.mockito.ArgumentMatchers.anyObject;
38 import static org.mockito.ArgumentMatchers.anyString;
39 import static org.mockito.ArgumentMatchers.any;
40 import static org.mockito.ArgumentMatchers.eq;
41 import static org.mockito.ArgumentMatchers.isA;
42 import static org.mockito.Mockito.doReturn;
43 import static org.mockito.Mockito.doThrow;
44 import static org.mockito.Mockito.when;
45 import com.fasterxml.jackson.databind.ObjectMapper;
46 import java.io.IOException;
47 import java.net.MalformedURLException;
48 import java.nio.file.Files;
49 import java.nio.file.Paths;
50 import java.util.ArrayList;
51 import java.util.Arrays;
52 import java.util.HashMap;
53 import java.util.List;
55 import java.util.Optional;
56 import java.util.UUID;
57 import org.camunda.bpm.engine.delegate.BpmnError;
58 import org.camunda.bpm.engine.delegate.DelegateExecution;
59 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
60 import org.javatuples.Pair;
61 import org.junit.Before;
62 import org.junit.Ignore;
63 import org.junit.Rule;
64 import org.junit.Test;
65 import org.junit.rules.ExpectedException;
66 import org.mockito.InjectMocks;
67 import org.mockito.Mock;
68 import org.mockito.Spy;
69 import org.onap.aai.domain.yang.GenericVnf;
70 import org.onap.aai.domain.yang.GenericVnfs;
71 import org.onap.aai.domain.yang.L3Network;
72 import org.onap.aai.domain.yang.Relationship;
73 import org.onap.aai.domain.yang.RelationshipList;
74 import org.onap.aai.domain.yang.ServiceInstance;
75 import org.onap.aai.domain.yang.ServiceInstances;
76 import org.onap.aai.domain.yang.VfModule;
77 import org.onap.aai.domain.yang.VfModules;
78 import org.onap.aai.domain.yang.VolumeGroup;
79 import org.onap.so.bpmn.BaseTaskTest;
80 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
81 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
82 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
83 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
84 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
85 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.DuplicateNameException;
86 import org.onap.so.client.aai.AAIObjectType;
87 import org.onap.so.client.aai.entities.AAIResultWrapper;
88 import org.onap.so.client.aai.entities.Relationships;
89 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
90 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
91 import org.onap.so.client.orchestration.AAIEntityNotFoundException;
92 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
93 import org.onap.so.db.catalog.beans.CollectionResource;
94 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
95 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
96 import org.onap.so.db.catalog.beans.ConfigurationResource;
97 import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
98 import org.onap.so.db.catalog.beans.CvnfcCustomization;
99 import org.onap.so.db.catalog.beans.HeatEnvironment;
100 import org.onap.so.db.catalog.beans.HeatTemplate;
101 import org.onap.so.db.catalog.beans.InstanceGroup;
102 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
103 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
104 import org.onap.so.db.catalog.beans.Service;
105 import org.onap.so.db.catalog.beans.VfModuleCustomization;
106 import org.onap.so.db.catalog.beans.macro.NorthBoundRequest;
107 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
108 import org.onap.so.serviceinstancebeans.ModelInfo;
109 import org.onap.so.serviceinstancebeans.RequestDetails;
110 import org.onap.so.serviceinstancebeans.RequestParameters;
111 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
112 import org.onap.so.serviceinstancebeans.SubscriberInfo;
113 import org.springframework.core.env.Environment;
115 public class WorkflowActionTest extends BaseTaskTest {
118 protected Environment environment;
120 protected WorkflowAction workflowAction;
121 private DelegateExecution execution;
125 protected WorkflowAction SPY_workflowAction;
128 public ExpectedException thrown = ExpectedException.none();
130 private String RESOURCE_PATH = "src/test/resources/__files/";
132 private List<OrchestrationFlow> replaceVfModuleOrchFlows =
133 createFlowList("DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
134 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
135 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
136 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
137 private List<OrchestrationFlow> replaceRetainAssignmentsVfModuleOrchFlows = createFlowList("DeactivateVfModuleBB",
138 "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "UnassignVolumeGroupBB",
139 "AssignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
140 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
143 public void before() throws Exception {
144 execution = new DelegateExecutionFake();
145 org.onap.aai.domain.yang.ServiceInstance servInstance = new org.onap.aai.domain.yang.ServiceInstance();
146 servInstance.setServiceInstanceId("TEST");
147 when(bbSetupUtils.getAAIServiceInstanceByName(anyString(), anyObject())).thenReturn(servInstance);
148 workflowAction.setBbInputSetupUtils(bbSetupUtils);
149 workflowAction.setBbInputSetup(bbInputSetup);
156 public void selectExecutionListALaCarteNetworkCreateTest() throws Exception {
157 String gAction = "createInstance";
158 String resource = "Network";
159 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
160 execution.setVariable("requestAction", gAction);
162 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
163 execution.setVariable("bpmnRequest", bpmnRequest);
164 execution.setVariable("aLaCarte", true);
165 execution.setVariable("apiVersion", "7");
166 execution.setVariable("requestUri", "v6/networks/123");
168 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
169 List<OrchestrationFlow> orchFlows =
170 createFlowList("AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
171 northBoundRequest.setOrchestrationFlowList(orchFlows);
173 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
174 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
175 workflowAction.selectExecutionList(execution);
176 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
177 assertEqualsBulkFlowName(ebbs, "AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
181 public void selectExecutionListALaCarteNetworkDeleteTest() throws Exception {
182 String gAction = "deleteInstance";
183 String resource = "Network";
184 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
185 execution.setVariable("requestAction", gAction);
187 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
188 execution.setVariable("bpmnRequest", bpmnRequest);
189 execution.setVariable("aLaCarte", true);
190 execution.setVariable("apiVersion", "7");
191 execution.setVariable("requestUri", "v6/networks/123");
193 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
194 List<OrchestrationFlow> orchFlows =
195 createFlowList("DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
196 northBoundRequest.setOrchestrationFlowList(orchFlows);
198 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
199 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
200 workflowAction.selectExecutionList(execution);
201 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
202 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
206 public void selectExecutionListALaCarteServiceCreateTest() throws Exception {
207 String gAction = "createInstance";
208 String resource = "Service";
209 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
210 execution.setVariable("requestAction", gAction);
212 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
213 execution.setVariable("bpmnRequest", bpmnRequest);
214 execution.setVariable("aLaCarte", true);
215 execution.setVariable("apiVersion", "7");
216 execution.setVariable("requestUri", "v6/serviceInstances/123");
219 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
220 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "ActivateServiceInstanceBB");
221 northBoundRequest.setOrchestrationFlowList(orchFlows);
223 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
224 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
225 workflowAction.selectExecutionList(execution);
226 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
227 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
231 public void selectExecutionListDuplicateNameExceptionTest() throws Exception {
232 String gAction = "createInstance";
233 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
235 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
236 execution.setVariable("bpmnRequest", bpmnRequest);
237 execution.setVariable("aLaCarte", true);
238 execution.setVariable("apiVersion", "7");
239 execution.setVariable("requestUri", "v6/serviceInstances");
240 execution.setVariable("requestAction", gAction);
242 doThrow(new DuplicateNameException(
243 "serviceInstance with name (instanceName) and different version id (3c40d244-808e-42ca-b09a-256d83d19d0a) already exists. The name must be unique."))
244 .when(SPY_workflowAction).validateResourceIdInAAI(anyString(), eq(WorkflowType.SERVICE),
245 eq("test"), any(RequestDetails.class), any(WorkflowResourceIds.class));
247 SPY_workflowAction.selectExecutionList(execution);
248 assertEquals(execution.getVariable("WorkflowActionErrorMessage"),
249 "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.");
253 * SERVICE MACRO TESTS
256 public void selectExecutionListServiceMacroAssignTest() throws Exception {
257 String gAction = "assignInstance";
258 String resource = "Service";
259 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
260 execution.setVariable("requestAction", gAction);
262 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
263 execution.setVariable("bpmnRequest", bpmnRequest);
264 execution.setVariable("aLaCarte", false);
265 execution.setVariable("apiVersion", "7");
266 execution.setVariable("requestUri", "v6/serviceInstances/123");
269 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
270 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
271 "AssignVolumeGroupBB", "AssignVfModuleBB");
272 northBoundRequest.setOrchestrationFlowList(orchFlows);
274 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
275 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
276 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
277 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
278 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
279 HeatTemplate volumeHeatTemplate = new HeatTemplate();
280 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
281 vfModuleCustomization.setVfModule(vfModule);
283 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
284 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
285 HeatEnvironment heatEnvironment = new HeatEnvironment();
286 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
287 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
288 HeatTemplate moduleHeatTemplate = new HeatTemplate();
289 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
290 vfModuleCustomization2.setVfModule(vfModule2);
292 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
293 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
295 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
296 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
297 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
298 .thenReturn(vfModuleCustomization);
299 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
300 .thenReturn(vfModuleCustomization2);
301 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
302 .thenReturn(vfModuleCustomization3);
303 workflowAction.selectExecutionList(execution);
304 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
305 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
306 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
310 public void selectExecutionListServiceMacroAssignNoCloudTest() throws Exception {
311 String gAction = "assignInstance";
312 String resource = "Service";
313 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
314 execution.setVariable("requestAction", gAction);
315 String bpmnRequest = new String(
316 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssignNoCloud.json")));
317 execution.setVariable("bpmnRequest", bpmnRequest);
318 execution.setVariable("aLaCarte", false);
319 execution.setVariable("apiVersion", "7");
320 execution.setVariable("requestUri", "v6/serviceInstances/123");
323 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
324 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
325 "AssignVolumeGroupBB", "AssignVfModuleBB");
326 northBoundRequest.setOrchestrationFlowList(orchFlows);
328 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
329 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
330 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
331 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
332 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
333 HeatTemplate volumeHeatTemplate = new HeatTemplate();
334 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
335 vfModuleCustomization.setVfModule(vfModule);
337 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
338 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
339 HeatEnvironment heatEnvironment = new HeatEnvironment();
340 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
341 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
342 HeatTemplate moduleHeatTemplate = new HeatTemplate();
343 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
344 vfModuleCustomization2.setVfModule(vfModule2);
346 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
347 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
349 when(environment.getProperty("org.onap.so.cloud-owner")).thenReturn("att-aic");
350 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
351 false, "att-aic")).thenReturn(northBoundRequest);
352 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
353 .thenReturn(vfModuleCustomization);
354 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
355 .thenReturn(vfModuleCustomization2);
356 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
357 .thenReturn(vfModuleCustomization3);
358 workflowAction.selectExecutionList(execution);
359 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
360 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
361 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
365 public void selectExecutionListServiceMacroActivateTest() throws Exception {
366 String gAction = "activateInstance";
367 String resource = "Service";
368 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
369 execution.setVariable("requestAction", gAction);
370 String bpmnRequest = new String(Files
371 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
372 execution.setVariable("bpmnRequest", bpmnRequest);
373 execution.setVariable("aLaCarte", false);
374 execution.setVariable("apiVersion", "7");
375 execution.setVariable("requestUri", "v6/serviceInstances/si0");
378 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
379 List<OrchestrationFlow> orchFlows =
380 createFlowList("CreateNetworkBB", "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
381 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "ActivateServiceInstanceBB");
382 northBoundRequest.setOrchestrationFlowList(orchFlows);
384 ServiceInstance serviceInstanceAAI = new ServiceInstance();
385 serviceInstanceAAI.setServiceInstanceId("si0");
386 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
387 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
388 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
389 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
390 vnf.setVnfId("vnf0");
393 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
394 vnf.getVfModules().add(vfModule);
395 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
396 vnf.getVfModules().add(vfModule2);
398 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
399 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
400 volumeGroup.setVolumeGroupId("volumeGroup0");
401 vnf.getVolumeGroups().add(volumeGroup);
403 serviceInstanceMSO.getVnfs().add(vnf);
405 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("si0");
406 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
407 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
408 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
409 workflowAction.selectExecutionList(execution);
410 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
411 assertEqualsBulkFlowName(ebbs, "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
412 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
413 "ActivateServiceInstanceBB");
414 assertEquals("volumeGroup0", ebbs.get(0).getWorkflowResourceIds().getVolumeGroupId());
415 assertEquals("volumeGroup0", ebbs.get(1).getWorkflowResourceIds().getVolumeGroupId());
416 assertEquals("testVfModuleId1", ebbs.get(2).getWorkflowResourceIds().getVfModuleId());
417 assertEquals("testVfModuleId2", ebbs.get(3).getWorkflowResourceIds().getVfModuleId());
418 assertEquals("testVfModuleId1", ebbs.get(4).getWorkflowResourceIds().getVfModuleId());
419 assertEquals("testVfModuleId2", ebbs.get(5).getWorkflowResourceIds().getVfModuleId());
420 assertEquals("vnf0", ebbs.get(6).getWorkflowResourceIds().getVnfId());
421 assertEquals("si0", ebbs.get(7).getWorkflowResourceIds().getServiceInstanceId());
426 public void selectExecutionListServiceMacroDeactivateTest() throws Exception {
427 String gAction = "deactivateInstance";
428 String resource = "Service";
429 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
430 execution.setVariable("requestAction", gAction);
431 String bpmnRequest = new String(Files
432 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
433 execution.setVariable("bpmnRequest", bpmnRequest);
434 execution.setVariable("aLaCarte", false);
435 execution.setVariable("apiVersion", "7");
436 execution.setVariable("requestUri", "v6/serviceInstances/123");
439 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
440 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateServiceInstanceBB");
441 northBoundRequest.setOrchestrationFlowList(orchFlows);
443 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
444 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
445 workflowAction.selectExecutionList(execution);
446 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
447 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(), "DeactivateServiceInstanceBB");
451 public void selectExecutionListServiceMacroEmptyServiceTest() throws Exception {
452 String gAction = "createInstance";
453 String resource = "Service";
454 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
455 execution.setVariable("requestAction", gAction);
456 String bpmnRequest = new String(Files
457 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
458 execution.setVariable("bpmnRequest", bpmnRequest);
459 execution.setVariable("aLaCarte", false);
460 execution.setVariable("apiVersion", "7");
461 execution.setVariable("requestUri", "v6/serviceInstances/123");
464 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
465 northBoundRequest.setIsToplevelflow(true);
466 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
467 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
468 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
469 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
470 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
471 northBoundRequest.setOrchestrationFlowList(orchFlows);
473 Service service = new Service();
474 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
475 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
476 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
477 workflowAction.selectExecutionList(execution);
478 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
479 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
483 public void selectExecutionListServiceMacroCreateJustNetworkTest() throws Exception {
484 String gAction = "createInstance";
485 String resource = "Service";
486 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
487 execution.setVariable("requestAction", gAction);
488 String bpmnRequest = new String(Files
489 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
490 execution.setVariable("bpmnRequest", bpmnRequest);
491 execution.setVariable("aLaCarte", false);
492 execution.setVariable("apiVersion", "7");
493 execution.setVariable("requestUri", "v6/serviceInstances/123");
496 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
497 northBoundRequest.setIsToplevelflow(true);
498 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
499 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
500 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
501 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
502 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
503 northBoundRequest.setOrchestrationFlowList(orchFlows);
505 Service service = new Service();
506 NetworkResourceCustomization networkCustomization = new NetworkResourceCustomization();
507 networkCustomization.setModelCustomizationUUID("1234");
508 service.getNetworkCustomizations().add(networkCustomization);
509 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
510 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
511 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
512 workflowAction.selectExecutionList(execution);
513 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
514 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignNetworkBB", "CreateNetworkBB",
515 "ActivateNetworkBB", "ActivateServiceInstanceBB");
519 public void selectExecutionListServiceMacroCreateWithNetworkCollectionTest() throws Exception {
520 String gAction = "createInstance";
521 String resource = "Service";
522 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
523 execution.setVariable("requestAction", gAction);
524 String bpmnRequest = new String(Files
525 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
526 execution.setVariable("bpmnRequest", bpmnRequest);
527 execution.setVariable("aLaCarte", false);
528 execution.setVariable("apiVersion", "7");
529 execution.setVariable("requestUri", "v6/serviceInstances/123");
532 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
533 northBoundRequest.setIsToplevelflow(true);
534 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
535 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
536 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
537 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
538 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
539 northBoundRequest.setOrchestrationFlowList(orchFlows);
541 Service service = new Service();
542 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
543 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
544 networkCust.setModelCustomizationUUID("123");
545 networkCustomizations.add(networkCust);
546 service.setNetworkCustomizations(networkCustomizations);
547 NetworkCollectionResourceCustomization collectionResourceCustomization =
548 new NetworkCollectionResourceCustomization();
549 collectionResourceCustomization.setModelCustomizationUUID("123");
551 CollectionResource collectionResource = new CollectionResource();
552 collectionResource.setToscaNodeType("NetworkCollection");
553 InstanceGroup instanceGroup = new InstanceGroup();
554 instanceGroup.setToscaNodeType("NetworkCollectionResource");
555 instanceGroup.setCollectionNetworkResourceCustomizations(new ArrayList<>());
556 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
557 new CollectionNetworkResourceCustomization();
558 collectionNetworkResourceCust.setModelCustomizationUUID("123");
559 collectionNetworkResourceCust.setNetworkResourceCustomization(collectionResourceCustomization);
560 instanceGroup.getCollectionNetworkResourceCustomizations().add(collectionNetworkResourceCust);
561 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
562 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
563 new CollectionResourceInstanceGroupCustomization();
564 collectionInstanceGroupCustomization.setModelCustomizationUUID("123");
565 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
566 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
567 collectionInstanceGroupCustomization.setInstanceGroup(instanceGroup);
568 collectionInstanceGroupCustomization.setCollectionResourceCust(collectionResourceCustomization);
569 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
570 collectionResource.setInstanceGroup(instanceGroup);
571 collectionResourceCustomization.setCollectionResource(collectionResource);;
572 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
573 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
574 doReturn(collectionResourceCustomization).when(catalogDbClient)
575 .getNetworkCollectionResourceCustomizationByID("123");
576 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
577 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
578 workflowAction.selectExecutionList(execution);
579 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
580 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "CreateNetworkCollectionBB", "AssignNetworkBB",
581 "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
582 "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB",
583 "ActivateServiceInstanceBB");
584 assertEquals("Network id not empty", !ebbs.get(2).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
585 assertEquals("Network id not empty", !ebbs.get(3).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
586 assertEquals("Network id not empty", !ebbs.get(4).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
587 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
588 ebbs.get(2).getWorkflowResourceIds().getNetworkId() == ebbs.get(3).getWorkflowResourceIds()
590 && ebbs.get(3).getWorkflowResourceIds().getNetworkId() == ebbs.get(4).getWorkflowResourceIds()
593 assertEquals("Network id not empty", !ebbs.get(5).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
594 assertEquals("Network id not empty", !ebbs.get(6).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
595 assertEquals("Network id not empty", !ebbs.get(7).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
596 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
597 ebbs.get(5).getWorkflowResourceIds().getNetworkId() == ebbs.get(6).getWorkflowResourceIds()
599 && ebbs.get(6).getWorkflowResourceIds().getNetworkId() == ebbs.get(7).getWorkflowResourceIds()
602 assertEquals("Network id not empty", !ebbs.get(8).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
603 assertEquals("Network id not empty", !ebbs.get(9).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
604 assertEquals("Network id not empty", !ebbs.get(10).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
605 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
606 ebbs.get(8).getWorkflowResourceIds().getNetworkId() == ebbs.get(9).getWorkflowResourceIds()
608 && ebbs.get(9).getWorkflowResourceIds().getNetworkId() == ebbs.get(10).getWorkflowResourceIds()
614 public void selectExecutionListServiceMacroCreateWithUserParams() throws Exception {
615 String gAction = "createInstance";
616 String resource = "Service";
617 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
618 execution.setVariable("requestAction", gAction);
620 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
621 execution.setVariable("bpmnRequest", bpmnRequest);
622 execution.setVariable("aLaCarte", false);
623 execution.setVariable("apiVersion", "7");
624 execution.setVariable("requestUri", "v6/serviceInstances/123");
627 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
628 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
629 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
630 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
631 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
632 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
633 northBoundRequest.setOrchestrationFlowList(orchFlows);
635 Service service = new Service();
636 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
638 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
639 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
640 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
641 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
642 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
643 HeatTemplate volumeHeatTemplate = new HeatTemplate();
644 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
645 vfModuleCustomization.setVfModule(vfModule);
647 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
648 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
649 HeatEnvironment heatEnvironment = new HeatEnvironment();
650 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
651 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
652 HeatTemplate moduleHeatTemplate = new HeatTemplate();
653 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
654 vfModuleCustomization2.setVfModule(vfModule2);
656 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
657 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
659 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
660 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
661 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
662 .thenReturn(vfModuleCustomization);
663 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
664 .thenReturn(vfModuleCustomization2);
665 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
666 .thenReturn(vfModuleCustomization3);
667 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
668 workflowAction.selectExecutionList(execution);
669 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
670 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
671 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB", "CreateVolumeGroupBB",
672 "ActivateVolumeGroupBB", "CreateVfModuleBB", "CreateVfModuleBB", "CreateVfModuleBB",
673 "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
674 "ActivateServiceInstanceBB");
675 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
676 int randomUUIDLength = UUID.randomUUID().toString().length();
677 assertEquals(randomUUIDLength, ebbs.get(1).getWorkflowResourceIds().getVnfId().length());
678 assertEquals(randomUUIDLength, ebbs.get(2).getWorkflowResourceIds().getVolumeGroupId().length());
679 assertEquals(randomUUIDLength, ebbs.get(3).getWorkflowResourceIds().getVfModuleId().length());
680 assertEquals(randomUUIDLength, ebbs.get(4).getWorkflowResourceIds().getVfModuleId().length());
681 assertEquals(randomUUIDLength, ebbs.get(5).getWorkflowResourceIds().getVfModuleId().length());
682 assertEquals(randomUUIDLength, ebbs.get(6).getWorkflowResourceIds().getVolumeGroupId().length());
683 assertEquals(randomUUIDLength, ebbs.get(7).getWorkflowResourceIds().getVolumeGroupId().length());
684 assertEquals(randomUUIDLength, ebbs.get(8).getWorkflowResourceIds().getVfModuleId().length());
685 assertEquals(randomUUIDLength, ebbs.get(9).getWorkflowResourceIds().getVfModuleId().length());
686 assertEquals(randomUUIDLength, ebbs.get(10).getWorkflowResourceIds().getVfModuleId().length());
687 assertEquals(randomUUIDLength, ebbs.get(11).getWorkflowResourceIds().getVfModuleId().length());
688 assertEquals(randomUUIDLength, ebbs.get(12).getWorkflowResourceIds().getVfModuleId().length());
689 assertEquals(randomUUIDLength, ebbs.get(13).getWorkflowResourceIds().getVfModuleId().length());
690 assertEquals(randomUUIDLength, ebbs.get(14).getWorkflowResourceIds().getVnfId().length());
691 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
692 assertEquals(true, execution.getVariable("homing"));
696 public void selectExecutionListServiceMacroDeleteTest() throws Exception {
697 String gAction = "deleteInstance";
698 String resource = "Service";
699 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
700 execution.setVariable("requestAction", gAction);
701 String bpmnRequest = new String(Files
702 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
703 execution.setVariable("bpmnRequest", bpmnRequest);
704 execution.setVariable("aLaCarte", false);
705 execution.setVariable("apiVersion", "7");
706 execution.setVariable("requestUri", "v6/serviceInstances/123");
709 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
710 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
711 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
712 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
713 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
714 northBoundRequest.setOrchestrationFlowList(orchFlows);
716 ServiceInstance serviceInstanceAAI = new ServiceInstance();
717 serviceInstanceAAI.setServiceInstanceId("aaisi123");
718 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
719 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
720 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
721 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
722 vnf.setVnfId("vnfId123");
724 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
725 vnf.getVfModules().add(vfModule);
726 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
727 vnf.getVfModules().add(vfModule2);
729 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
730 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
731 volumeGroup.setVolumeGroupId("vg123");
732 vnf.getVolumeGroups().add(volumeGroup);
734 serviceInstanceMSO.getVnfs().add(vnf);
736 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
737 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
738 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
739 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
740 workflowAction.selectExecutionList(execution);
741 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
742 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
743 "DeleteVfModuleBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB",
744 "DeactivateServiceInstanceBB", "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
745 "UnassignVnfBB", "UnassignServiceInstanceBB");
749 public void selectExecutionListServiceMacroUnassignTest() throws Exception {
750 String gAction = "unassignInstance";
751 String resource = "Service";
752 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
753 execution.setVariable("requestAction", gAction);
754 String bpmnRequest = new String(Files
755 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
756 execution.setVariable("bpmnRequest", bpmnRequest);
757 execution.setVariable("aLaCarte", false);
758 execution.setVariable("apiVersion", "7");
759 execution.setVariable("requestUri", "v6/serviceInstances/123");
762 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
763 List<OrchestrationFlow> orchFlows = createFlowList("UnassignVfModuleBB", "UnassignVolumeGroupBB",
764 "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
765 northBoundRequest.setOrchestrationFlowList(orchFlows);
767 ServiceInstance serviceInstanceAAI = new ServiceInstance();
768 serviceInstanceAAI.setServiceInstanceId("aaisi123");
769 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
770 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
771 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
772 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
773 vnf.setVnfId("vnfId123");
775 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
776 vnf.getVfModules().add(vfModule);
777 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
778 vnf.getVfModules().add(vfModule2);
780 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
781 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
782 volumeGroup.setVolumeGroupId("vg123");
783 vnf.getVolumeGroups().add(volumeGroup);
785 serviceInstanceMSO.getVnfs().add(vnf);
787 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
788 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
789 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
790 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
791 workflowAction.selectExecutionList(execution);
792 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
793 assertEqualsBulkFlowName(ebbs, "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
794 "UnassignVnfBB", "UnassignServiceInstanceBB");
798 public void selectExecutionListServiceMacroDeleteNetworkCollectionTest() throws Exception {
799 String gAction = "deleteInstance";
800 String resource = "Service";
801 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
802 execution.setVariable("requestAction", gAction);
803 String bpmnRequest = new String(Files
804 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
805 execution.setVariable("bpmnRequest", bpmnRequest);
806 execution.setVariable("aLaCarte", false);
807 execution.setVariable("apiVersion", "7");
808 execution.setVariable("requestUri", "v6/serviceInstances/123");
811 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
812 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
813 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
814 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
815 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
816 northBoundRequest.setOrchestrationFlowList(orchFlows);
818 ServiceInstance serviceInstanceAAI = new ServiceInstance();
819 serviceInstanceAAI.setServiceInstanceId("aaisi123");
820 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
821 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
823 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network =
824 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
825 network.setNetworkId("123");
826 serviceInstanceMSO.getNetworks().add(network);
827 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network2 =
828 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
829 network2.setNetworkId("321");
830 serviceInstanceMSO.getNetworks().add(network2);
832 Collection collection = new Collection();
833 serviceInstanceMSO.setCollection(collection);
835 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
836 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
837 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
838 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
839 workflowAction.selectExecutionList(execution);
840 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
841 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
842 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeleteNetworkCollectionBB",
843 "DeactivateServiceInstanceBB", "UnassignServiceInstanceBB");
847 public void selectExecutionListVnfMacroRecreateTest() throws Exception {
848 String gAction = "recreateInstance";
849 String resource = "Vnf";
850 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
851 execution.setVariable("requestAction", gAction);
853 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/VnfMacroReplace.json")));
854 execution.setVariable("bpmnRequest", bpmnRequest);
855 execution.setVariable("aLaCarte", false);
856 execution.setVariable("apiVersion", "7");
857 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/recreate");
858 execution.setVariable("serviceInstanceId", "123");
859 execution.setVariable("vnfId", "1234");
861 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
862 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
863 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
864 "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB",
865 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
866 "AAIUnsetVnfInMaintBB");
867 northBoundRequest.setOrchestrationFlowList(orchFlows);
869 ServiceInstance serviceInstanceAAI = new ServiceInstance();
870 serviceInstanceAAI.setServiceInstanceId("123");
871 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
872 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
873 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
874 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
875 vnf.setVnfId("1234");
877 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
878 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
879 vfModule.setVfModuleId("vfModule1");
880 vnf.getVfModules().add(vfModule);
881 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
882 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
883 vfModule2.setVfModuleId("vfModule2");
884 vnf.getVfModules().add(vfModule2);
886 serviceInstanceMSO.getVnfs().add(vnf);
888 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
889 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
890 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
891 false, "cloud-owner")).thenReturn(northBoundRequest);
892 workflowAction.selectExecutionList(execution);
893 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
894 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateVfModuleBB",
895 "DeactivateVfModuleBB", "DeleteVfModuleBB", "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB",
896 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
897 "AAIUnsetVnfInMaintBB");
901 public void selectExecutionListVnfMacroReplaceTest() throws Exception {
902 String gAction = "replaceInstance";
903 String resource = "Vnf";
904 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
905 execution.setVariable("requestAction", gAction);
907 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/VnfMacroReplace.json")));
908 execution.setVariable("bpmnRequest", bpmnRequest);
909 execution.setVariable("aLaCarte", false);
910 execution.setVariable("apiVersion", "7");
911 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/replace");
912 execution.setVariable("serviceInstanceId", "123");
913 execution.setVariable("vnfId", "1234");
915 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
916 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
917 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
918 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
919 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB",
920 "ChangeModelVnfBB", "ActivateVnfBB", "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB",
921 "AAIUnsetVnfInMaintBB");
922 northBoundRequest.setOrchestrationFlowList(orchFlows);
924 ServiceInstance serviceInstanceAAI = new ServiceInstance();
925 serviceInstanceAAI.setServiceInstanceId("123");
926 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
927 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
928 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
929 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
930 vnf.setVnfId("1234");
931 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
932 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
933 vfModule.setVfModuleId("vfModule1");
934 vnf.getVfModules().add(vfModule);
935 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
936 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
937 vfModule2.setVfModuleId("vfModule2");
938 vnf.getVfModules().add(vfModule2);
939 serviceInstanceMSO.getVnfs().add(vnf);
940 VfModule vfModuleAAI = new VfModule();
941 vfModuleAAI.setVfModuleId("vfModule2");
942 RelationshipList relationshipList = new RelationshipList();
943 Relationship relationship = new Relationship();
944 relationshipList.getRelationship().add(relationship);
945 vfModuleAAI.setRelationshipList(relationshipList);
946 Relationships relationships = new Relationships("abc");
947 Configuration config = new Configuration();
948 config.setConfigurationId("configId");
949 Optional<Configuration> configOp = Optional.of(config);
950 Optional<Relationships> relationshipsOp = Optional.of(relationships);
952 doReturn(relationshipsOp).when(workflowActionUtils).extractRelationshipsVnfc(isA(Relationships.class));
953 doReturn(configOp).when(workflowActionUtils).extractRelationshipsConfiguration(isA(Relationships.class));
954 doReturn(vfModuleAAI).when(bbSetupUtils).getAAIVfModule("1234", "vfModule2");
955 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
956 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
957 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
958 false, "cloud-owner")).thenReturn(northBoundRequest);
959 workflowAction.selectExecutionList(execution);
960 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
961 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateFabricConfigurationBB",
962 "UnassignFabricConfigurationBB", "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
963 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "ChangeModelVfModuleBB",
964 "CreateVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB",
965 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ChangeModelVnfBB", "ActivateVnfBB",
966 "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
967 for (ExecuteBuildingBlock executeBuildingBlock : ebbs) {
968 assertEquals("123", executeBuildingBlock.getWorkflowResourceIds().getServiceInstanceId());
974 public void selectExecutionListNetworkCollectionMacroCreate() throws Exception {
975 String gAction = "createInstance";
976 String resource = "NetworkCollection";
977 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
978 execution.setVariable("requestAction", gAction);
979 String bpmnRequest = new String(
980 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/CreateNetworkCollection.json")));
981 execution.setVariable("bpmnRequest", bpmnRequest);
982 execution.setVariable("aLaCarte", false);
983 execution.setVariable("apiVersion", "7");
984 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
987 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
988 List<OrchestrationFlow> orchFlows = createFlowList("CreateNetworkCollectionBB", "AssignNetworkBB",
989 "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB");
990 northBoundRequest.setOrchestrationFlowList(orchFlows);
992 Service service = new Service();
993 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
994 CollectionResource collectionResource = new CollectionResource();
995 collectionResource.setToscaNodeType("Data NetworkCollection Data");
996 collectionResourceCustomization.setCollectionResource(collectionResource);
997 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
999 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1000 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1001 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1002 workflowAction.selectExecutionList(execution);
1003 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1004 assertEqualsBulkFlowName(ebbs, "CreateNetworkCollectionBB", "AssignNetworkBB", "CreateNetworkBB",
1005 "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
1006 "ActivateNetworkCollectionBB");
1011 public void selectExecutionListNetworkCollectionMacroDelete() throws Exception {
1012 String gAction = "deleteInstance";
1013 String resource = "NetworkCollection";
1014 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1015 execution.setVariable("requestAction", gAction);
1016 String bpmnRequest = new String(
1017 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/CreateNetworkCollection.json")));
1018 execution.setVariable("bpmnRequest", bpmnRequest);
1019 execution.setVariable("aLaCarte", false);
1020 execution.setVariable("apiVersion", "7");
1021 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
1023 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1024 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateNetworkBB", "DeleteNetworkBB",
1025 "UnassignNetworkBB", "DeactivateNetworkCollectionBB", "DeleteNetworkCollectionBB");
1026 northBoundRequest.setOrchestrationFlowList(orchFlows);
1028 Service service = new Service();
1029 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
1030 CollectionResource collectionResource = new CollectionResource();
1031 collectionResource.setToscaNodeType("Data NetworkCollection Data");
1032 collectionResourceCustomization.setCollectionResource(collectionResource);
1033 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
1035 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1036 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1037 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1038 workflowAction.selectExecutionList(execution);
1039 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1040 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1041 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeactivateNetworkCollectionBB",
1042 "DeleteNetworkCollectionBB");
1046 public void selectExecutionListALaCarteVfModuleNoFabricCreateTest() throws Exception {
1047 String gAction = "createInstance";
1048 String resource = "VfModule";
1049 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1050 execution.setVariable("requestAction", gAction);
1051 String bpmnRequest =
1052 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1053 execution.setVariable("bpmnRequest", bpmnRequest);
1054 execution.setVariable("aLaCarte", true);
1055 execution.setVariable("apiVersion", "7");
1056 execution.setVariable("requestUri",
1057 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1060 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1061 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1062 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1063 northBoundRequest.setOrchestrationFlowList(orchFlows);
1065 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1066 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1067 workflowAction.selectExecutionList(execution);
1068 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1069 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB");
1073 public void selectExecutionListALaCarteVfModuleFabricCreateTest() throws Exception {
1074 String gAction = "createInstance";
1075 String resource = "VfModule";
1076 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1077 execution.setVariable("requestAction", gAction);
1078 String bpmnRequest =
1079 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1080 execution.setVariable("bpmnRequest", bpmnRequest);
1081 execution.setVariable("aLaCarte", true);
1082 execution.setVariable("apiVersion", "7");
1083 execution.setVariable("requestUri",
1084 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1086 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1087 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1088 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1089 northBoundRequest.setOrchestrationFlowList(orchFlows);
1091 List<CvnfcCustomization> cvnfcCustomizations = new ArrayList<CvnfcCustomization>();
1092 CvnfcCustomization cvnfcCustomization = new CvnfcCustomization();
1093 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1094 new CvnfcConfigurationCustomization();
1095 ConfigurationResource configurationResource = new ConfigurationResource();
1096 configurationResource.setToscaNodeType("FabricConfiguration");
1097 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1098 vnfVfmoduleCvnfcConfigurationCustomization.setModelInstanceName("modelInstanceName1");
1099 vnfVfmoduleCvnfcConfigurationCustomization.setCvnfcCustomization(cvnfcCustomization);
1100 List<CvnfcConfigurationCustomization> custSet = new ArrayList<CvnfcConfigurationCustomization>();
1101 custSet.add(vnfVfmoduleCvnfcConfigurationCustomization);
1102 cvnfcCustomization.setCvnfcConfigurationCustomization(custSet);
1103 cvnfcCustomization.setDescription("description");
1104 cvnfcCustomizations.add(cvnfcCustomization);
1106 CvnfcCustomization cvnfcCustomization2 = new CvnfcCustomization();
1107 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization2 =
1108 new CvnfcConfigurationCustomization();
1109 ConfigurationResource configurationResource2 = new ConfigurationResource();
1110 configurationResource2.setToscaNodeType("FabricConfiguration");
1111 vnfVfmoduleCvnfcConfigurationCustomization2.setConfigurationResource(configurationResource2);
1112 vnfVfmoduleCvnfcConfigurationCustomization2.setModelInstanceName("modelInstanceName2");
1113 vnfVfmoduleCvnfcConfigurationCustomization2.setCvnfcCustomization(cvnfcCustomization2);
1114 List<CvnfcConfigurationCustomization> custSet2 = new ArrayList<CvnfcConfigurationCustomization>();
1115 custSet2.add(vnfVfmoduleCvnfcConfigurationCustomization2);
1116 cvnfcCustomization2.setCvnfcConfigurationCustomization(custSet2);
1117 cvnfcCustomization2.setDescription("description2");
1118 cvnfcCustomizations.add(cvnfcCustomization2);
1120 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1121 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1122 // when(catalogDbClient.getCvnfcCustomizationByVnfCustomizationUUIDAndVfModuleCustomizationUUID("fc25201d-36d6-43a3-8d39-fdae88e526ae",
1123 // "9a6d01fd-19a7-490a-9800-460830a12e0b")).thenReturn(cvnfcCustomizations);
1124 workflowAction.selectExecutionList(execution);
1125 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1126 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1127 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "AssignFabricConfigurationBB",
1128 "ActivateFabricConfigurationBB");
1132 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceTest() throws Exception {
1133 String gAction = "replaceInstance";
1134 String resource = "VfModule";
1135 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1136 execution.setVariable("requestAction", gAction);
1137 String bpmnRequest =
1138 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1139 execution.setVariable("bpmnRequest", bpmnRequest);
1140 execution.setVariable("aLaCarte", true);
1141 execution.setVariable("apiVersion", "7");
1142 execution.setVariable("requestUri",
1143 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1145 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1146 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1147 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1148 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1149 workflowAction.selectExecutionList(execution);
1150 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1152 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1153 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1154 "ChangeModelServiceInstanceBB");
1158 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1159 String gAction = "replaceInstanceRetainAssignments";
1160 String resource = "VfModule";
1161 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1162 execution.setVariable("requestAction", gAction);
1163 String bpmnRequest =
1164 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1165 execution.setVariable("bpmnRequest", bpmnRequest);
1166 execution.setVariable("aLaCarte", true);
1167 execution.setVariable("apiVersion", "7");
1168 execution.setVariable("requestUri",
1169 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1171 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1172 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1173 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1174 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1175 workflowAction.selectExecutionList(execution);
1176 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1178 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1179 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1183 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceTest() throws Exception {
1184 String gAction = "replaceInstance";
1185 String resource = "VfModule";
1186 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1187 execution.setVariable("requestAction", gAction);
1188 String bpmnRequest =
1189 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1190 execution.setVariable("bpmnRequest", bpmnRequest);
1191 execution.setVariable("aLaCarte", true);
1192 execution.setVariable("apiVersion", "7");
1193 execution.setVariable("requestUri",
1194 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1195 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1196 execution.setVariable("vfModuleId", "1234");
1198 VolumeGroup volumeGroup = new VolumeGroup();
1199 volumeGroup.setVolumeGroupId("volumeGroupId");
1200 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1201 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1202 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1203 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1204 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1205 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1206 workflowAction.selectExecutionList(execution);
1207 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1209 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1210 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVfModuleBB",
1211 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1215 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceRetainAssignmentsTest()
1217 String gAction = "replaceInstanceRetainAssignments";
1218 String resource = "VfModule";
1219 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1220 execution.setVariable("requestAction", gAction);
1221 String bpmnRequest =
1222 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1223 execution.setVariable("bpmnRequest", bpmnRequest);
1224 execution.setVariable("aLaCarte", true);
1225 execution.setVariable("apiVersion", "7");
1226 execution.setVariable("requestUri",
1227 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1228 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1229 execution.setVariable("vfModuleId", "1234");
1231 VolumeGroup volumeGroup = new VolumeGroup();
1232 volumeGroup.setVolumeGroupId("volumeGroupId");
1233 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1234 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1236 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1237 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1238 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1239 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1240 workflowAction.selectExecutionList(execution);
1241 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1243 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1244 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
1245 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1249 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceTest() throws Exception {
1250 String gAction = "replaceInstance";
1251 String resource = "VfModule";
1252 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1253 execution.setVariable("requestAction", gAction);
1254 String bpmnRequest =
1255 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1256 execution.setVariable("bpmnRequest", bpmnRequest);
1257 execution.setVariable("aLaCarte", true);
1258 execution.setVariable("apiVersion", "7");
1259 execution.setVariable("requestUri",
1260 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1261 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1262 execution.setVariable("vfModuleId", "1234");
1264 VolumeGroup volumeGroup = new VolumeGroup();
1265 volumeGroup.setVolumeGroupId("volumeGroupId");
1266 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1267 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1269 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1270 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1271 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1272 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1273 vfModuleCustomization.setVfModule(vfModule);
1274 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1275 .thenReturn(vfModuleCustomization);
1277 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1278 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1279 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1280 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1281 workflowAction.selectExecutionList(execution);
1282 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1284 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1285 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1286 "ChangeModelServiceInstanceBB");
1290 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1291 String gAction = "replaceInstanceRetainAssignments";
1292 String resource = "VfModule";
1293 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1294 execution.setVariable("requestAction", gAction);
1295 String bpmnRequest =
1296 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1297 execution.setVariable("bpmnRequest", bpmnRequest);
1298 execution.setVariable("aLaCarte", true);
1299 execution.setVariable("apiVersion", "7");
1300 execution.setVariable("requestUri",
1301 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1302 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1303 execution.setVariable("vfModuleId", "1234");
1305 VolumeGroup volumeGroup = new VolumeGroup();
1306 volumeGroup.setVolumeGroupId("volumeGroupId");
1307 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1308 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1310 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1311 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1312 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1313 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1314 vfModuleCustomization.setVfModule(vfModule);
1315 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1316 .thenReturn(vfModuleCustomization);
1318 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1319 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1320 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1321 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1322 workflowAction.selectExecutionList(execution);
1323 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1325 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1326 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1330 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceTest() throws Exception {
1331 String gAction = "replaceInstance";
1332 String resource = "VfModule";
1333 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1334 execution.setVariable("requestAction", gAction);
1335 String bpmnRequest =
1336 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1337 execution.setVariable("bpmnRequest", bpmnRequest);
1338 execution.setVariable("aLaCarte", true);
1339 execution.setVariable("apiVersion", "7");
1340 execution.setVariable("requestUri",
1341 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1342 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1343 execution.setVariable("vfModuleId", "1234");
1345 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1346 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1347 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1348 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1349 vfModuleCustomization.setVfModule(vfModule);
1350 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1351 .thenReturn(vfModuleCustomization);
1353 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1354 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1355 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1356 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1357 workflowAction.selectExecutionList(execution);
1358 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1360 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1361 "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1362 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1366 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceRetainAssignmentsTest()
1368 String gAction = "replaceInstanceRetainAssignments";
1369 String resource = "VfModule";
1370 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1371 execution.setVariable("requestAction", gAction);
1372 String bpmnRequest =
1373 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1374 execution.setVariable("bpmnRequest", bpmnRequest);
1375 execution.setVariable("aLaCarte", true);
1376 execution.setVariable("apiVersion", "7");
1377 execution.setVariable("requestUri",
1378 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1379 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1380 execution.setVariable("vfModuleId", "1234");
1382 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1383 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1384 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1385 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1386 vfModuleCustomization.setVfModule(vfModule);
1387 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1388 .thenReturn(vfModuleCustomization);
1390 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1391 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1392 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1393 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1394 workflowAction.selectExecutionList(execution);
1395 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1397 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "AssignVolumeGroupBB",
1398 "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
1399 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1403 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceTest() throws Exception {
1404 String gAction = "replaceInstance";
1405 String resource = "VfModule";
1406 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1407 execution.setVariable("requestAction", gAction);
1408 String bpmnRequest = new String(
1409 Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleReplaceRebuildVolumeGroups.json")));
1410 execution.setVariable("bpmnRequest", bpmnRequest);
1411 execution.setVariable("aLaCarte", true);
1412 execution.setVariable("apiVersion", "7");
1413 execution.setVariable("requestUri",
1414 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1415 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1416 execution.setVariable("vfModuleId", "1234");
1418 VolumeGroup volumeGroup = new VolumeGroup();
1419 volumeGroup.setVolumeGroupId("volumeGroupId");
1420 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1421 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1423 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1424 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1425 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1426 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1427 vfModuleCustomization.setVfModule(vfModule);
1428 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1429 .thenReturn(vfModuleCustomization);
1431 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1432 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1433 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1434 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1435 workflowAction.selectExecutionList(execution);
1436 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1438 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1439 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
1440 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
1441 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1445 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1446 String gAction = "replaceInstanceRetainAssignments";
1447 String resource = "VfModule";
1448 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1449 execution.setVariable("requestAction", gAction);
1450 String bpmnRequest = new String(
1451 Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleReplaceRebuildVolumeGroups.json")));
1452 execution.setVariable("bpmnRequest", bpmnRequest);
1453 execution.setVariable("aLaCarte", true);
1454 execution.setVariable("apiVersion", "7");
1455 execution.setVariable("requestUri",
1456 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1457 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1458 execution.setVariable("vfModuleId", "1234");
1460 VolumeGroup volumeGroup = new VolumeGroup();
1461 volumeGroup.setVolumeGroupId("volumeGroupId");
1462 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1463 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1465 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1466 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1467 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1468 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1469 vfModuleCustomization.setVfModule(vfModule);
1470 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1471 .thenReturn(vfModuleCustomization);
1473 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1474 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1475 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1476 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1477 workflowAction.selectExecutionList(execution);
1478 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1480 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1481 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB", "ChangeModelVfModuleBB",
1482 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1483 "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1488 public void selectExecutionListALaCarteVfModuleFabricDeleteTest() throws Exception {
1489 String gAction = "deleteInstance";
1490 String resource = "VfModule";
1491 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1492 execution.setVariable("requestAction", gAction);
1493 String bpmnRequest =
1494 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1495 execution.setVariable("bpmnRequest", bpmnRequest);
1496 execution.setVariable("aLaCarte", true);
1497 execution.setVariable("apiVersion", "7");
1498 execution.setVariable("requestUri",
1499 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1501 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1502 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1503 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1504 northBoundRequest.setOrchestrationFlowList(orchFlows);
1506 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1507 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1509 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1510 vnf.setVnfId("vnf0");
1511 vnf.setModelCustomizationId("modelCustomizationId");
1512 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1514 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1515 vfModule.setModelCustomizationId("modelCustomizationId");
1516 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1518 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1519 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1520 vnfc.setModelInvariantId("modelInvariantId");
1521 vnfc.setVnfcName("testVnfcName");
1523 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1526 List<org.onap.aai.domain.yang.Configuration> configurations =
1527 new ArrayList<org.onap.aai.domain.yang.Configuration>();
1528 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1529 configuration.setConfigurationId("configurationId");
1530 configuration.setModelCustomizationId("modelCustimizationId");
1531 configuration.setConfigurationName("testConfigurationName");
1532 configurations.add(configuration);
1533 doReturn(configurations).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1536 doReturn("testName").when(SPY_workflowAction).getVnfcNameForConfiguration(anyObject());
1538 SPY_workflowAction.selectExecutionList(execution);
1539 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1540 assertEqualsBulkFlowName(ebbs, "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB",
1541 "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1545 public void getConfigBuildingBlocksNoVfModuleFabricDeleteTest() throws Exception {
1546 String gAction = "deleteInstance";
1547 ObjectMapper mapper = new ObjectMapper();
1548 WorkflowType resourceType = WorkflowType.VFMODULE;
1549 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1550 execution.setVariable("requestAction", gAction);
1551 String bpmnRequest =
1552 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1553 execution.setVariable("bpmnRequest", bpmnRequest);
1554 execution.setVariable("vnfId", "1234");
1555 execution.setVariable("vfModuleId", "vfModuleId1234");
1556 execution.setVariable("requestUri",
1557 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1558 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1559 RequestDetails requestDetails = sIRequest.getRequestDetails();
1560 String requestAction = "deleteInstance";
1561 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1562 boolean aLaCarte = true;
1563 String apiVersion = "7";
1564 String vnfType = "vnfType";
1565 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1566 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1567 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1568 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1570 thrown.expect(AAIEntityNotFoundException.class);
1571 thrown.expectMessage(containsString(
1572 "No matching VfModule is found in Generic-Vnf in AAI for vnfId: 1234 and vfModuleId : vfModuleId1234"));
1574 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1575 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1577 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1578 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1579 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1580 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1582 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1583 vnf.setVnfId("vnf0");
1584 vnf.setModelCustomizationId("modelCustomizationId");
1585 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1587 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1588 vfModule.setModelCustomizationId("modelCustomizationId");
1589 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(null);
1591 SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1595 public void selectExecutionListALaCarteVfModuleNoFabricDeleteTest() throws Exception {
1596 String gAction = "deleteInstance";
1597 String resource = "VfModule";
1598 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1599 execution.setVariable("requestAction", gAction);
1600 String bpmnRequest =
1601 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1602 execution.setVariable("bpmnRequest", bpmnRequest);
1603 execution.setVariable("aLaCarte", true);
1604 execution.setVariable("apiVersion", "7");
1605 execution.setVariable("requestUri",
1606 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1608 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1609 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1610 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1611 northBoundRequest.setOrchestrationFlowList(orchFlows);
1613 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1614 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1616 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1617 vnf.setVnfId("vnf0");
1618 vnf.setModelCustomizationId("modelCustomizationId");
1619 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1621 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1622 vfModule.setModelCustomizationId("modelCustomizationId");
1623 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1625 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1626 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1627 vnfc.setModelInvariantId("modelInvariantId");
1628 vnfc.setVnfcName("testVnfcName");
1630 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1633 List<org.onap.aai.domain.yang.Configuration> configurations =
1634 new ArrayList<org.onap.aai.domain.yang.Configuration>();
1635 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1636 doReturn(configurations).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1639 doReturn("testName").when(SPY_workflowAction).getVnfcNameForConfiguration(anyObject());
1641 SPY_workflowAction.selectExecutionList(execution);
1642 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1643 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1647 public void selectExecutionListMacroResumeTest() throws Exception {
1648 String gAction = "createInstance";
1649 String resource = "Service";
1650 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1651 execution.setVariable("requestAction", gAction);
1652 String bpmnRequest =
1653 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
1654 execution.setVariable("bpmnRequest", bpmnRequest);
1655 execution.setVariable("aLaCarte", false);
1656 execution.setVariable("apiVersion", "7");
1657 execution.setVariable("requestUri", "v6/serviceInstances/123");
1659 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1660 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1661 northBoundRequest.setOrchestrationFlowList(orchFlows);
1663 Service service = new Service();
1664 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
1666 ServiceInstance si = new ServiceInstance();
1668 when(bbSetupUtils.getAAIServiceInstanceById("123")).thenReturn(si);
1669 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1671 String flowsToExecuteString =
1672 "[{\"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\"}}]";
1673 ObjectMapper om = new ObjectMapper();
1674 List<ExecuteBuildingBlock> flowsToExecute = null;
1676 ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
1677 flowsToExecute = Arrays.asList(asArray);
1678 } catch (Exception e) {
1679 e.printStackTrace();
1682 when(bbSetupUtils.loadOriginalFlowExecutionPath(anyString())).thenReturn(flowsToExecute);
1684 workflowAction.selectExecutionList(execution);
1685 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1686 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB");
1690 public void getRelatedResourcesInVfModuleTest() throws Exception {
1691 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1692 vnfc.setModelInvariantId("modelInvariantId");
1693 vnfc.setVnfcName("testVnfcName");
1695 String vfncPayload =
1696 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/vnfcResponse.json")));
1697 AAIResultWrapper vfncWrapper = new AAIResultWrapper(vfncPayload);
1699 String configurationPayload =
1700 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/configurationResponse.json")));
1701 AAIResultWrapper configurationWrapper = new AAIResultWrapper(configurationPayload);
1702 List<AAIResultWrapper> configurationResultWrappers = new ArrayList<AAIResultWrapper>();
1703 configurationResultWrappers.add(configurationWrapper);
1705 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VNFC, vnfc.getVnfcName());
1706 when(bbSetupUtils.getAAIResourceDepthOne(uri)).thenReturn(vfncWrapper);
1708 doReturn(configurationResultWrappers).when(SPY_workflowAction).getResultWrappersFromRelationships(anyObject(),
1710 List<org.onap.aai.domain.yang.Configuration> configurationsList = SPY_workflowAction.getRelatedResourcesInVnfc(
1711 vnfc, org.onap.aai.domain.yang.Configuration.class, AAIObjectType.CONFIGURATION);
1712 assertEquals(1, configurationsList.size());
1713 assertEquals("testConfigurationId", configurationsList.get(0).getConfigurationId());
1717 * WorkflowActionBB Tests
1721 public void pluralTest() {
1722 List<String> items = Arrays.asList("serviceInstances, Service", "vnfs, Vnf", "vfModules, VfModule",
1723 "networks, Network", "invalidNames, invalidNames");
1724 items.forEach(item -> {
1725 String[] split = item.split(",");
1726 String type = split[0].trim();
1727 String expected = split[1].trim();
1728 assertThat(workflowAction.convertTypeFromPlural(type), equalTo(expected));
1733 public void sortExecutionPathByObjectForVlanTaggingCreateTest() throws Exception {
1734 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1736 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("0");
1737 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1738 executeFlows.add(ebb);
1740 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("1");
1741 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1742 executeFlows.add(ebb2);
1744 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("0");
1745 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1746 executeFlows.add(ebb3);
1748 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("1");
1749 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1750 executeFlows.add(ebb4);
1752 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("0");
1753 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1754 executeFlows.add(ebb5);
1756 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("1");
1757 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1758 executeFlows.add(ebb6);
1760 List<ExecuteBuildingBlock> sorted =
1761 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "createInstance");
1762 assertEqualsBulkFlowName(sorted, "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB",
1763 "CreateNetworkBB", "ActivateNetworkBB");
1767 public void sortExecutionPathByObjectForVlanTaggingDeleteTest() throws Exception {
1768 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1770 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("0");
1771 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1772 executeFlows.add(ebb);
1774 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("1");
1775 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1776 executeFlows.add(ebb2);
1778 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("0");
1779 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1780 executeFlows.add(ebb3);
1782 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("1");
1783 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1784 executeFlows.add(ebb4);
1786 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("0");
1787 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1788 executeFlows.add(ebb5);
1790 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("1");
1791 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1792 executeFlows.add(ebb6);
1794 List<ExecuteBuildingBlock> sorted =
1795 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "deleteInstance");
1796 assertEqualsBulkFlowName(sorted, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1797 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB");
1801 public void queryNorthBoundRequestCatalogDbNestedTest() throws MalformedURLException {
1802 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1803 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
1804 "VNF-Macro-Replace", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
1805 northBoundRequest.setOrchestrationFlowList(orchFlows);
1806 List<OrchestrationFlow> macroFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1807 "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB");
1809 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner("replaceInstance",
1810 "Vnf", false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1811 when(catalogDbClient.getOrchestrationFlowByAction("VNF-Macro-Replace")).thenReturn(macroFlows);
1812 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "replaceInstance",
1813 WorkflowType.VNF, false, "my-custom-cloud-owner");
1814 assertEquals(flows.get(0).getFlowName(), "AAICheckVnfInMaintBB");
1815 assertEquals(flows.get(1).getFlowName(), "AAISetVnfInMaintBB");
1816 assertEquals(flows.get(2).getFlowName(), "DeactivateVfModuleBB");
1817 assertEquals(flows.get(3).getFlowName(), "DeleteVfModuleBB");
1818 assertEquals(flows.get(4).getFlowName(), "DeactivateVnfBB");
1819 assertEquals(flows.get(5).getFlowName(), "CreateVfModuleBB");
1820 assertEquals(flows.get(6).getFlowName(), "ActivateVfModuleBB");
1821 assertEquals(flows.get(7).getFlowName(), "ActivateVnfBB");
1822 assertEquals(flows.get(8).getFlowName(), "SDNOVnfHealthCheckBB");
1823 assertEquals(flows.get(9).getFlowName(), "AAIUnsetVnfInMaintBB");
1827 public void queryNorthBoundRequestCatalogDbTransportTest() throws MalformedURLException {
1828 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1829 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1830 northBoundRequest.setOrchestrationFlowList(orchFlows);
1831 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwnerAndServiceType(
1832 "createInstance", "Service", true, "my-custom-cloud-owner", "TRANSPORT")).thenReturn(northBoundRequest);
1834 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "createInstance",
1835 WorkflowType.SERVICE, true, "my-custom-cloud-owner", "TRANSPORT");
1836 assertEquals(flows.get(0).getFlowName(), "AssignServiceInstanceBB");
1840 public void extractResourceIdAndTypeFromUriTest() {
1841 String uri = "/v6/serviceInstances/123";
1842 String uri2 = "/v6/serviceInstances/123/vnfs/1234";
1843 String uri3 = "/v6/serviceInstances";
1844 String uri4 = "/v6/serviceInstances/assign";
1845 String uri5 = "'/v6/serviceInstances/123/vnfs";
1846 String uri6 = "/v6/serviceInstances/123/vnfs/1234/someAction";
1847 String uri7 = "/v6/serviceInstances/123/vnfs/1234/vfModules/5678/replace";
1848 String uri8 = "/v6/serviceInstances/123/vnfs/1234/vfModules/scaleOut";
1849 Resource expected1 = new Resource(WorkflowType.SERVICE, "123", true);
1850 Resource expected2 = new Resource(WorkflowType.VNF, "1234", false);
1851 Resource expected3 = new Resource(WorkflowType.VNF, "1234", false);
1852 Resource expected4 = new Resource(WorkflowType.VFMODULE, "5678", false);
1853 Resource result = workflowAction.extractResourceIdAndTypeFromUri(uri);
1854 assertEquals(expected1.getResourceId(), result.getResourceId());
1855 assertEquals(expected1.getResourceType(), result.getResourceType());
1856 result = workflowAction.extractResourceIdAndTypeFromUri(uri2);
1857 assertEquals(expected2.getResourceId(), result.getResourceId());
1858 assertEquals(expected2.getResourceType(), result.getResourceType());
1859 result = workflowAction.extractResourceIdAndTypeFromUri(uri3);
1860 assertEquals("Service", result.getResourceType().toString());
1861 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1862 result = workflowAction.extractResourceIdAndTypeFromUri(uri4);
1863 assertEquals("Service", result.getResourceType().toString());
1864 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1865 result = workflowAction.extractResourceIdAndTypeFromUri(uri5);
1866 assertEquals("Vnf", result.getResourceType().toString());
1867 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1868 result = workflowAction.extractResourceIdAndTypeFromUri(uri6);
1869 assertEquals(expected3.getResourceId(), result.getResourceId());
1870 assertEquals(expected3.getResourceType(), result.getResourceType());
1871 result = workflowAction.extractResourceIdAndTypeFromUri(uri7);
1872 assertEquals(expected4.getResourceId(), result.getResourceId());
1873 assertEquals(expected4.getResourceType(), result.getResourceType());
1874 result = workflowAction.extractResourceIdAndTypeFromUri(uri8);
1875 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1876 assertEquals("VfModule", result.getResourceType().toString());
1881 public void extractResourceIdAndTypeFromUriInvalidTypeTest() {
1882 this.expectedException.expect(IllegalArgumentException.class);
1883 this.expectedException.expectMessage(containsString("Uri could not be parsed. No type found."));
1884 workflowAction.extractResourceIdAndTypeFromUri("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace");
1888 public void extractResourceIdAndTypeFromUriInvalidUriTest() {
1889 this.expectedException.expect(IllegalArgumentException.class);
1890 this.expectedException.expectMessage(containsString("Uri could not be parsed:"));
1891 workflowAction.extractResourceIdAndTypeFromUri("something that doesn't match anything");
1895 public void extractResourceIdAndTypeFromUriResumeTest() {
1896 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1897 "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");
1898 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1902 public void extractResourceIdAndTypeFromUriReplaceResumeTest() {
1903 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1904 "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");
1905 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1909 public void extractResourceIdAndTypeFromUriDeActiveResumeTest() {
1910 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1911 "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");
1912 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1916 public void extractResourceIdAndTypeFromUriResumeIdOnly() {
1917 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1918 "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");
1919 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1923 public void isUriResumeTest() {
1924 assertTrue(workflowAction.isUriResume(
1925 "http://localhost:9100/onap/so/infra/orchestrationRequests/v7/requests/2f8ab587-ef6a-4456-b7b2-d73f9363dabd/resume"));
1926 assertTrue(workflowAction.isUriResume(
1927 " 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"));
1929 assertFalse(workflowAction.isUriResume("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace"));
1933 public void isRequestMacroServiceResumeTest() {
1934 ServiceInstance si = new ServiceInstance();
1935 when(bbSetupUtils.getAAIServiceInstanceById(anyString())).thenReturn(si);
1936 assertFalse(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", ""));
1937 assertTrue(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", "123"));
1941 public void populateResourceIdsFromApiHandlerTest() {
1942 execution.setVariable("serviceInstanceId", "123");
1943 execution.setVariable("vnfId", "888");
1944 WorkflowResourceIds x = workflowAction.populateResourceIdsFromApiHandler(execution);
1945 assertEquals("123", x.getServiceInstanceId());
1946 assertEquals("888", x.getVnfId());
1947 assertNull(x.getVolumeGroupId());
1950 private RequestDetails setupRequestDetails(String globalSubscriberId, String subscriptionServiceType,
1951 String modelCustomizationId) {
1952 RequestDetails reqDetails = new RequestDetails();
1953 SubscriberInfo subInfo = new SubscriberInfo();
1954 subInfo.setGlobalSubscriberId(globalSubscriberId);
1955 reqDetails.setSubscriberInfo(subInfo);
1956 RequestParameters reqParams = new RequestParameters();
1957 reqParams.setSubscriptionServiceType(subscriptionServiceType);
1958 reqDetails.setRequestParameters(reqParams);
1959 ModelInfo modelInfo = new ModelInfo();
1960 modelInfo.setModelCustomizationId(modelCustomizationId);
1961 reqDetails.setModelInfo(modelInfo);
1966 public void validateResourceIdInAAIVnfTest() throws Exception {
1967 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
1968 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1969 workflowResourceIds.setServiceInstanceId("siId123");
1971 GenericVnf vnf = new GenericVnf();
1972 vnf.setVnfId("id123");
1973 vnf.setVnfName("vnfName123");
1974 vnf.setModelCustomizationId("1234567");
1975 Optional<GenericVnf> opVnf = Optional.of(vnf);
1976 GenericVnf vnf2 = new GenericVnf();
1977 vnf2.setVnfId("id123");
1978 vnf2.setVnfName("vnfName222");
1979 vnf2.setModelCustomizationId("222");
1980 Optional<GenericVnf> opVnf2 = Optional.of(vnf2);
1981 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
1982 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName222")).thenReturn(opVnf2);
1983 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
1984 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName123", reqDetails,
1985 workflowResourceIds);
1986 assertEquals("id123", id);
1987 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "111111", reqDetails,
1988 workflowResourceIds);
1989 assertEquals("generatedId123", id2);
1991 this.expectedException.expect(DuplicateNameException.class);
1992 this.expectedException.expectMessage(containsString(
1993 "generic-vnf with name (vnfName222), same parent and different customization id (222) already exists. The name must be unique."));
1994 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName222", reqDetails,
1995 workflowResourceIds);
1999 public void validateResourceIdInAAIVnfNotGloballyUniqueTest() throws Exception {
2000 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2001 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2002 workflowResourceIds.setServiceInstanceId("siId123");
2005 GenericVnfs genericVnfs = new GenericVnfs();
2006 GenericVnf vnf3 = new GenericVnf();
2007 vnf3.setVnfId("id123");
2008 vnf3.setVnfName("vnfName333");
2009 genericVnfs.getGenericVnf().add(vnf3);
2010 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName333")).thenReturn(Optional.empty());
2011 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName333")).thenReturn(genericVnfs);
2013 this.expectedException.expect(DuplicateNameException.class);
2014 this.expectedException.expectMessage(containsString(
2015 "generic-vnf with name (vnfName333) id (id123) and different parent relationship already exists. The name must be unique."));
2016 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName333", reqDetails,
2017 workflowResourceIds);
2021 public void validateResourceIdInAAINetworkTest() throws Exception {
2022 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2023 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2024 workflowResourceIds.setServiceInstanceId("siId123");
2027 L3Network network = new L3Network();
2028 network.setNetworkId("id123");
2029 network.setNetworkName("name123");
2030 network.setModelCustomizationId("1234567");
2031 workflowResourceIds.setServiceInstanceId("siId123");
2032 Optional<L3Network> opNetwork = Optional.of(network);
2033 L3Network network2 = new L3Network();
2034 network2.setNetworkId("id123");
2035 network2.setNetworkName("networkName222");
2036 network2.setModelCustomizationId("222");
2037 Optional<L3Network> opNetwork2 = Optional.of(network2);
2038 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2039 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "networkName222"))
2040 .thenReturn(opNetwork2);
2041 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2042 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "name123",
2043 reqDetails, workflowResourceIds);
2044 assertEquals("id123", id);
2045 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "111111",
2046 reqDetails, workflowResourceIds);
2047 assertEquals("generatedId123", id2);
2049 this.expectedException.expect(DuplicateNameException.class);
2050 this.expectedException.expectMessage(containsString(
2051 "l3Network with name (networkName222), same parent and different customization id (222) already exists. The name must be unique."));
2052 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName222", reqDetails,
2053 workflowResourceIds);
2057 public void validateNetworkResourceNameExistsInAAITest() throws Exception {
2058 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2059 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2060 workflowResourceIds.setServiceInstanceId("siId123");
2063 L3Network network = new L3Network();
2064 network.setNetworkId("id123");
2065 network.setNetworkName("name123");
2066 network.setModelCustomizationId("1234567");
2067 workflowResourceIds.setServiceInstanceId("siId123");
2069 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("networkName333", "111111"))
2070 .thenReturn(Optional.empty());
2071 when(bbSetupUtils.existsAAINetworksGloballyByName("networkName333")).thenReturn(true);
2073 this.expectedException.expect(DuplicateNameException.class);
2074 this.expectedException.expectMessage(containsString(
2075 "l3Network with name (networkName333) id (siId123) and different parent relationship already exists. The name must be unique."));
2076 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName333", reqDetails,
2077 workflowResourceIds);
2081 public void validateResourceIdInAAIVfModuleTest() throws Exception {
2082 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2083 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2084 workflowResourceIds.setServiceInstanceId("siId123");
2086 GenericVnf vnf = new GenericVnf();
2087 vnf.setVnfId("id123");
2088 vnf.setVnfName("vnfName123");
2089 vnf.setModelCustomizationId("222");
2092 VfModules vfModules = new VfModules();
2093 VfModule vfModule = new VfModule();
2094 vfModule.setVfModuleId("id123");
2095 vfModule.setVfModuleName("name123");
2096 vfModule.setModelCustomizationId("1234567");
2097 vfModules.getVfModule().add(vfModule);
2098 vnf.setVfModules(vfModules);
2099 workflowResourceIds.setVnfId("id123");
2100 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2101 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "name123",
2102 reqDetails, workflowResourceIds);
2103 assertEquals("id123", id);
2105 GenericVnf vnf1 = new GenericVnf();
2106 VfModules vfModules2 = new VfModules();
2107 VfModule vfModule2 = new VfModule();
2108 vfModule2.setVfModuleId("id123");
2109 vfModule2.setVfModuleName("vFModName222");
2110 vfModule2.setModelCustomizationId("222");
2111 vfModules2.getVfModule().add(vfModule2);
2112 vnf1.setVfModules(vfModules2);
2113 workflowResourceIds.setVnfId("id111");
2114 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2115 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "111111",
2116 reqDetails, workflowResourceIds);
2117 assertEquals("generatedId123", id2);
2119 this.expectedException.expect(DuplicateNameException.class);
2120 this.expectedException.expectMessage(containsString(
2121 "vfModule with name (vFModName222), same parent and different customization id (1234567) already exists. The name must be unique."));
2122 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName222", reqDetails,
2123 workflowResourceIds);
2127 public void validateResourceIdInAAIVfModuleNotGloballyUniqueTest() throws Exception {
2128 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2129 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2130 workflowResourceIds.setVnfId("id111");
2132 GenericVnf vnf1 = new GenericVnf();
2133 workflowResourceIds.setVnfId("id111");
2134 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2136 when(bbSetupUtils.existsAAIVfModuleGloballyByName("vFModName333")).thenReturn(true);
2137 this.expectedException.expect(DuplicateNameException.class);
2138 this.expectedException.expectMessage(
2139 containsString("vfModule with name vFModName333 already exists. The name must be unique."));
2140 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName333", reqDetails,
2141 workflowResourceIds);
2145 public void validateResourceIdInAAIVolumeGroupTest() throws Exception {
2146 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2147 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2148 workflowResourceIds.setServiceInstanceId("siId123");
2150 GenericVnf vnf = new GenericVnf();
2151 vnf.setVnfId("id123");
2152 vnf.setVnfName("vnfName123");
2153 vnf.setModelCustomizationId("1234567");
2155 GenericVnf vnf2 = new GenericVnf();
2156 vnf2.setVnfId("id123");
2157 vnf2.setVnfName("vnfName123");
2158 vnf2.setModelCustomizationId("222");
2161 VolumeGroup volumeGroup = new VolumeGroup();
2162 volumeGroup.setVolumeGroupId("id123");
2163 volumeGroup.setVolumeGroupName("name123");
2164 volumeGroup.setVfModuleModelCustomizationId("1234567");
2165 workflowResourceIds.setVnfId("id123");
2166 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2168 workflowResourceIds.setVnfId("id123");
2170 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2171 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(opVolumeGroup);
2172 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2173 reqDetails, workflowResourceIds);
2174 assertEquals("id123", id);
2176 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf2);
2177 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "111111"))
2178 .thenReturn(opVolumeGroup);
2180 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "111111")).thenReturn(Optional.empty());
2181 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "111111",
2182 reqDetails, workflowResourceIds);
2183 assertEquals("generatedId123", id2);
2187 public void validatesourceIdInAAIVolumeGroupNotGloballyUniqueTest() throws Exception {
2188 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2189 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2190 workflowResourceIds.setVnfId("id123");
2191 GenericVnf vnf = new GenericVnf();
2192 vnf.setVnfId("id123");
2193 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2194 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "testVolumeGroup")).thenReturn(Optional.empty());
2196 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("testVolumeGroup")).thenReturn(true);
2197 this.expectedException.expect(DuplicateNameException.class);
2198 this.expectedException.expectMessage(
2199 containsString("volumeGroup with name testVolumeGroup already exists. The name must be unique."));
2200 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "testVolumeGroup",
2201 reqDetails, workflowResourceIds);
2205 public void validateResourceIdInAAIConfigurationTest() throws Exception {
2206 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2207 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2208 workflowResourceIds.setServiceInstanceId("siId123");
2211 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2212 configuration.setConfigurationId("id123");
2213 configuration.setConfigurationName("name123");
2214 configuration.setModelCustomizationId("1234567");
2215 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2217 org.onap.aai.domain.yang.Configuration configuration2 = new org.onap.aai.domain.yang.Configuration();
2218 configuration2.setConfigurationId("id123");
2219 configuration2.setConfigurationName("name123");
2220 configuration2.setModelCustomizationId("222");
2221 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration2 = Optional.of(configuration2);
2223 workflowResourceIds.setVnfId("id123");
2225 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2226 .thenReturn(opConfiguration);
2227 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name123",
2228 reqDetails, workflowResourceIds);
2229 assertEquals("id123", id);
2231 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "111111"))
2232 .thenReturn(Optional.empty());
2233 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "111111",
2234 reqDetails, workflowResourceIds);
2235 assertEquals("generatedId123", id2);
2237 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name222"))
2238 .thenReturn(opConfiguration2);
2239 this.expectedException.expect(DuplicateNameException.class);
2240 this.expectedException.expectMessage(containsString(
2241 "configuration with name (name222), same parent and different customization id (id123) already exists. The name must be unique."));
2242 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name222", reqDetails,
2243 workflowResourceIds);
2247 public void validateResourceIdInAAIConfigurationNotGloballyUniqueTest() throws Exception {
2248 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2249 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2250 workflowResourceIds.setServiceInstanceId("siId123");
2252 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "testConfig"))
2253 .thenReturn(Optional.empty());
2254 when(bbSetupUtils.existsAAIConfigurationGloballyByName("testConfig")).thenReturn(true);
2255 this.expectedException.expect(DuplicateNameException.class);
2256 this.expectedException.expectMessage(
2257 containsString("configuration with name testConfig already exists. The name must be unique."));
2258 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "testConfig", reqDetails,
2259 workflowResourceIds);
2263 public void validateResourceIdInAAISITest() throws Exception {
2264 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2265 workflowResourceIds.setServiceInstanceId("siId123");
2266 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2267 reqDetails.getModelInfo().setModelVersionId("1234567");
2269 ServiceInstance si = new ServiceInstance();
2270 si.setServiceInstanceId("siId123");
2271 si.setModelVersionId("1234567");
2272 ServiceInstances serviceInstances = new ServiceInstances();
2273 serviceInstances.getServiceInstance().add(si);
2274 Optional<ServiceInstance> siOp = Optional.of(si);
2275 ServiceInstance si2 = new ServiceInstance();
2276 si2.setServiceInstanceId("siId222");
2277 si2.setModelVersionId("22222");
2278 si2.setServiceInstanceName("siName222");
2279 Optional<ServiceInstance> siOp2 = Optional.of(si2);
2280 ServiceInstances serviceInstances2 = new ServiceInstances();
2281 serviceInstances2.getServiceInstance().add(si2);
2283 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2284 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName222")).thenReturn(siOp2);
2285 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "111111"))
2286 .thenReturn(Optional.empty());
2288 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2289 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123",
2290 reqDetails, workflowResourceIds);
2291 assertEquals("siId123", id);
2292 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "111111",
2293 reqDetails, workflowResourceIds);
2294 assertEquals("generatedId123", id2);
2296 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName222")).thenReturn(serviceInstances2);
2297 this.expectedException.expect(DuplicateNameException.class);
2298 this.expectedException.expectMessage(containsString(
2299 "serviceInstance with name (siName222) and different version id (1234567) already exists. The name must be unique."));
2300 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName222", reqDetails,
2301 workflowResourceIds);
2305 public void validateResourceIdInAAIMultipleSITest() throws Exception {
2306 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2307 workflowResourceIds.setServiceInstanceId("siId123");
2308 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2309 reqDetails.getModelInfo().setModelVersionId("1234567");
2311 ServiceInstance si = new ServiceInstance();
2312 si.setServiceInstanceId("siId123");
2313 si.setModelVersionId("1234567");
2314 ServiceInstances serviceInstances = new ServiceInstances();
2315 serviceInstances.getServiceInstance().add(si);
2317 ServiceInstance si2 = new ServiceInstance();
2318 si2.setServiceInstanceId("siId222");
2319 si2.setModelVersionId("22222");
2320 si2.setServiceInstanceName("siName222");
2321 serviceInstances.getServiceInstance().add(si2);
2323 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2324 .thenReturn(Optional.empty());
2326 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2328 this.expectedException.expect(DuplicateNameException.class);
2329 this.expectedException.expectMessage(containsString(
2330 "serviceInstance with name (siName123) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2331 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2332 workflowResourceIds);
2336 public void validateResourceIdInAAISIExistsTest() throws Exception {
2337 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2338 workflowResourceIds.setServiceInstanceId("siId123");
2339 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2340 reqDetails.getModelInfo().setModelVersionId("1234567");
2342 ServiceInstance si = new ServiceInstance();
2343 si.setServiceInstanceId("siId123");
2344 si.setModelVersionId("1234567");
2345 ServiceInstances serviceInstances = new ServiceInstances();
2346 serviceInstances.getServiceInstance().add(si);
2348 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2349 .thenReturn(Optional.empty());
2351 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2353 Map<String, String> uriKeys = new HashMap<>();
2354 uriKeys.put("global-customer-id", "globalCustomerId");
2355 uriKeys.put("service-type", "serviceType");
2357 when(bbSetupUtils.getURIKeysFromServiceInstance("siId123")).thenReturn(uriKeys);
2359 this.expectedException.expect(DuplicateNameException.class);
2360 this.expectedException.expectMessage(containsString(
2361 "serviceInstance with name (siName123) and global-customer-id (globalCustomerId), service-type (serviceType), model-version-id (1234567) already exists. The name must be unique."));
2362 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2363 workflowResourceIds);
2367 public void validateServiceResourceIdInAAINoDupTest() throws Exception {
2368 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2369 reqDetails.getModelInfo().setModelVersionId("1234567");
2370 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123"))
2371 .thenReturn(Optional.empty());
2372 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(null);
2373 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2374 assertEquals("generatedId123", id);
2378 public void validateServiceResourceIdInAAISameModelVersionId() throws Exception {
2379 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2380 reqDetails.getModelInfo().setModelVersionId("1234567");
2382 ServiceInstance si = new ServiceInstance();
2383 si.setServiceInstanceId("siId123");
2384 si.setModelVersionId("1234567");
2385 Optional<ServiceInstance> siOp = Optional.of(si);
2387 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2388 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2389 assertEquals("siId123", id);
2393 public void validateServiceResourceIdInAAIDifferentModelVersionId() throws Exception {
2394 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2395 reqDetails.getModelInfo().setModelVersionId("1234567");
2397 ServiceInstance si = new ServiceInstance();
2398 si.setServiceInstanceId("siId123");
2399 si.setModelVersionId("9999999");
2400 ServiceInstances serviceInstances = new ServiceInstances();
2401 serviceInstances.getServiceInstance().add(si);
2402 Optional<ServiceInstance> siOp = Optional.of(si);
2404 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2406 this.expectedException.expect(DuplicateNameException.class);
2407 this.expectedException.expectMessage(containsString(
2408 "serviceInstance with name (siName123) and different version id (1234567) already exists. The name must be unique."));
2410 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2411 assertEquals("siId123", id);
2415 public void validateServiceResourceIdInAAIDuplicateNameTest() throws Exception {
2417 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2418 reqDetails.getModelInfo().setModelVersionId("1234567");
2420 ServiceInstance si = new ServiceInstance();
2421 si.setServiceInstanceId("siId123");
2422 si.setModelVersionId("1234567");
2424 ServiceInstances serviceInstances = new ServiceInstances();
2425 serviceInstances.getServiceInstance().add(si);
2427 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2428 .thenReturn(Optional.empty());
2429 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2431 this.expectedException.expect(DuplicateNameException.class);
2432 this.expectedException.expectMessage(containsString(
2433 "serviceInstance with name (siName) and global-customer-id (null), service-type (null), model-version-id (1234567) already exists. The name must be unique."));
2435 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2439 public void validateServiceResourceIdInAAIDuplicateNameMultipleTest() throws Exception {
2441 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2442 reqDetails.getModelInfo().setModelVersionId("1234567");
2444 ServiceInstance si = new ServiceInstance();
2445 si.setServiceInstanceId("siId123");
2446 si.setModelVersionId("1234567");
2448 ServiceInstance si2 = new ServiceInstance();
2449 si2.setServiceInstanceId("siId222");
2450 si2.setModelVersionId("22222");
2451 si2.setServiceInstanceName("siName222");
2453 ServiceInstances serviceInstances = new ServiceInstances();
2454 serviceInstances.getServiceInstance().add(si);
2455 serviceInstances.getServiceInstance().add(si2);
2457 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2458 .thenReturn(Optional.empty());
2459 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2461 this.expectedException.expect(DuplicateNameException.class);
2462 this.expectedException.expectMessage(containsString(
2463 "serviceInstance with name (siName) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2465 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2469 public void validateNetworkResourceIdInAAITest() throws Exception {
2470 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2471 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2472 workflowResourceIds.setServiceInstanceId("siId123");
2474 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2475 .thenReturn(Optional.empty());
2476 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(false);
2478 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2479 workflowResourceIds);
2480 assertEquals("generatedId123", id);
2484 public void validateNetworkResourceIdInAAISameModelCustIdTest() throws Exception {
2485 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2486 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2487 workflowResourceIds.setServiceInstanceId("siId123");
2489 L3Network network = new L3Network();
2490 network.setNetworkId("id123");
2491 network.setNetworkName("name123");
2492 network.setModelCustomizationId("1234567");
2493 Optional<L3Network> opNetwork = Optional.of(network);
2495 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2497 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2498 workflowResourceIds);
2499 assertEquals("id123", id);
2503 public void validateNetworkResourceIdInAAIDuplicateNameTest() throws Exception {
2504 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2505 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2506 workflowResourceIds.setServiceInstanceId("siId123");
2508 L3Network network = new L3Network();
2509 network.setNetworkId("id123");
2510 network.setNetworkName("name123");
2511 network.setModelCustomizationId("9999999");
2512 Optional<L3Network> opNetwork = Optional.of(network);
2514 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2516 this.expectedException.expect(DuplicateNameException.class);
2517 this.expectedException.expectMessage(containsString(
2518 "l3Network with name (name123), same parent and different customization id (9999999) already exists. The name must be unique."));
2520 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2524 public void validateNetworkResourceIdInAAINotGloballyUniqueTest() throws Exception {
2525 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2526 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2527 workflowResourceIds.setServiceInstanceId("siId123");
2529 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2530 .thenReturn(Optional.empty());
2531 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(true);
2533 this.expectedException.expect(DuplicateNameException.class);
2534 this.expectedException.expectMessage(containsString(
2535 "l3Network with name (name123) id (siId123) and different parent relationship already exists. The name must be unique."));
2537 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2541 public void validateVnfResourceIdInAAITest() throws Exception {
2542 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2543 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2544 workflowResourceIds.setServiceInstanceId("siId123");
2545 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2546 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2547 workflowResourceIds);
2548 assertEquals("generatedId123", id);
2552 public void validateVnfResourceIdInAAISameModelCustomizationIdTest() throws Exception {
2553 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2554 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2555 workflowResourceIds.setServiceInstanceId("siId123");
2557 GenericVnf vnf = new GenericVnf();
2558 vnf.setVnfId("id123");
2559 vnf.setVnfName("vnfName123");
2560 vnf.setModelCustomizationId("1234567");
2561 Optional<GenericVnf> opVnf = Optional.of(vnf);
2563 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2564 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2565 workflowResourceIds);
2566 assertEquals("id123", id);
2570 public void validateVnfResourceIdInAAIDiffModelCustomizationIdTest() throws Exception {
2571 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2572 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2573 workflowResourceIds.setServiceInstanceId("siId123");
2575 GenericVnf vnf = new GenericVnf();
2576 vnf.setVnfId("id123");
2577 vnf.setVnfName("vnfName123");
2578 vnf.setModelCustomizationId("9999999");
2579 Optional<GenericVnf> opVnf = Optional.of(vnf);
2581 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2583 this.expectedException.expect(DuplicateNameException.class);
2584 this.expectedException.expectMessage(containsString(
2585 "generic-vnf with name (vnfName123), same parent and different customization id (9999999) already exists. The name must be unique."));
2587 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2591 public void validateVnfResourceIdInAAINotGloballyUniqueTest() throws Exception {
2592 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2593 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2594 workflowResourceIds.setServiceInstanceId("siId123");
2597 GenericVnf vnf = new GenericVnf();
2598 vnf.setVnfId("id123");
2599 vnf.setVnfName("vnfName123");
2600 GenericVnfs genericVnfs = new GenericVnfs();
2601 genericVnfs.getGenericVnf().add(vnf);
2603 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2604 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName123")).thenReturn(genericVnfs);
2606 this.expectedException.expect(DuplicateNameException.class);
2607 this.expectedException.expectMessage(containsString(
2608 "generic-vnf with name (vnfName123) id (id123) and different parent relationship already exists. The name must be unique."));
2610 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2614 public void validateVfModuleResourceIdTest() throws Exception {
2615 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2616 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2617 workflowResourceIds.setVnfId("vnfId123");
2619 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2620 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(false);
2622 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2623 workflowResourceIds);
2624 assertEquals("generatedId123", id);
2628 public void validateVfModuleResourceIdSameModelCustIdTest() throws Exception {
2629 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2630 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2631 workflowResourceIds.setVnfId("vnfId123");
2633 VfModules vfModules = new VfModules();
2634 VfModule vfModule = new VfModule();
2635 vfModule.setVfModuleId("id123");
2636 vfModule.setVfModuleName("name123");
2637 vfModule.setModelCustomizationId("1234567");
2638 vfModules.getVfModule().add(vfModule);
2640 GenericVnf vnf = new GenericVnf();
2641 vnf.setVnfId("id123");
2642 vnf.setVnfName("vnfName123");
2643 vnf.setVfModules(vfModules);
2645 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2647 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2648 workflowResourceIds);
2649 assertEquals("id123", id);
2653 public void validateVfModuleResourceIdDifferentModelCustIdTest() throws Exception {
2654 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2655 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2656 workflowResourceIds.setVnfId("vnfId123");
2658 VfModules vfModules = new VfModules();
2659 VfModule vfModule = new VfModule();
2660 vfModule.setVfModuleId("id123");
2661 vfModule.setVfModuleName("name123");
2662 vfModule.setModelCustomizationId("9999999");
2663 vfModules.getVfModule().add(vfModule);
2665 GenericVnf vnf = new GenericVnf();
2666 vnf.setVnfId("id123");
2667 vnf.setVnfName("vnfName123");
2668 vnf.setVfModules(vfModules);
2670 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2672 this.expectedException.expect(DuplicateNameException.class);
2673 this.expectedException.expectMessage(containsString(
2674 "vfModule with name (name123), same parent and different customization id (1234567) already exists. The name must be unique."));
2676 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2681 public void validateVfModuleResourceIdNotGloballyUniqueTest() throws Exception {
2682 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2683 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2684 workflowResourceIds.setVnfId("vnfId123");
2686 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2687 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(true);
2689 this.expectedException.expect(DuplicateNameException.class);
2690 this.expectedException
2691 .expectMessage(containsString("vfModule with name name123 already exists. The name must be unique."));
2693 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2697 public void validateVolumeGroupResourceIdInAAITest() throws Exception {
2698 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2699 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2700 workflowResourceIds.setVnfId("vnfId123");
2702 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(Optional.empty());
2703 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(false);
2705 String id = workflowAction.validateVolumeGroupResourceIdInAAI("generatedId123", "name123", reqDetails,
2706 workflowResourceIds);
2707 assertEquals("generatedId123", id);
2711 public void validateVolumeGroupResourceIdInAAISameModelCustIdTest() throws Exception {
2712 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2713 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2714 workflowResourceIds.setServiceInstanceId("siId123");
2715 workflowResourceIds.setVnfId("vnfId123");
2717 VolumeGroup volumeGroup = new VolumeGroup();
2718 volumeGroup.setVolumeGroupId("id123");
2719 volumeGroup.setVolumeGroupName("name123");
2720 volumeGroup.setVfModuleModelCustomizationId("1234567");
2722 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2724 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2725 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2726 reqDetails, workflowResourceIds);
2728 assertEquals("id123", id);
2732 public void validateVolumeGroupResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2733 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2734 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2735 workflowResourceIds.setServiceInstanceId("siId123");
2736 workflowResourceIds.setVnfId("vnfId123");
2738 VolumeGroup volumeGroup = new VolumeGroup();
2739 volumeGroup.setVolumeGroupId("id123");
2740 volumeGroup.setVolumeGroupName("name123");
2741 volumeGroup.setVfModuleModelCustomizationId("9999999");
2743 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2745 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2747 this.expectedException.expect(DuplicateNameException.class);
2748 this.expectedException.expectMessage(
2749 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2751 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2752 workflowResourceIds);
2756 public void validateVolumeGroupResourceIdInAAINotGloballyUniqueTest() throws Exception {
2757 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2758 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2759 workflowResourceIds.setVnfId("vnfId123");
2761 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(Optional.empty());
2762 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(true);
2764 this.expectedException.expect(DuplicateNameException.class);
2765 this.expectedException.expectMessage(
2766 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2768 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2769 workflowResourceIds);
2773 public void validateConfigurationResourceIdInAAITest() throws Exception {
2774 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2775 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2776 workflowResourceIds.setServiceInstanceId("siId123");
2778 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2779 .thenReturn(Optional.empty());
2780 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2782 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2783 workflowResourceIds);
2784 assertEquals("generatedId123", id);
2788 public void validateConfigurationResourceIdInAAISameModelCustIdTest() throws Exception {
2789 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2790 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2791 workflowResourceIds.setServiceInstanceId("siId123");
2793 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2794 configuration.setConfigurationId("id123");
2795 configuration.setConfigurationName("name123");
2796 configuration.setModelCustomizationId("1234567");
2797 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2799 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2800 .thenReturn(opConfiguration);
2801 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2803 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2804 workflowResourceIds);
2805 assertEquals("id123", id);
2809 public void validateConfigurationResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2810 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2811 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2812 workflowResourceIds.setServiceInstanceId("siId123");
2814 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2815 configuration.setConfigurationId("id123");
2816 configuration.setConfigurationName("name123");
2817 configuration.setModelCustomizationId("9999999");
2818 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2820 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2821 .thenReturn(opConfiguration);
2822 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2824 this.expectedException.expect(DuplicateNameException.class);
2825 this.expectedException.expectMessage(containsString(
2826 "configuration with name (name123), same parent and different customization id (id123) already exists. The name must be unique."));
2828 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2829 workflowResourceIds);
2833 public void validateConfigurationResourceIdInAAINotGloballyUniqueTest() throws Exception {
2834 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2835 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2836 workflowResourceIds.setServiceInstanceId("siId123");
2838 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2839 .thenReturn(Optional.empty());
2840 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(true);
2842 this.expectedException.expect(DuplicateNameException.class);
2843 this.expectedException.expectMessage(
2844 containsString("configuration with name name123 already exists. The name must be unique."));
2846 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2847 workflowResourceIds);
2851 public void handleRuntimeExceptionTest() {
2852 execution.setVariable("BPMN_javaExpMsg", "test runtime error message");
2853 execution.setVariable("testProcessKey", "testProcessKeyValue");
2855 workflowAction.handleRuntimeException(execution);
2856 } catch (BpmnError wfe) {
2857 assertEquals("MSOWorkflowException", wfe.getErrorCode());
2863 public void traverseCatalogDbServiceMultipleNetworkTest() throws IOException, VrfBondingServiceException {
2864 execution.setVariable("testProcessKey", "testProcessKeyValue");
2865 Service service = new Service();
2866 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
2867 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
2868 networkCust.setModelCustomizationUUID("123");
2869 networkCustomizations.add(networkCust);
2870 service.setNetworkCustomizations(networkCustomizations);
2871 NetworkCollectionResourceCustomization collectionResourceCustomization =
2872 new NetworkCollectionResourceCustomization();
2873 collectionResourceCustomization.setModelCustomizationUUID("123");
2874 CollectionResource collectionResource = new CollectionResource();
2875 collectionResource.setToscaNodeType("NetworkCollection");
2876 InstanceGroup instanceGroup = new InstanceGroup();
2877 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
2878 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
2879 new CollectionResourceInstanceGroupCustomization();
2880 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
2881 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
2882 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
2883 collectionResource.setInstanceGroup(instanceGroup);
2884 collectionResourceCustomization.setCollectionResource(collectionResource);;
2885 service.setModelUUID("abc");
2886 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2887 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2888 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
2889 doReturn(collectionResourceCustomization).when(catalogDbClient)
2890 .getNetworkCollectionResourceCustomizationByID("123");
2891 String bpmnRequest = new String(Files
2892 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
2893 ObjectMapper mapper = new ObjectMapper();
2894 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
2895 List<Resource> resourceCounter = new ArrayList<>();
2896 thrown.expect(BpmnError.class);
2897 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
2898 workflowAction.traverseCatalogDbService(execution, sIRequest, resourceCounter, aaiResourceIds);
2902 public void sortVfModulesByBaseFirstTest() {
2903 List<Resource> resources = new ArrayList<>();
2904 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2905 resource1.setBaseVfModule(false);
2906 resources.add(resource1);
2907 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2908 resource2.setBaseVfModule(false);
2909 resources.add(resource2);
2910 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
2911 resource3.setBaseVfModule(true);
2912 resources.add(resource3);
2913 List<Resource> result = workflowAction.sortVfModulesByBaseFirst(resources);
2914 assertEquals("333", result.get(0).getResourceId());
2915 assertEquals("222", result.get(1).getResourceId());
2916 assertEquals("111", result.get(2).getResourceId());
2920 public void sortVfModulesByBaseLastTest() {
2921 List<Resource> resources = new ArrayList<>();
2922 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2923 resource1.setBaseVfModule(true);
2924 resources.add(resource1);
2925 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2926 resource2.setBaseVfModule(false);
2927 resources.add(resource2);
2928 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
2929 resource3.setBaseVfModule(false);
2930 resources.add(resource3);
2931 List<Resource> result = workflowAction.sortVfModulesByBaseLast(resources);
2932 assertEquals("333", result.get(0).getResourceId());
2933 assertEquals("222", result.get(1).getResourceId());
2934 assertEquals("111", result.get(2).getResourceId());
2938 public void findCatalogNetworkCollectionTest() {
2939 Service service = new Service();
2940 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
2941 networkCustomization.setModelCustomizationUUID("123");
2942 service.getCollectionResourceCustomizations().add(networkCustomization);
2943 doReturn(networkCustomization).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
2944 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
2945 assertNotNull(customization);
2949 public void findCatalogNetworkCollectionEmptyTest() {
2950 Service service = new Service();
2951 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
2952 networkCustomization.setModelCustomizationUUID("123");
2953 service.getCollectionResourceCustomizations().add(networkCustomization);
2954 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
2955 assertNull(customization);
2959 public void findCatalogNetworkCollectionMoreThanOneTest() {
2960 Service service = new Service();
2961 NetworkCollectionResourceCustomization networkCustomization1 = new NetworkCollectionResourceCustomization();
2962 networkCustomization1.setModelCustomizationUUID("123");
2963 NetworkCollectionResourceCustomization networkCustomization2 = new NetworkCollectionResourceCustomization();
2964 networkCustomization2.setModelCustomizationUUID("321");
2965 service.getCollectionResourceCustomizations().add(networkCustomization1);
2966 service.getCollectionResourceCustomizations().add(networkCustomization2);
2967 doReturn(networkCustomization1).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
2968 doReturn(networkCustomization2).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("321");
2969 workflowAction.findCatalogNetworkCollection(execution, service);
2970 assertEquals("Found multiple Network Collections in the Service model, only one per Service is supported.",
2971 execution.getVariable("WorkflowActionErrorMessage"));
2975 public void verifyLackOfNullPointerExceptionForNullResource() {
2976 ExecuteBuildingBlock result = null;
2978 result = workflowAction.buildExecuteBuildingBlock(new OrchestrationFlow(), null, null, null, null, null,
2979 false, null, null, null, false, null, null, true);
2980 } catch (NullPointerException e) {
2981 fail("NullPointerException should not be thrown when 'resource' is null");
2983 assertNotNull(result);
2987 public void traverseAAIServiceTest() {
2988 List<Resource> resourceCounter = new ArrayList<>();
2989 String resourceId = "si0";
2990 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
2992 ServiceInstance serviceInstanceAAI = new ServiceInstance();
2993 serviceInstanceAAI.setServiceInstanceId(resourceId);
2995 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstance = setServiceInstance();
3003 Configuration config = new Configuration();
3004 config.setConfigurationId("testConfigurationId2");
3005 serviceInstance.getConfigurations().add(config);
3007 Relationship relationship1 = new Relationship();
3008 relationship1.setRelatedTo("vnfc");
3009 RelationshipList relationshipList1 = new RelationshipList();
3010 relationshipList1.getRelationship().add(relationship1);
3012 Relationship relationship2 = new Relationship();
3013 relationship2.setRelatedTo("vpn-binding");
3014 RelationshipList relationshipList2 = new RelationshipList();
3015 relationshipList2.getRelationship().add(relationship2);
3017 org.onap.aai.domain.yang.Configuration aaiConfiguration1 = new org.onap.aai.domain.yang.Configuration();
3018 aaiConfiguration1.setConfigurationId("testConfigurationId");
3019 aaiConfiguration1.setRelationshipList(relationshipList1);
3021 org.onap.aai.domain.yang.Configuration aaiConfiguration2 = new org.onap.aai.domain.yang.Configuration();
3022 aaiConfiguration2.setConfigurationId("testConfigurationId2");
3023 aaiConfiguration2.setRelationshipList(relationshipList1);
3026 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById(resourceId);
3027 doReturn(serviceInstance).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
3028 doReturn(Optional.of(aaiConfiguration1)).when(aaiConfigurationResources)
3029 .getConfiguration("testConfigurationId");
3030 doReturn(Optional.of(aaiConfiguration2)).when(aaiConfigurationResources)
3031 .getConfiguration("testConfigurationId2");
3032 workflowAction.traverseAAIService(execution, resourceCounter, resourceId, aaiResourceIds);
3033 assertEquals(8, resourceCounter.size());
3034 assertTrue(resourceCounter.get(2).isBaseVfModule());
3035 assertThat(aaiResourceIds, sameBeanAs(getExpectedResourceIds()));
3036 } catch (Exception e) {
3037 fail("Unexpected exception was thrown.");
3041 private List<Pair<WorkflowType, String>> getExpectedResourceIds() {
3042 List<Pair<WorkflowType, String>> resourceIds = new ArrayList<>();
3043 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VNF, "testVnfId1"));
3044 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VFMODULE, "testVfModuleId1"));
3045 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VOLUMEGROUP, "testVolumeGroupId1"));
3046 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORK, "testNetworkId1"));
3047 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORKCOLLECTION, "testId"));
3048 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId"));
3049 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId2"));
3053 private List<OrchestrationFlow> createFlowList(String... flowNames) {
3054 List<OrchestrationFlow> result = new ArrayList<>();
3055 for (String flowName : flowNames) {
3056 OrchestrationFlow orchFlow = new OrchestrationFlow();
3057 orchFlow.setFlowName(flowName);
3058 result.add(orchFlow);
3063 private void assertEqualsBulkFlowName(List<ExecuteBuildingBlock> ebbs, String... flowNames) {
3064 for (int i = 0; i < ebbs.size(); i++) {
3065 assertEquals(ebbs.get(i).getBuildingBlock().getBpmnFlowName(), flowNames[i]);