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.isA;
40 import static org.mockito.Mockito.doReturn;
41 import static org.mockito.Mockito.when;
42 import com.fasterxml.jackson.databind.ObjectMapper;
43 import java.io.IOException;
44 import java.net.MalformedURLException;
45 import java.nio.file.Files;
46 import java.nio.file.Paths;
47 import java.util.ArrayList;
48 import java.util.Arrays;
49 import java.util.HashMap;
50 import java.util.List;
52 import java.util.Optional;
53 import java.util.UUID;
54 import org.camunda.bpm.engine.delegate.BpmnError;
55 import org.camunda.bpm.engine.delegate.DelegateExecution;
56 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
57 import org.javatuples.Pair;
58 import org.junit.Before;
59 import org.junit.Ignore;
60 import org.junit.Rule;
61 import org.junit.Test;
62 import org.junit.rules.ExpectedException;
63 import org.mockito.InjectMocks;
64 import org.mockito.Mock;
65 import org.mockito.Spy;
66 import org.onap.aai.domain.yang.GenericVnf;
67 import org.onap.aai.domain.yang.GenericVnfs;
68 import org.onap.aai.domain.yang.L3Network;
69 import org.onap.aai.domain.yang.Relationship;
70 import org.onap.aai.domain.yang.RelationshipList;
71 import org.onap.aai.domain.yang.ServiceInstance;
72 import org.onap.aai.domain.yang.ServiceInstances;
73 import org.onap.aai.domain.yang.VfModule;
74 import org.onap.aai.domain.yang.VfModules;
75 import org.onap.aai.domain.yang.VolumeGroup;
76 import org.onap.so.bpmn.BaseTaskTest;
77 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
78 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
79 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
80 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
81 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
82 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.DuplicateNameException;
83 import org.onap.so.client.aai.AAIObjectType;
84 import org.onap.so.client.aai.entities.AAIResultWrapper;
85 import org.onap.so.client.aai.entities.Relationships;
86 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
87 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
88 import org.onap.so.client.orchestration.AAIEntityNotFoundException;
89 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
90 import org.onap.so.db.catalog.beans.CollectionResource;
91 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
92 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
93 import org.onap.so.db.catalog.beans.ConfigurationResource;
94 import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
95 import org.onap.so.db.catalog.beans.CvnfcCustomization;
96 import org.onap.so.db.catalog.beans.HeatEnvironment;
97 import org.onap.so.db.catalog.beans.HeatTemplate;
98 import org.onap.so.db.catalog.beans.InstanceGroup;
99 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
100 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
101 import org.onap.so.db.catalog.beans.Service;
102 import org.onap.so.db.catalog.beans.VfModuleCustomization;
103 import org.onap.so.db.catalog.beans.macro.NorthBoundRequest;
104 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
105 import org.onap.so.serviceinstancebeans.ModelInfo;
106 import org.onap.so.serviceinstancebeans.RequestDetails;
107 import org.onap.so.serviceinstancebeans.RequestParameters;
108 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
109 import org.onap.so.serviceinstancebeans.SubscriberInfo;
110 import org.springframework.core.env.Environment;
112 public class WorkflowActionTest extends BaseTaskTest {
115 protected Environment environment;
117 protected WorkflowAction workflowAction;
118 private DelegateExecution execution;
122 protected WorkflowAction SPY_workflowAction;
125 public ExpectedException thrown = ExpectedException.none();
127 private String RESOURCE_PATH = "src/test/resources/__files/";
129 private List<OrchestrationFlow> replaceVfModuleOrchFlows =
130 createFlowList("DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
131 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
132 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
133 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
134 private List<OrchestrationFlow> replaceRetainAssignmentsVfModuleOrchFlows = createFlowList("DeactivateVfModuleBB",
135 "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "UnassignVolumeGroupBB",
136 "AssignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
137 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
140 public void before() throws Exception {
141 execution = new DelegateExecutionFake();
142 org.onap.aai.domain.yang.ServiceInstance servInstance = new org.onap.aai.domain.yang.ServiceInstance();
143 servInstance.setServiceInstanceId("TEST");
144 when(bbSetupUtils.getAAIServiceInstanceByName(anyString(), anyObject())).thenReturn(servInstance);
145 workflowAction.setBbInputSetupUtils(bbSetupUtils);
146 workflowAction.setBbInputSetup(bbInputSetup);
153 public void selectExecutionListALaCarteNetworkCreateTest() throws Exception {
154 String gAction = "createInstance";
155 String resource = "Network";
156 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
157 execution.setVariable("requestAction", gAction);
159 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
160 execution.setVariable("bpmnRequest", bpmnRequest);
161 execution.setVariable("aLaCarte", true);
162 execution.setVariable("apiVersion", "7");
163 execution.setVariable("requestUri", "v6/networks/123");
165 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
166 List<OrchestrationFlow> orchFlows =
167 createFlowList("AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
168 northBoundRequest.setOrchestrationFlowList(orchFlows);
170 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
171 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
172 workflowAction.selectExecutionList(execution);
173 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
174 assertEqualsBulkFlowName(ebbs, "AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
178 public void selectExecutionListALaCarteNetworkDeleteTest() throws Exception {
179 String gAction = "deleteInstance";
180 String resource = "Network";
181 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
182 execution.setVariable("requestAction", gAction);
184 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
185 execution.setVariable("bpmnRequest", bpmnRequest);
186 execution.setVariable("aLaCarte", true);
187 execution.setVariable("apiVersion", "7");
188 execution.setVariable("requestUri", "v6/networks/123");
190 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
191 List<OrchestrationFlow> orchFlows =
192 createFlowList("DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
193 northBoundRequest.setOrchestrationFlowList(orchFlows);
195 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
196 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
197 workflowAction.selectExecutionList(execution);
198 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
199 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
203 public void selectExecutionListALaCarteServiceCreateTest() throws Exception {
204 String gAction = "createInstance";
205 String resource = "Service";
206 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
207 execution.setVariable("requestAction", gAction);
209 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
210 execution.setVariable("bpmnRequest", bpmnRequest);
211 execution.setVariable("aLaCarte", true);
212 execution.setVariable("apiVersion", "7");
213 execution.setVariable("requestUri", "v6/serviceInstances/123");
216 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
217 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "ActivateServiceInstanceBB");
218 northBoundRequest.setOrchestrationFlowList(orchFlows);
220 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
221 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
222 workflowAction.selectExecutionList(execution);
223 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
224 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
228 * SERVICE MACRO TESTS
231 public void selectExecutionListServiceMacroAssignTest() throws Exception {
232 String gAction = "assignInstance";
233 String resource = "Service";
234 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
235 execution.setVariable("requestAction", gAction);
237 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
238 execution.setVariable("bpmnRequest", bpmnRequest);
239 execution.setVariable("aLaCarte", false);
240 execution.setVariable("apiVersion", "7");
241 execution.setVariable("requestUri", "v6/serviceInstances/123");
244 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
245 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
246 "AssignVolumeGroupBB", "AssignVfModuleBB");
247 northBoundRequest.setOrchestrationFlowList(orchFlows);
249 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
250 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
251 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
252 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
253 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
254 HeatTemplate volumeHeatTemplate = new HeatTemplate();
255 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
256 vfModuleCustomization.setVfModule(vfModule);
258 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
259 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
260 HeatEnvironment heatEnvironment = new HeatEnvironment();
261 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
262 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
263 HeatTemplate moduleHeatTemplate = new HeatTemplate();
264 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
265 vfModuleCustomization2.setVfModule(vfModule2);
267 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
268 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
270 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
271 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
272 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
273 .thenReturn(vfModuleCustomization);
274 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
275 .thenReturn(vfModuleCustomization2);
276 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
277 .thenReturn(vfModuleCustomization3);
278 workflowAction.selectExecutionList(execution);
279 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
280 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
281 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
285 public void selectExecutionListServiceMacroAssignNoCloudTest() throws Exception {
286 String gAction = "assignInstance";
287 String resource = "Service";
288 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
289 execution.setVariable("requestAction", gAction);
290 String bpmnRequest = new String(
291 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssignNoCloud.json")));
292 execution.setVariable("bpmnRequest", bpmnRequest);
293 execution.setVariable("aLaCarte", false);
294 execution.setVariable("apiVersion", "7");
295 execution.setVariable("requestUri", "v6/serviceInstances/123");
298 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
299 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
300 "AssignVolumeGroupBB", "AssignVfModuleBB");
301 northBoundRequest.setOrchestrationFlowList(orchFlows);
303 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
304 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
305 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
306 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
307 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
308 HeatTemplate volumeHeatTemplate = new HeatTemplate();
309 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
310 vfModuleCustomization.setVfModule(vfModule);
312 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
313 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
314 HeatEnvironment heatEnvironment = new HeatEnvironment();
315 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
316 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
317 HeatTemplate moduleHeatTemplate = new HeatTemplate();
318 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
319 vfModuleCustomization2.setVfModule(vfModule2);
321 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
322 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
324 when(environment.getProperty("org.onap.so.cloud-owner")).thenReturn("att-aic");
325 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
326 false, "att-aic")).thenReturn(northBoundRequest);
327 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
328 .thenReturn(vfModuleCustomization);
329 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
330 .thenReturn(vfModuleCustomization2);
331 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
332 .thenReturn(vfModuleCustomization3);
333 workflowAction.selectExecutionList(execution);
334 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
335 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
336 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
340 public void selectExecutionListServiceMacroActivateTest() throws Exception {
341 String gAction = "activateInstance";
342 String resource = "Service";
343 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
344 execution.setVariable("requestAction", gAction);
345 String bpmnRequest = new String(Files
346 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
347 execution.setVariable("bpmnRequest", bpmnRequest);
348 execution.setVariable("aLaCarte", false);
349 execution.setVariable("apiVersion", "7");
350 execution.setVariable("requestUri", "v6/serviceInstances/si0");
353 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
354 List<OrchestrationFlow> orchFlows =
355 createFlowList("CreateNetworkBB", "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
356 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "ActivateServiceInstanceBB");
357 northBoundRequest.setOrchestrationFlowList(orchFlows);
359 ServiceInstance serviceInstanceAAI = new ServiceInstance();
360 serviceInstanceAAI.setServiceInstanceId("si0");
361 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
362 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
363 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
364 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
365 vnf.setVnfId("vnf0");
368 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
369 vnf.getVfModules().add(vfModule);
370 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
371 vnf.getVfModules().add(vfModule2);
373 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
374 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
375 volumeGroup.setVolumeGroupId("volumeGroup0");
376 vnf.getVolumeGroups().add(volumeGroup);
378 serviceInstanceMSO.getVnfs().add(vnf);
380 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("si0");
381 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
382 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
383 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
384 workflowAction.selectExecutionList(execution);
385 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
386 assertEqualsBulkFlowName(ebbs, "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
387 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
388 "ActivateServiceInstanceBB");
389 assertEquals("volumeGroup0", ebbs.get(0).getWorkflowResourceIds().getVolumeGroupId());
390 assertEquals("volumeGroup0", ebbs.get(1).getWorkflowResourceIds().getVolumeGroupId());
391 assertEquals("testVfModuleId1", ebbs.get(2).getWorkflowResourceIds().getVfModuleId());
392 assertEquals("testVfModuleId2", ebbs.get(3).getWorkflowResourceIds().getVfModuleId());
393 assertEquals("testVfModuleId1", ebbs.get(4).getWorkflowResourceIds().getVfModuleId());
394 assertEquals("testVfModuleId2", ebbs.get(5).getWorkflowResourceIds().getVfModuleId());
395 assertEquals("vnf0", ebbs.get(6).getWorkflowResourceIds().getVnfId());
396 assertEquals("si0", ebbs.get(7).getWorkflowResourceIds().getServiceInstanceId());
401 public void selectExecutionListServiceMacroDeactivateTest() throws Exception {
402 String gAction = "deactivateInstance";
403 String resource = "Service";
404 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
405 execution.setVariable("requestAction", gAction);
406 String bpmnRequest = new String(Files
407 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
408 execution.setVariable("bpmnRequest", bpmnRequest);
409 execution.setVariable("aLaCarte", false);
410 execution.setVariable("apiVersion", "7");
411 execution.setVariable("requestUri", "v6/serviceInstances/123");
414 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
415 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateServiceInstanceBB");
416 northBoundRequest.setOrchestrationFlowList(orchFlows);
418 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
419 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
420 workflowAction.selectExecutionList(execution);
421 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
422 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(), "DeactivateServiceInstanceBB");
426 public void selectExecutionListServiceMacroEmptyServiceTest() throws Exception {
427 String gAction = "createInstance";
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 northBoundRequest.setIsToplevelflow(true);
441 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
442 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
443 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
444 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
445 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
446 northBoundRequest.setOrchestrationFlowList(orchFlows);
448 Service service = new Service();
449 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
450 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
451 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
452 workflowAction.selectExecutionList(execution);
453 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
454 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
458 public void selectExecutionListServiceMacroCreateJustNetworkTest() throws Exception {
459 String gAction = "createInstance";
460 String resource = "Service";
461 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
462 execution.setVariable("requestAction", gAction);
463 String bpmnRequest = new String(Files
464 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
465 execution.setVariable("bpmnRequest", bpmnRequest);
466 execution.setVariable("aLaCarte", false);
467 execution.setVariable("apiVersion", "7");
468 execution.setVariable("requestUri", "v6/serviceInstances/123");
471 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
472 northBoundRequest.setIsToplevelflow(true);
473 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
474 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
475 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
476 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
477 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
478 northBoundRequest.setOrchestrationFlowList(orchFlows);
480 Service service = new Service();
481 NetworkResourceCustomization networkCustomization = new NetworkResourceCustomization();
482 networkCustomization.setModelCustomizationUUID("1234");
483 service.getNetworkCustomizations().add(networkCustomization);
484 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
485 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
486 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
487 workflowAction.selectExecutionList(execution);
488 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
489 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignNetworkBB", "CreateNetworkBB",
490 "ActivateNetworkBB", "ActivateServiceInstanceBB");
494 public void selectExecutionListServiceMacroCreateWithNetworkCollectionTest() throws Exception {
495 String gAction = "createInstance";
496 String resource = "Service";
497 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
498 execution.setVariable("requestAction", gAction);
499 String bpmnRequest = new String(Files
500 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
501 execution.setVariable("bpmnRequest", bpmnRequest);
502 execution.setVariable("aLaCarte", false);
503 execution.setVariable("apiVersion", "7");
504 execution.setVariable("requestUri", "v6/serviceInstances/123");
507 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
508 northBoundRequest.setIsToplevelflow(true);
509 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
510 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
511 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
512 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
513 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
514 northBoundRequest.setOrchestrationFlowList(orchFlows);
516 Service service = new Service();
517 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
518 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
519 networkCust.setModelCustomizationUUID("123");
520 networkCustomizations.add(networkCust);
521 service.setNetworkCustomizations(networkCustomizations);
522 NetworkCollectionResourceCustomization collectionResourceCustomization =
523 new NetworkCollectionResourceCustomization();
524 collectionResourceCustomization.setModelCustomizationUUID("123");
526 CollectionResource collectionResource = new CollectionResource();
527 collectionResource.setToscaNodeType("NetworkCollection");
528 InstanceGroup instanceGroup = new InstanceGroup();
529 instanceGroup.setToscaNodeType("NetworkCollectionResource");
530 instanceGroup.setCollectionNetworkResourceCustomizations(new ArrayList<>());
531 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
532 new CollectionNetworkResourceCustomization();
533 collectionNetworkResourceCust.setModelCustomizationUUID("123");
534 collectionNetworkResourceCust.setNetworkResourceCustomization(collectionResourceCustomization);
535 instanceGroup.getCollectionNetworkResourceCustomizations().add(collectionNetworkResourceCust);
536 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
537 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
538 new CollectionResourceInstanceGroupCustomization();
539 collectionInstanceGroupCustomization.setModelCustomizationUUID("123");
540 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
541 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
542 collectionInstanceGroupCustomization.setInstanceGroup(instanceGroup);
543 collectionInstanceGroupCustomization.setCollectionResourceCust(collectionResourceCustomization);
544 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
545 collectionResource.setInstanceGroup(instanceGroup);
546 collectionResourceCustomization.setCollectionResource(collectionResource);;
547 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
548 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
549 doReturn(collectionResourceCustomization).when(catalogDbClient)
550 .getNetworkCollectionResourceCustomizationByID("123");
551 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
552 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
553 workflowAction.selectExecutionList(execution);
554 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
555 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "CreateNetworkCollectionBB", "AssignNetworkBB",
556 "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
557 "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB",
558 "ActivateServiceInstanceBB");
559 assertEquals("Network id not empty", !ebbs.get(2).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
560 assertEquals("Network id not empty", !ebbs.get(3).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
561 assertEquals("Network id not empty", !ebbs.get(4).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
562 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
563 ebbs.get(2).getWorkflowResourceIds().getNetworkId() == ebbs.get(3).getWorkflowResourceIds()
565 && ebbs.get(3).getWorkflowResourceIds().getNetworkId() == ebbs.get(4).getWorkflowResourceIds()
568 assertEquals("Network id not empty", !ebbs.get(5).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
569 assertEquals("Network id not empty", !ebbs.get(6).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
570 assertEquals("Network id not empty", !ebbs.get(7).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
571 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
572 ebbs.get(5).getWorkflowResourceIds().getNetworkId() == ebbs.get(6).getWorkflowResourceIds()
574 && ebbs.get(6).getWorkflowResourceIds().getNetworkId() == ebbs.get(7).getWorkflowResourceIds()
577 assertEquals("Network id not empty", !ebbs.get(8).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
578 assertEquals("Network id not empty", !ebbs.get(9).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
579 assertEquals("Network id not empty", !ebbs.get(10).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
580 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
581 ebbs.get(8).getWorkflowResourceIds().getNetworkId() == ebbs.get(9).getWorkflowResourceIds()
583 && ebbs.get(9).getWorkflowResourceIds().getNetworkId() == ebbs.get(10).getWorkflowResourceIds()
589 public void selectExecutionListServiceMacroCreateWithUserParams() throws Exception {
590 String gAction = "createInstance";
591 String resource = "Service";
592 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
593 execution.setVariable("requestAction", gAction);
595 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
596 execution.setVariable("bpmnRequest", bpmnRequest);
597 execution.setVariable("aLaCarte", false);
598 execution.setVariable("apiVersion", "7");
599 execution.setVariable("requestUri", "v6/serviceInstances/123");
602 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
603 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
604 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
605 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
606 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
607 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
608 northBoundRequest.setOrchestrationFlowList(orchFlows);
610 Service service = new Service();
611 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
613 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
614 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
615 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
616 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
617 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
618 HeatTemplate volumeHeatTemplate = new HeatTemplate();
619 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
620 vfModuleCustomization.setVfModule(vfModule);
622 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
623 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
624 HeatEnvironment heatEnvironment = new HeatEnvironment();
625 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
626 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
627 HeatTemplate moduleHeatTemplate = new HeatTemplate();
628 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
629 vfModuleCustomization2.setVfModule(vfModule2);
631 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
632 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
634 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
635 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
636 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
637 .thenReturn(vfModuleCustomization);
638 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
639 .thenReturn(vfModuleCustomization2);
640 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
641 .thenReturn(vfModuleCustomization3);
642 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
643 workflowAction.selectExecutionList(execution);
644 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
645 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
646 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB", "CreateVolumeGroupBB",
647 "ActivateVolumeGroupBB", "CreateVfModuleBB", "CreateVfModuleBB", "CreateVfModuleBB",
648 "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
649 "ActivateServiceInstanceBB");
650 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
651 int randomUUIDLength = UUID.randomUUID().toString().length();
652 assertEquals(randomUUIDLength, ebbs.get(1).getWorkflowResourceIds().getVnfId().length());
653 assertEquals(randomUUIDLength, ebbs.get(2).getWorkflowResourceIds().getVolumeGroupId().length());
654 assertEquals(randomUUIDLength, ebbs.get(3).getWorkflowResourceIds().getVfModuleId().length());
655 assertEquals(randomUUIDLength, ebbs.get(4).getWorkflowResourceIds().getVfModuleId().length());
656 assertEquals(randomUUIDLength, ebbs.get(5).getWorkflowResourceIds().getVfModuleId().length());
657 assertEquals(randomUUIDLength, ebbs.get(6).getWorkflowResourceIds().getVolumeGroupId().length());
658 assertEquals(randomUUIDLength, ebbs.get(7).getWorkflowResourceIds().getVolumeGroupId().length());
659 assertEquals(randomUUIDLength, ebbs.get(8).getWorkflowResourceIds().getVfModuleId().length());
660 assertEquals(randomUUIDLength, ebbs.get(9).getWorkflowResourceIds().getVfModuleId().length());
661 assertEquals(randomUUIDLength, ebbs.get(10).getWorkflowResourceIds().getVfModuleId().length());
662 assertEquals(randomUUIDLength, ebbs.get(11).getWorkflowResourceIds().getVfModuleId().length());
663 assertEquals(randomUUIDLength, ebbs.get(12).getWorkflowResourceIds().getVfModuleId().length());
664 assertEquals(randomUUIDLength, ebbs.get(13).getWorkflowResourceIds().getVfModuleId().length());
665 assertEquals(randomUUIDLength, ebbs.get(14).getWorkflowResourceIds().getVnfId().length());
666 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
667 assertEquals(true, execution.getVariable("homing"));
671 public void selectExecutionListServiceMacroDeleteTest() throws Exception {
672 String gAction = "deleteInstance";
673 String resource = "Service";
674 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
675 execution.setVariable("requestAction", gAction);
676 String bpmnRequest = new String(Files
677 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
678 execution.setVariable("bpmnRequest", bpmnRequest);
679 execution.setVariable("aLaCarte", false);
680 execution.setVariable("apiVersion", "7");
681 execution.setVariable("requestUri", "v6/serviceInstances/123");
684 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
685 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
686 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
687 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
688 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
689 northBoundRequest.setOrchestrationFlowList(orchFlows);
691 ServiceInstance serviceInstanceAAI = new ServiceInstance();
692 serviceInstanceAAI.setServiceInstanceId("aaisi123");
693 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
694 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
695 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
696 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
697 vnf.setVnfId("vnfId123");
699 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
700 vnf.getVfModules().add(vfModule);
701 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
702 vnf.getVfModules().add(vfModule2);
704 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
705 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
706 volumeGroup.setVolumeGroupId("vg123");
707 vnf.getVolumeGroups().add(volumeGroup);
709 serviceInstanceMSO.getVnfs().add(vnf);
711 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
712 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
713 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
714 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
715 workflowAction.selectExecutionList(execution);
716 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
717 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
718 "DeleteVfModuleBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB",
719 "DeactivateServiceInstanceBB", "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
720 "UnassignVnfBB", "UnassignServiceInstanceBB");
724 public void selectExecutionListServiceMacroUnassignTest() throws Exception {
725 String gAction = "unassignInstance";
726 String resource = "Service";
727 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
728 execution.setVariable("requestAction", gAction);
729 String bpmnRequest = new String(Files
730 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
731 execution.setVariable("bpmnRequest", bpmnRequest);
732 execution.setVariable("aLaCarte", false);
733 execution.setVariable("apiVersion", "7");
734 execution.setVariable("requestUri", "v6/serviceInstances/123");
737 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
738 List<OrchestrationFlow> orchFlows = createFlowList("UnassignVfModuleBB", "UnassignVolumeGroupBB",
739 "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
740 northBoundRequest.setOrchestrationFlowList(orchFlows);
742 ServiceInstance serviceInstanceAAI = new ServiceInstance();
743 serviceInstanceAAI.setServiceInstanceId("aaisi123");
744 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
745 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
746 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
747 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
748 vnf.setVnfId("vnfId123");
750 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
751 vnf.getVfModules().add(vfModule);
752 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
753 vnf.getVfModules().add(vfModule2);
755 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
756 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
757 volumeGroup.setVolumeGroupId("vg123");
758 vnf.getVolumeGroups().add(volumeGroup);
760 serviceInstanceMSO.getVnfs().add(vnf);
762 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
763 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
764 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
765 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
766 workflowAction.selectExecutionList(execution);
767 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
768 assertEqualsBulkFlowName(ebbs, "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
769 "UnassignVnfBB", "UnassignServiceInstanceBB");
773 public void selectExecutionListServiceMacroDeleteNetworkCollectionTest() throws Exception {
774 String gAction = "deleteInstance";
775 String resource = "Service";
776 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
777 execution.setVariable("requestAction", gAction);
778 String bpmnRequest = new String(Files
779 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
780 execution.setVariable("bpmnRequest", bpmnRequest);
781 execution.setVariable("aLaCarte", false);
782 execution.setVariable("apiVersion", "7");
783 execution.setVariable("requestUri", "v6/serviceInstances/123");
786 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
787 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
788 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
789 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
790 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
791 northBoundRequest.setOrchestrationFlowList(orchFlows);
793 ServiceInstance serviceInstanceAAI = new ServiceInstance();
794 serviceInstanceAAI.setServiceInstanceId("aaisi123");
795 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
796 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
798 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network =
799 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
800 network.setNetworkId("123");
801 serviceInstanceMSO.getNetworks().add(network);
802 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network2 =
803 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
804 network2.setNetworkId("321");
805 serviceInstanceMSO.getNetworks().add(network2);
807 Collection collection = new Collection();
808 serviceInstanceMSO.setCollection(collection);
810 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
811 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
812 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
813 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
814 workflowAction.selectExecutionList(execution);
815 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
816 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
817 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeleteNetworkCollectionBB",
818 "DeactivateServiceInstanceBB", "UnassignServiceInstanceBB");
822 public void selectExecutionListVnfMacroRecreateTest() throws Exception {
823 String gAction = "recreateInstance";
824 String resource = "Vnf";
825 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
826 execution.setVariable("requestAction", gAction);
828 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/VnfMacroReplace.json")));
829 execution.setVariable("bpmnRequest", bpmnRequest);
830 execution.setVariable("aLaCarte", false);
831 execution.setVariable("apiVersion", "7");
832 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/recreate");
833 execution.setVariable("serviceInstanceId", "123");
834 execution.setVariable("vnfId", "1234");
836 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
837 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
838 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
839 "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB",
840 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
841 "AAIUnsetVnfInMaintBB");
842 northBoundRequest.setOrchestrationFlowList(orchFlows);
844 ServiceInstance serviceInstanceAAI = new ServiceInstance();
845 serviceInstanceAAI.setServiceInstanceId("123");
846 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
847 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
848 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
849 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
850 vnf.setVnfId("1234");
852 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
853 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
854 vfModule.setVfModuleId("vfModule1");
855 vnf.getVfModules().add(vfModule);
856 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
857 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
858 vfModule2.setVfModuleId("vfModule2");
859 vnf.getVfModules().add(vfModule2);
861 serviceInstanceMSO.getVnfs().add(vnf);
863 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
864 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
865 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
866 false, "cloud-owner")).thenReturn(northBoundRequest);
867 workflowAction.selectExecutionList(execution);
868 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
869 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateVfModuleBB",
870 "DeactivateVfModuleBB", "DeleteVfModuleBB", "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB",
871 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
872 "AAIUnsetVnfInMaintBB");
876 public void selectExecutionListVnfMacroReplaceTest() throws Exception {
877 String gAction = "replaceInstance";
878 String resource = "Vnf";
879 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
880 execution.setVariable("requestAction", gAction);
882 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/VnfMacroReplace.json")));
883 execution.setVariable("bpmnRequest", bpmnRequest);
884 execution.setVariable("aLaCarte", false);
885 execution.setVariable("apiVersion", "7");
886 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/replace");
887 execution.setVariable("serviceInstanceId", "123");
888 execution.setVariable("vnfId", "1234");
890 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
891 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
892 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
893 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
894 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB",
895 "ChangeModelVnfBB", "ActivateVnfBB", "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB",
896 "AAIUnsetVnfInMaintBB");
897 northBoundRequest.setOrchestrationFlowList(orchFlows);
899 ServiceInstance serviceInstanceAAI = new ServiceInstance();
900 serviceInstanceAAI.setServiceInstanceId("123");
901 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
902 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
903 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
904 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
905 vnf.setVnfId("1234");
906 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
907 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
908 vfModule.setVfModuleId("vfModule1");
909 vnf.getVfModules().add(vfModule);
910 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
911 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
912 vfModule2.setVfModuleId("vfModule2");
913 vnf.getVfModules().add(vfModule2);
914 serviceInstanceMSO.getVnfs().add(vnf);
915 VfModule vfModuleAAI = new VfModule();
916 vfModuleAAI.setVfModuleId("vfModule2");
917 RelationshipList relationshipList = new RelationshipList();
918 Relationship relationship = new Relationship();
919 relationshipList.getRelationship().add(relationship);
920 vfModuleAAI.setRelationshipList(relationshipList);
921 Relationships relationships = new Relationships("abc");
922 Configuration config = new Configuration();
923 config.setConfigurationId("configId");
924 Optional<Configuration> configOp = Optional.of(config);
925 Optional<Relationships> relationshipsOp = Optional.of(relationships);
927 doReturn(relationshipsOp).when(workflowActionUtils).extractRelationshipsVnfc(isA(Relationships.class));
928 doReturn(configOp).when(workflowActionUtils).extractRelationshipsConfiguration(isA(Relationships.class));
929 doReturn(vfModuleAAI).when(bbSetupUtils).getAAIVfModule("1234", "vfModule2");
930 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
931 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
932 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
933 false, "cloud-owner")).thenReturn(northBoundRequest);
934 workflowAction.selectExecutionList(execution);
935 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
936 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateFabricConfigurationBB",
937 "UnassignFabricConfigurationBB", "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
938 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "ChangeModelVfModuleBB",
939 "CreateVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB",
940 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ChangeModelVnfBB", "ActivateVnfBB",
941 "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
942 for (ExecuteBuildingBlock executeBuildingBlock : ebbs) {
943 assertEquals("123", executeBuildingBlock.getWorkflowResourceIds().getServiceInstanceId());
949 public void selectExecutionListNetworkCollectionMacroCreate() throws Exception {
950 String gAction = "createInstance";
951 String resource = "NetworkCollection";
952 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
953 execution.setVariable("requestAction", gAction);
954 String bpmnRequest = new String(
955 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/CreateNetworkCollection.json")));
956 execution.setVariable("bpmnRequest", bpmnRequest);
957 execution.setVariable("aLaCarte", false);
958 execution.setVariable("apiVersion", "7");
959 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
962 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
963 List<OrchestrationFlow> orchFlows = createFlowList("CreateNetworkCollectionBB", "AssignNetworkBB",
964 "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB");
965 northBoundRequest.setOrchestrationFlowList(orchFlows);
967 Service service = new Service();
968 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
969 CollectionResource collectionResource = new CollectionResource();
970 collectionResource.setToscaNodeType("Data NetworkCollection Data");
971 collectionResourceCustomization.setCollectionResource(collectionResource);
972 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
974 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
975 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
976 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
977 workflowAction.selectExecutionList(execution);
978 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
979 assertEqualsBulkFlowName(ebbs, "CreateNetworkCollectionBB", "AssignNetworkBB", "CreateNetworkBB",
980 "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
981 "ActivateNetworkCollectionBB");
986 public void selectExecutionListNetworkCollectionMacroDelete() throws Exception {
987 String gAction = "deleteInstance";
988 String resource = "NetworkCollection";
989 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
990 execution.setVariable("requestAction", gAction);
991 String bpmnRequest = new String(
992 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/CreateNetworkCollection.json")));
993 execution.setVariable("bpmnRequest", bpmnRequest);
994 execution.setVariable("aLaCarte", false);
995 execution.setVariable("apiVersion", "7");
996 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
998 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
999 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateNetworkBB", "DeleteNetworkBB",
1000 "UnassignNetworkBB", "DeactivateNetworkCollectionBB", "DeleteNetworkCollectionBB");
1001 northBoundRequest.setOrchestrationFlowList(orchFlows);
1003 Service service = new Service();
1004 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
1005 CollectionResource collectionResource = new CollectionResource();
1006 collectionResource.setToscaNodeType("Data NetworkCollection Data");
1007 collectionResourceCustomization.setCollectionResource(collectionResource);
1008 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
1010 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1011 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1012 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1013 workflowAction.selectExecutionList(execution);
1014 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1015 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1016 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeactivateNetworkCollectionBB",
1017 "DeleteNetworkCollectionBB");
1021 public void selectExecutionListALaCarteVfModuleNoFabricCreateTest() throws Exception {
1022 String gAction = "createInstance";
1023 String resource = "VfModule";
1024 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1025 execution.setVariable("requestAction", gAction);
1026 String bpmnRequest =
1027 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1028 execution.setVariable("bpmnRequest", bpmnRequest);
1029 execution.setVariable("aLaCarte", true);
1030 execution.setVariable("apiVersion", "7");
1031 execution.setVariable("requestUri",
1032 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1035 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1036 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1037 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1038 northBoundRequest.setOrchestrationFlowList(orchFlows);
1040 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1041 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1042 workflowAction.selectExecutionList(execution);
1043 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1044 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB");
1048 public void selectExecutionListALaCarteVfModuleFabricCreateTest() throws Exception {
1049 String gAction = "createInstance";
1050 String resource = "VfModule";
1051 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1052 execution.setVariable("requestAction", gAction);
1053 String bpmnRequest =
1054 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1055 execution.setVariable("bpmnRequest", bpmnRequest);
1056 execution.setVariable("aLaCarte", true);
1057 execution.setVariable("apiVersion", "7");
1058 execution.setVariable("requestUri",
1059 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1061 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1062 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1063 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1064 northBoundRequest.setOrchestrationFlowList(orchFlows);
1066 List<CvnfcCustomization> cvnfcCustomizations = new ArrayList<CvnfcCustomization>();
1067 CvnfcCustomization cvnfcCustomization = new CvnfcCustomization();
1068 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1069 new CvnfcConfigurationCustomization();
1070 ConfigurationResource configurationResource = new ConfigurationResource();
1071 configurationResource.setToscaNodeType("FabricConfiguration");
1072 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1073 vnfVfmoduleCvnfcConfigurationCustomization.setModelInstanceName("modelInstanceName1");
1074 vnfVfmoduleCvnfcConfigurationCustomization.setCvnfcCustomization(cvnfcCustomization);
1075 List<CvnfcConfigurationCustomization> custSet = new ArrayList<CvnfcConfigurationCustomization>();
1076 custSet.add(vnfVfmoduleCvnfcConfigurationCustomization);
1077 cvnfcCustomization.setCvnfcConfigurationCustomization(custSet);
1078 cvnfcCustomization.setDescription("description");
1079 cvnfcCustomizations.add(cvnfcCustomization);
1081 CvnfcCustomization cvnfcCustomization2 = new CvnfcCustomization();
1082 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization2 =
1083 new CvnfcConfigurationCustomization();
1084 ConfigurationResource configurationResource2 = new ConfigurationResource();
1085 configurationResource2.setToscaNodeType("FabricConfiguration");
1086 vnfVfmoduleCvnfcConfigurationCustomization2.setConfigurationResource(configurationResource2);
1087 vnfVfmoduleCvnfcConfigurationCustomization2.setModelInstanceName("modelInstanceName2");
1088 vnfVfmoduleCvnfcConfigurationCustomization2.setCvnfcCustomization(cvnfcCustomization2);
1089 List<CvnfcConfigurationCustomization> custSet2 = new ArrayList<CvnfcConfigurationCustomization>();
1090 custSet2.add(vnfVfmoduleCvnfcConfigurationCustomization2);
1091 cvnfcCustomization2.setCvnfcConfigurationCustomization(custSet2);
1092 cvnfcCustomization2.setDescription("description2");
1093 cvnfcCustomizations.add(cvnfcCustomization2);
1095 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1096 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1097 // when(catalogDbClient.getCvnfcCustomizationByVnfCustomizationUUIDAndVfModuleCustomizationUUID("fc25201d-36d6-43a3-8d39-fdae88e526ae",
1098 // "9a6d01fd-19a7-490a-9800-460830a12e0b")).thenReturn(cvnfcCustomizations);
1099 workflowAction.selectExecutionList(execution);
1100 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1101 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1102 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "AssignFabricConfigurationBB",
1103 "ActivateFabricConfigurationBB");
1107 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceTest() throws Exception {
1108 String gAction = "replaceInstance";
1109 String resource = "VfModule";
1110 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1111 execution.setVariable("requestAction", gAction);
1112 String bpmnRequest =
1113 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1114 execution.setVariable("bpmnRequest", bpmnRequest);
1115 execution.setVariable("aLaCarte", true);
1116 execution.setVariable("apiVersion", "7");
1117 execution.setVariable("requestUri",
1118 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1120 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1121 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1122 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1123 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1124 workflowAction.selectExecutionList(execution);
1125 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1127 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1128 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1129 "ChangeModelServiceInstanceBB");
1133 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1134 String gAction = "replaceInstanceRetainAssignments";
1135 String resource = "VfModule";
1136 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1137 execution.setVariable("requestAction", gAction);
1138 String bpmnRequest =
1139 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1140 execution.setVariable("bpmnRequest", bpmnRequest);
1141 execution.setVariable("aLaCarte", true);
1142 execution.setVariable("apiVersion", "7");
1143 execution.setVariable("requestUri",
1144 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1146 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1147 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1148 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1149 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1150 workflowAction.selectExecutionList(execution);
1151 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1153 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1154 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1158 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceTest() throws Exception {
1159 String gAction = "replaceInstance";
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");
1170 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1171 execution.setVariable("vfModuleId", "1234");
1173 VolumeGroup volumeGroup = new VolumeGroup();
1174 volumeGroup.setVolumeGroupId("volumeGroupId");
1175 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1176 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1177 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1178 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1179 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1180 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1181 workflowAction.selectExecutionList(execution);
1182 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1184 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1185 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVfModuleBB",
1186 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1190 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceRetainAssignmentsTest()
1192 String gAction = "replaceInstanceRetainAssignments";
1193 String resource = "VfModule";
1194 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1195 execution.setVariable("requestAction", gAction);
1196 String bpmnRequest =
1197 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1198 execution.setVariable("bpmnRequest", bpmnRequest);
1199 execution.setVariable("aLaCarte", true);
1200 execution.setVariable("apiVersion", "7");
1201 execution.setVariable("requestUri",
1202 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1203 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1204 execution.setVariable("vfModuleId", "1234");
1206 VolumeGroup volumeGroup = new VolumeGroup();
1207 volumeGroup.setVolumeGroupId("volumeGroupId");
1208 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1209 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1211 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1212 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1213 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1214 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1215 workflowAction.selectExecutionList(execution);
1216 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1218 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1219 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
1220 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1224 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceTest() throws Exception {
1225 String gAction = "replaceInstance";
1226 String resource = "VfModule";
1227 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1228 execution.setVariable("requestAction", gAction);
1229 String bpmnRequest =
1230 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1231 execution.setVariable("bpmnRequest", bpmnRequest);
1232 execution.setVariable("aLaCarte", true);
1233 execution.setVariable("apiVersion", "7");
1234 execution.setVariable("requestUri",
1235 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1236 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1237 execution.setVariable("vfModuleId", "1234");
1239 VolumeGroup volumeGroup = new VolumeGroup();
1240 volumeGroup.setVolumeGroupId("volumeGroupId");
1241 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1242 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1244 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1245 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1246 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1247 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1248 vfModuleCustomization.setVfModule(vfModule);
1249 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1250 .thenReturn(vfModuleCustomization);
1252 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1253 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1254 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1255 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1256 workflowAction.selectExecutionList(execution);
1257 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1259 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1260 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1261 "ChangeModelServiceInstanceBB");
1265 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1266 String gAction = "replaceInstanceRetainAssignments";
1267 String resource = "VfModule";
1268 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1269 execution.setVariable("requestAction", gAction);
1270 String bpmnRequest =
1271 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1272 execution.setVariable("bpmnRequest", bpmnRequest);
1273 execution.setVariable("aLaCarte", true);
1274 execution.setVariable("apiVersion", "7");
1275 execution.setVariable("requestUri",
1276 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1277 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1278 execution.setVariable("vfModuleId", "1234");
1280 VolumeGroup volumeGroup = new VolumeGroup();
1281 volumeGroup.setVolumeGroupId("volumeGroupId");
1282 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1283 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1285 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1286 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1287 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1288 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1289 vfModuleCustomization.setVfModule(vfModule);
1290 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1291 .thenReturn(vfModuleCustomization);
1293 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1294 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1295 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1296 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1297 workflowAction.selectExecutionList(execution);
1298 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1300 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1301 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1305 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceTest() throws Exception {
1306 String gAction = "replaceInstance";
1307 String resource = "VfModule";
1308 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1309 execution.setVariable("requestAction", gAction);
1310 String bpmnRequest =
1311 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1312 execution.setVariable("bpmnRequest", bpmnRequest);
1313 execution.setVariable("aLaCarte", true);
1314 execution.setVariable("apiVersion", "7");
1315 execution.setVariable("requestUri",
1316 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1317 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1318 execution.setVariable("vfModuleId", "1234");
1320 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1321 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1322 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1323 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1324 vfModuleCustomization.setVfModule(vfModule);
1325 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1326 .thenReturn(vfModuleCustomization);
1328 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1329 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1330 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1331 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1332 workflowAction.selectExecutionList(execution);
1333 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1335 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1336 "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1337 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1341 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceRetainAssignmentsTest()
1343 String gAction = "replaceInstanceRetainAssignments";
1344 String resource = "VfModule";
1345 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1346 execution.setVariable("requestAction", gAction);
1347 String bpmnRequest =
1348 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1349 execution.setVariable("bpmnRequest", bpmnRequest);
1350 execution.setVariable("aLaCarte", true);
1351 execution.setVariable("apiVersion", "7");
1352 execution.setVariable("requestUri",
1353 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1354 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1355 execution.setVariable("vfModuleId", "1234");
1357 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1358 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1359 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1360 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1361 vfModuleCustomization.setVfModule(vfModule);
1362 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1363 .thenReturn(vfModuleCustomization);
1365 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1366 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1367 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1368 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1369 workflowAction.selectExecutionList(execution);
1370 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1372 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "AssignVolumeGroupBB",
1373 "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
1374 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1378 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceTest() throws Exception {
1379 String gAction = "replaceInstance";
1380 String resource = "VfModule";
1381 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1382 execution.setVariable("requestAction", gAction);
1383 String bpmnRequest = new String(
1384 Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleReplaceRebuildVolumeGroups.json")));
1385 execution.setVariable("bpmnRequest", bpmnRequest);
1386 execution.setVariable("aLaCarte", true);
1387 execution.setVariable("apiVersion", "7");
1388 execution.setVariable("requestUri",
1389 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1390 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1391 execution.setVariable("vfModuleId", "1234");
1393 VolumeGroup volumeGroup = new VolumeGroup();
1394 volumeGroup.setVolumeGroupId("volumeGroupId");
1395 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1396 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1398 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1399 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1400 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1401 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1402 vfModuleCustomization.setVfModule(vfModule);
1403 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1404 .thenReturn(vfModuleCustomization);
1406 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1407 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1408 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1409 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1410 workflowAction.selectExecutionList(execution);
1411 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1413 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1414 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
1415 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
1416 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1420 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1421 String gAction = "replaceInstanceRetainAssignments";
1422 String resource = "VfModule";
1423 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1424 execution.setVariable("requestAction", gAction);
1425 String bpmnRequest = new String(
1426 Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleReplaceRebuildVolumeGroups.json")));
1427 execution.setVariable("bpmnRequest", bpmnRequest);
1428 execution.setVariable("aLaCarte", true);
1429 execution.setVariable("apiVersion", "7");
1430 execution.setVariable("requestUri",
1431 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1432 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1433 execution.setVariable("vfModuleId", "1234");
1435 VolumeGroup volumeGroup = new VolumeGroup();
1436 volumeGroup.setVolumeGroupId("volumeGroupId");
1437 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1438 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1440 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1441 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1442 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1443 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1444 vfModuleCustomization.setVfModule(vfModule);
1445 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1446 .thenReturn(vfModuleCustomization);
1448 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1449 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1450 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1451 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1452 workflowAction.selectExecutionList(execution);
1453 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1455 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1456 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB", "ChangeModelVfModuleBB",
1457 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1458 "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1463 public void selectExecutionListALaCarteVfModuleFabricDeleteTest() throws Exception {
1464 String gAction = "deleteInstance";
1465 String resource = "VfModule";
1466 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1467 execution.setVariable("requestAction", gAction);
1468 String bpmnRequest =
1469 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1470 execution.setVariable("bpmnRequest", bpmnRequest);
1471 execution.setVariable("aLaCarte", true);
1472 execution.setVariable("apiVersion", "7");
1473 execution.setVariable("requestUri",
1474 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1476 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1477 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1478 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1479 northBoundRequest.setOrchestrationFlowList(orchFlows);
1481 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1482 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1484 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1485 vnf.setVnfId("vnf0");
1486 vnf.setModelCustomizationId("modelCustomizationId");
1487 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1489 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1490 vfModule.setModelCustomizationId("modelCustomizationId");
1491 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1493 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1494 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1495 vnfc.setModelInvariantId("modelInvariantId");
1496 vnfc.setVnfcName("testVnfcName");
1498 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1501 List<org.onap.aai.domain.yang.Configuration> configurations =
1502 new ArrayList<org.onap.aai.domain.yang.Configuration>();
1503 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1504 configuration.setConfigurationId("configurationId");
1505 configuration.setModelCustomizationId("modelCustimizationId");
1506 configuration.setConfigurationName("testConfigurationName");
1507 configurations.add(configuration);
1508 doReturn(configurations).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1511 doReturn("testName").when(SPY_workflowAction).getVnfcNameForConfiguration(anyObject());
1513 SPY_workflowAction.selectExecutionList(execution);
1514 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1515 assertEqualsBulkFlowName(ebbs, "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB",
1516 "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1520 public void getConfigBuildingBlocksNoVfModuleFabricDeleteTest() throws Exception {
1521 String gAction = "deleteInstance";
1522 ObjectMapper mapper = new ObjectMapper();
1523 WorkflowType resourceType = WorkflowType.VFMODULE;
1524 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1525 execution.setVariable("requestAction", gAction);
1526 String bpmnRequest =
1527 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1528 execution.setVariable("bpmnRequest", bpmnRequest);
1529 execution.setVariable("vnfId", "1234");
1530 execution.setVariable("vfModuleId", "vfModuleId1234");
1531 execution.setVariable("requestUri",
1532 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1533 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1534 RequestDetails requestDetails = sIRequest.getRequestDetails();
1535 String requestAction = "deleteInstance";
1536 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1537 boolean aLaCarte = true;
1538 String apiVersion = "7";
1539 String vnfType = "vnfType";
1540 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1541 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1542 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1543 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1545 thrown.expect(AAIEntityNotFoundException.class);
1546 thrown.expectMessage(containsString(
1547 "No matching VfModule is found in Generic-Vnf in AAI for vnfId: 1234 and vfModuleId : vfModuleId1234"));
1549 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1550 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1552 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1553 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1554 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1555 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1557 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1558 vnf.setVnfId("vnf0");
1559 vnf.setModelCustomizationId("modelCustomizationId");
1560 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1562 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1563 vfModule.setModelCustomizationId("modelCustomizationId");
1564 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(null);
1566 SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1570 public void selectExecutionListALaCarteVfModuleNoFabricDeleteTest() throws Exception {
1571 String gAction = "deleteInstance";
1572 String resource = "VfModule";
1573 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1574 execution.setVariable("requestAction", gAction);
1575 String bpmnRequest =
1576 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1577 execution.setVariable("bpmnRequest", bpmnRequest);
1578 execution.setVariable("aLaCarte", true);
1579 execution.setVariable("apiVersion", "7");
1580 execution.setVariable("requestUri",
1581 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1583 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1584 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1585 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1586 northBoundRequest.setOrchestrationFlowList(orchFlows);
1588 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1589 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1591 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1592 vnf.setVnfId("vnf0");
1593 vnf.setModelCustomizationId("modelCustomizationId");
1594 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1596 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1597 vfModule.setModelCustomizationId("modelCustomizationId");
1598 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1600 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1601 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1602 vnfc.setModelInvariantId("modelInvariantId");
1603 vnfc.setVnfcName("testVnfcName");
1605 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1608 List<org.onap.aai.domain.yang.Configuration> configurations =
1609 new ArrayList<org.onap.aai.domain.yang.Configuration>();
1610 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1611 doReturn(configurations).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1614 doReturn("testName").when(SPY_workflowAction).getVnfcNameForConfiguration(anyObject());
1616 SPY_workflowAction.selectExecutionList(execution);
1617 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1618 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1622 public void selectExecutionListMacroResumeTest() throws Exception {
1623 String gAction = "createInstance";
1624 String resource = "Service";
1625 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1626 execution.setVariable("requestAction", gAction);
1627 String bpmnRequest =
1628 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
1629 execution.setVariable("bpmnRequest", bpmnRequest);
1630 execution.setVariable("aLaCarte", false);
1631 execution.setVariable("apiVersion", "7");
1632 execution.setVariable("requestUri", "v6/serviceInstances/123");
1634 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1635 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1636 northBoundRequest.setOrchestrationFlowList(orchFlows);
1638 Service service = new Service();
1639 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
1641 ServiceInstance si = new ServiceInstance();
1643 when(bbSetupUtils.getAAIServiceInstanceById("123")).thenReturn(si);
1644 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1646 String flowsToExecuteString =
1647 "[{\"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\"}}]";
1648 ObjectMapper om = new ObjectMapper();
1649 List<ExecuteBuildingBlock> flowsToExecute = null;
1651 ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
1652 flowsToExecute = Arrays.asList(asArray);
1653 } catch (Exception e) {
1654 e.printStackTrace();
1657 when(bbSetupUtils.loadOriginalFlowExecutionPath(anyString())).thenReturn(flowsToExecute);
1659 workflowAction.selectExecutionList(execution);
1660 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1661 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB");
1665 public void getRelatedResourcesInVfModuleTest() throws Exception {
1666 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1667 vnfc.setModelInvariantId("modelInvariantId");
1668 vnfc.setVnfcName("testVnfcName");
1670 String vfncPayload =
1671 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/vnfcResponse.json")));
1672 AAIResultWrapper vfncWrapper = new AAIResultWrapper(vfncPayload);
1674 String configurationPayload =
1675 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/configurationResponse.json")));
1676 AAIResultWrapper configurationWrapper = new AAIResultWrapper(configurationPayload);
1677 List<AAIResultWrapper> configurationResultWrappers = new ArrayList<AAIResultWrapper>();
1678 configurationResultWrappers.add(configurationWrapper);
1680 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VNFC, vnfc.getVnfcName());
1681 when(bbSetupUtils.getAAIResourceDepthOne(uri)).thenReturn(vfncWrapper);
1683 doReturn(configurationResultWrappers).when(SPY_workflowAction).getResultWrappersFromRelationships(anyObject(),
1685 List<org.onap.aai.domain.yang.Configuration> configurationsList = SPY_workflowAction.getRelatedResourcesInVnfc(
1686 vnfc, org.onap.aai.domain.yang.Configuration.class, AAIObjectType.CONFIGURATION);
1687 assertEquals(1, configurationsList.size());
1688 assertEquals("testConfigurationId", configurationsList.get(0).getConfigurationId());
1692 * WorkflowActionBB Tests
1696 public void pluralTest() {
1697 List<String> items = Arrays.asList("serviceInstances, Service", "vnfs, Vnf", "vfModules, VfModule",
1698 "networks, Network", "invalidNames, invalidNames");
1699 items.forEach(item -> {
1700 String[] split = item.split(",");
1701 String type = split[0].trim();
1702 String expected = split[1].trim();
1703 assertThat(workflowAction.convertTypeFromPlural(type), equalTo(expected));
1708 public void sortExecutionPathByObjectForVlanTaggingCreateTest() throws Exception {
1709 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1711 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("0");
1712 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1713 executeFlows.add(ebb);
1715 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("1");
1716 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1717 executeFlows.add(ebb2);
1719 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("0");
1720 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1721 executeFlows.add(ebb3);
1723 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("1");
1724 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1725 executeFlows.add(ebb4);
1727 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("0");
1728 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1729 executeFlows.add(ebb5);
1731 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("1");
1732 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1733 executeFlows.add(ebb6);
1735 List<ExecuteBuildingBlock> sorted =
1736 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "createInstance");
1737 assertEqualsBulkFlowName(sorted, "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB",
1738 "CreateNetworkBB", "ActivateNetworkBB");
1742 public void sortExecutionPathByObjectForVlanTaggingDeleteTest() throws Exception {
1743 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1745 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("0");
1746 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1747 executeFlows.add(ebb);
1749 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("1");
1750 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1751 executeFlows.add(ebb2);
1753 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("0");
1754 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1755 executeFlows.add(ebb3);
1757 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("1");
1758 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1759 executeFlows.add(ebb4);
1761 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("0");
1762 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1763 executeFlows.add(ebb5);
1765 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("1");
1766 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1767 executeFlows.add(ebb6);
1769 List<ExecuteBuildingBlock> sorted =
1770 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "deleteInstance");
1771 assertEqualsBulkFlowName(sorted, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1772 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB");
1776 public void queryNorthBoundRequestCatalogDbNestedTest() throws MalformedURLException {
1777 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1778 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
1779 "VNF-Macro-Replace", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
1780 northBoundRequest.setOrchestrationFlowList(orchFlows);
1781 List<OrchestrationFlow> macroFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1782 "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB");
1784 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner("replaceInstance",
1785 "Vnf", false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1786 when(catalogDbClient.getOrchestrationFlowByAction("VNF-Macro-Replace")).thenReturn(macroFlows);
1787 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "replaceInstance",
1788 WorkflowType.VNF, false, "my-custom-cloud-owner");
1789 assertEquals(flows.get(0).getFlowName(), "AAICheckVnfInMaintBB");
1790 assertEquals(flows.get(1).getFlowName(), "AAISetVnfInMaintBB");
1791 assertEquals(flows.get(2).getFlowName(), "DeactivateVfModuleBB");
1792 assertEquals(flows.get(3).getFlowName(), "DeleteVfModuleBB");
1793 assertEquals(flows.get(4).getFlowName(), "DeactivateVnfBB");
1794 assertEquals(flows.get(5).getFlowName(), "CreateVfModuleBB");
1795 assertEquals(flows.get(6).getFlowName(), "ActivateVfModuleBB");
1796 assertEquals(flows.get(7).getFlowName(), "ActivateVnfBB");
1797 assertEquals(flows.get(8).getFlowName(), "SDNOVnfHealthCheckBB");
1798 assertEquals(flows.get(9).getFlowName(), "AAIUnsetVnfInMaintBB");
1802 public void queryNorthBoundRequestCatalogDbTransportTest() throws MalformedURLException {
1803 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1804 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1805 northBoundRequest.setOrchestrationFlowList(orchFlows);
1806 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwnerAndServiceType(
1807 "createInstance", "Service", true, "my-custom-cloud-owner", "TRANSPORT")).thenReturn(northBoundRequest);
1809 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "createInstance",
1810 WorkflowType.SERVICE, true, "my-custom-cloud-owner", "TRANSPORT");
1811 assertEquals(flows.get(0).getFlowName(), "AssignServiceInstanceBB");
1815 public void extractResourceIdAndTypeFromUriTest() {
1816 String uri = "/v6/serviceInstances/123";
1817 String uri2 = "/v6/serviceInstances/123/vnfs/1234";
1818 String uri3 = "/v6/serviceInstances";
1819 String uri4 = "/v6/serviceInstances/assign";
1820 String uri5 = "'/v6/serviceInstances/123/vnfs";
1821 String uri6 = "/v6/serviceInstances/123/vnfs/1234/someAction";
1822 String uri7 = "/v6/serviceInstances/123/vnfs/1234/vfModules/5678/replace";
1823 String uri8 = "/v6/serviceInstances/123/vnfs/1234/vfModules/scaleOut";
1824 Resource expected1 = new Resource(WorkflowType.SERVICE, "123", true);
1825 Resource expected2 = new Resource(WorkflowType.VNF, "1234", false);
1826 Resource expected3 = new Resource(WorkflowType.VNF, "1234", false);
1827 Resource expected4 = new Resource(WorkflowType.VFMODULE, "5678", false);
1828 Resource result = workflowAction.extractResourceIdAndTypeFromUri(uri);
1829 assertEquals(expected1.getResourceId(), result.getResourceId());
1830 assertEquals(expected1.getResourceType(), result.getResourceType());
1831 result = workflowAction.extractResourceIdAndTypeFromUri(uri2);
1832 assertEquals(expected2.getResourceId(), result.getResourceId());
1833 assertEquals(expected2.getResourceType(), result.getResourceType());
1834 result = workflowAction.extractResourceIdAndTypeFromUri(uri3);
1835 assertEquals("Service", result.getResourceType().toString());
1836 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1837 result = workflowAction.extractResourceIdAndTypeFromUri(uri4);
1838 assertEquals("Service", result.getResourceType().toString());
1839 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1840 result = workflowAction.extractResourceIdAndTypeFromUri(uri5);
1841 assertEquals("Vnf", result.getResourceType().toString());
1842 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1843 result = workflowAction.extractResourceIdAndTypeFromUri(uri6);
1844 assertEquals(expected3.getResourceId(), result.getResourceId());
1845 assertEquals(expected3.getResourceType(), result.getResourceType());
1846 result = workflowAction.extractResourceIdAndTypeFromUri(uri7);
1847 assertEquals(expected4.getResourceId(), result.getResourceId());
1848 assertEquals(expected4.getResourceType(), result.getResourceType());
1849 result = workflowAction.extractResourceIdAndTypeFromUri(uri8);
1850 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1851 assertEquals("VfModule", result.getResourceType().toString());
1856 public void extractResourceIdAndTypeFromUriInvalidTypeTest() {
1857 this.expectedException.expect(IllegalArgumentException.class);
1858 this.expectedException.expectMessage(containsString("Uri could not be parsed. No type found."));
1859 workflowAction.extractResourceIdAndTypeFromUri("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace");
1863 public void extractResourceIdAndTypeFromUriInvalidUriTest() {
1864 this.expectedException.expect(IllegalArgumentException.class);
1865 this.expectedException.expectMessage(containsString("Uri could not be parsed:"));
1866 workflowAction.extractResourceIdAndTypeFromUri("something that doesn't match anything");
1870 public void extractResourceIdAndTypeFromUriResumeTest() {
1871 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1872 "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");
1873 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1877 public void extractResourceIdAndTypeFromUriReplaceResumeTest() {
1878 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1879 "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");
1880 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1884 public void extractResourceIdAndTypeFromUriDeActiveResumeTest() {
1885 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1886 "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");
1887 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1891 public void extractResourceIdAndTypeFromUriResumeIdOnly() {
1892 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1893 "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");
1894 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1898 public void isUriResumeTest() {
1899 assertTrue(workflowAction.isUriResume(
1900 "http://localhost:9100/onap/so/infra/orchestrationRequests/v7/requests/2f8ab587-ef6a-4456-b7b2-d73f9363dabd/resume"));
1901 assertTrue(workflowAction.isUriResume(
1902 " 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"));
1904 assertFalse(workflowAction.isUriResume("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace"));
1908 public void isRequestMacroServiceResumeTest() {
1909 ServiceInstance si = new ServiceInstance();
1910 when(bbSetupUtils.getAAIServiceInstanceById(anyString())).thenReturn(si);
1911 assertFalse(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", ""));
1912 assertTrue(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", "123"));
1916 public void populateResourceIdsFromApiHandlerTest() {
1917 execution.setVariable("serviceInstanceId", "123");
1918 execution.setVariable("vnfId", "888");
1919 WorkflowResourceIds x = workflowAction.populateResourceIdsFromApiHandler(execution);
1920 assertEquals("123", x.getServiceInstanceId());
1921 assertEquals("888", x.getVnfId());
1922 assertNull(x.getVolumeGroupId());
1925 private RequestDetails setupRequestDetails(String globalSubscriberId, String subscriptionServiceType,
1926 String modelCustomizationId) {
1927 RequestDetails reqDetails = new RequestDetails();
1928 SubscriberInfo subInfo = new SubscriberInfo();
1929 subInfo.setGlobalSubscriberId(globalSubscriberId);
1930 reqDetails.setSubscriberInfo(subInfo);
1931 RequestParameters reqParams = new RequestParameters();
1932 reqParams.setSubscriptionServiceType(subscriptionServiceType);
1933 reqDetails.setRequestParameters(reqParams);
1934 ModelInfo modelInfo = new ModelInfo();
1935 modelInfo.setModelCustomizationId(modelCustomizationId);
1936 reqDetails.setModelInfo(modelInfo);
1941 public void validateResourceIdInAAIVnfTest() throws Exception {
1942 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
1943 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1944 workflowResourceIds.setServiceInstanceId("siId123");
1946 GenericVnf vnf = new GenericVnf();
1947 vnf.setVnfId("id123");
1948 vnf.setVnfName("vnfName123");
1949 vnf.setModelCustomizationId("1234567");
1950 Optional<GenericVnf> opVnf = Optional.of(vnf);
1951 GenericVnf vnf2 = new GenericVnf();
1952 vnf2.setVnfId("id123");
1953 vnf2.setVnfName("vnfName222");
1954 vnf2.setModelCustomizationId("222");
1955 Optional<GenericVnf> opVnf2 = Optional.of(vnf2);
1956 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
1957 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName222")).thenReturn(opVnf2);
1958 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
1959 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName123", reqDetails,
1960 workflowResourceIds);
1961 assertEquals("id123", id);
1962 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "111111", reqDetails,
1963 workflowResourceIds);
1964 assertEquals("generatedId123", id2);
1966 this.expectedException.expect(DuplicateNameException.class);
1967 this.expectedException.expectMessage(containsString(
1968 "generic-vnf with name (vnfName222), same parent and different customization id (222) already exists. The name must be unique."));
1969 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName222", reqDetails,
1970 workflowResourceIds);
1974 public void validateResourceIdInAAIVnfNotGloballyUniqueTest() throws Exception {
1975 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
1976 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1977 workflowResourceIds.setServiceInstanceId("siId123");
1980 GenericVnfs genericVnfs = new GenericVnfs();
1981 GenericVnf vnf3 = new GenericVnf();
1982 vnf3.setVnfId("id123");
1983 vnf3.setVnfName("vnfName333");
1984 genericVnfs.getGenericVnf().add(vnf3);
1985 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName333")).thenReturn(Optional.empty());
1986 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName333")).thenReturn(genericVnfs);
1988 this.expectedException.expect(DuplicateNameException.class);
1989 this.expectedException.expectMessage(containsString(
1990 "generic-vnf with name (vnfName333) id (id123) and different parent relationship already exists. The name must be unique."));
1991 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName333", reqDetails,
1992 workflowResourceIds);
1996 public void validateResourceIdInAAINetworkTest() throws Exception {
1997 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
1998 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1999 workflowResourceIds.setServiceInstanceId("siId123");
2002 L3Network network = new L3Network();
2003 network.setNetworkId("id123");
2004 network.setNetworkName("name123");
2005 network.setModelCustomizationId("1234567");
2006 workflowResourceIds.setServiceInstanceId("siId123");
2007 Optional<L3Network> opNetwork = Optional.of(network);
2008 L3Network network2 = new L3Network();
2009 network2.setNetworkId("id123");
2010 network2.setNetworkName("networkName222");
2011 network2.setModelCustomizationId("222");
2012 Optional<L3Network> opNetwork2 = Optional.of(network2);
2013 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2014 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "networkName222"))
2015 .thenReturn(opNetwork2);
2016 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2017 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "name123",
2018 reqDetails, workflowResourceIds);
2019 assertEquals("id123", id);
2020 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "111111",
2021 reqDetails, workflowResourceIds);
2022 assertEquals("generatedId123", id2);
2024 this.expectedException.expect(DuplicateNameException.class);
2025 this.expectedException.expectMessage(containsString(
2026 "l3Network with name (networkName222), same parent and different customization id (222) already exists. The name must be unique."));
2027 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName222", reqDetails,
2028 workflowResourceIds);
2032 public void validateNetworkResourceNameExistsInAAITest() throws Exception {
2033 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2034 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2035 workflowResourceIds.setServiceInstanceId("siId123");
2038 L3Network network = new L3Network();
2039 network.setNetworkId("id123");
2040 network.setNetworkName("name123");
2041 network.setModelCustomizationId("1234567");
2042 workflowResourceIds.setServiceInstanceId("siId123");
2044 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("networkName333", "111111"))
2045 .thenReturn(Optional.empty());
2046 when(bbSetupUtils.existsAAINetworksGloballyByName("networkName333")).thenReturn(true);
2048 this.expectedException.expect(DuplicateNameException.class);
2049 this.expectedException.expectMessage(containsString(
2050 "l3Network with name (networkName333) id (siId123) and different parent relationship already exists. The name must be unique."));
2051 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName333", reqDetails,
2052 workflowResourceIds);
2056 public void validateResourceIdInAAIVfModuleTest() throws Exception {
2057 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2058 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2059 workflowResourceIds.setServiceInstanceId("siId123");
2061 GenericVnf vnf = new GenericVnf();
2062 vnf.setVnfId("id123");
2063 vnf.setVnfName("vnfName123");
2064 vnf.setModelCustomizationId("222");
2067 VfModules vfModules = new VfModules();
2068 VfModule vfModule = new VfModule();
2069 vfModule.setVfModuleId("id123");
2070 vfModule.setVfModuleName("name123");
2071 vfModule.setModelCustomizationId("1234567");
2072 vfModules.getVfModule().add(vfModule);
2073 vnf.setVfModules(vfModules);
2074 workflowResourceIds.setVnfId("id123");
2075 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2076 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "name123",
2077 reqDetails, workflowResourceIds);
2078 assertEquals("id123", id);
2080 GenericVnf vnf1 = new GenericVnf();
2081 VfModules vfModules2 = new VfModules();
2082 VfModule vfModule2 = new VfModule();
2083 vfModule2.setVfModuleId("id123");
2084 vfModule2.setVfModuleName("vFModName222");
2085 vfModule2.setModelCustomizationId("222");
2086 vfModules2.getVfModule().add(vfModule2);
2087 vnf1.setVfModules(vfModules2);
2088 workflowResourceIds.setVnfId("id111");
2089 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2090 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "111111",
2091 reqDetails, workflowResourceIds);
2092 assertEquals("generatedId123", id2);
2094 this.expectedException.expect(DuplicateNameException.class);
2095 this.expectedException.expectMessage(containsString(
2096 "vfModule with name (vFModName222), same parent and different customization id (1234567) already exists. The name must be unique."));
2097 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName222", reqDetails,
2098 workflowResourceIds);
2102 public void validateResourceIdInAAIVfModuleNotGloballyUniqueTest() throws Exception {
2103 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2104 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2105 workflowResourceIds.setVnfId("id111");
2107 GenericVnf vnf1 = new GenericVnf();
2108 workflowResourceIds.setVnfId("id111");
2109 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2111 when(bbSetupUtils.existsAAIVfModuleGloballyByName("vFModName333")).thenReturn(true);
2112 this.expectedException.expect(DuplicateNameException.class);
2113 this.expectedException.expectMessage(
2114 containsString("vfModule with name vFModName333 already exists. The name must be unique."));
2115 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName333", reqDetails,
2116 workflowResourceIds);
2120 public void validateResourceIdInAAIVolumeGroupTest() throws Exception {
2121 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2122 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2123 workflowResourceIds.setServiceInstanceId("siId123");
2125 GenericVnf vnf = new GenericVnf();
2126 vnf.setVnfId("id123");
2127 vnf.setVnfName("vnfName123");
2128 vnf.setModelCustomizationId("1234567");
2130 GenericVnf vnf2 = new GenericVnf();
2131 vnf2.setVnfId("id123");
2132 vnf2.setVnfName("vnfName123");
2133 vnf2.setModelCustomizationId("222");
2136 VolumeGroup volumeGroup = new VolumeGroup();
2137 volumeGroup.setVolumeGroupId("id123");
2138 volumeGroup.setVolumeGroupName("name123");
2139 volumeGroup.setVfModuleModelCustomizationId("1234567");
2140 workflowResourceIds.setVnfId("id123");
2141 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2143 workflowResourceIds.setVnfId("id123");
2145 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2146 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(opVolumeGroup);
2147 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2148 reqDetails, workflowResourceIds);
2149 assertEquals("id123", id);
2151 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf2);
2152 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "111111"))
2153 .thenReturn(opVolumeGroup);
2155 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "111111")).thenReturn(Optional.empty());
2156 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "111111",
2157 reqDetails, workflowResourceIds);
2158 assertEquals("generatedId123", id2);
2162 public void validatesourceIdInAAIVolumeGroupNotGloballyUniqueTest() throws Exception {
2163 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2164 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2165 workflowResourceIds.setVnfId("id123");
2166 GenericVnf vnf = new GenericVnf();
2167 vnf.setVnfId("id123");
2168 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2169 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "testVolumeGroup")).thenReturn(Optional.empty());
2171 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("testVolumeGroup")).thenReturn(true);
2172 this.expectedException.expect(DuplicateNameException.class);
2173 this.expectedException.expectMessage(
2174 containsString("volumeGroup with name testVolumeGroup already exists. The name must be unique."));
2175 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "testVolumeGroup",
2176 reqDetails, workflowResourceIds);
2180 public void validateResourceIdInAAIConfigurationTest() throws Exception {
2181 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2182 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2183 workflowResourceIds.setServiceInstanceId("siId123");
2186 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2187 configuration.setConfigurationId("id123");
2188 configuration.setConfigurationName("name123");
2189 configuration.setModelCustomizationId("1234567");
2190 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2192 org.onap.aai.domain.yang.Configuration configuration2 = new org.onap.aai.domain.yang.Configuration();
2193 configuration2.setConfigurationId("id123");
2194 configuration2.setConfigurationName("name123");
2195 configuration2.setModelCustomizationId("222");
2196 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration2 = Optional.of(configuration2);
2198 workflowResourceIds.setVnfId("id123");
2200 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2201 .thenReturn(opConfiguration);
2202 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name123",
2203 reqDetails, workflowResourceIds);
2204 assertEquals("id123", id);
2206 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "111111"))
2207 .thenReturn(Optional.empty());
2208 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "111111",
2209 reqDetails, workflowResourceIds);
2210 assertEquals("generatedId123", id2);
2212 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name222"))
2213 .thenReturn(opConfiguration2);
2214 this.expectedException.expect(DuplicateNameException.class);
2215 this.expectedException.expectMessage(containsString(
2216 "configuration with name (name222), same parent and different customization id (id123) already exists. The name must be unique."));
2217 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name222", reqDetails,
2218 workflowResourceIds);
2222 public void validateResourceIdInAAIConfigurationNotGloballyUniqueTest() throws Exception {
2223 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2224 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2225 workflowResourceIds.setServiceInstanceId("siId123");
2227 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "testConfig"))
2228 .thenReturn(Optional.empty());
2229 when(bbSetupUtils.existsAAIConfigurationGloballyByName("testConfig")).thenReturn(true);
2230 this.expectedException.expect(DuplicateNameException.class);
2231 this.expectedException.expectMessage(
2232 containsString("configuration with name testConfig already exists. The name must be unique."));
2233 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "testConfig", reqDetails,
2234 workflowResourceIds);
2238 public void validateResourceIdInAAISITest() throws Exception {
2239 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2240 workflowResourceIds.setServiceInstanceId("siId123");
2241 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2242 reqDetails.getModelInfo().setModelVersionId("1234567");
2244 ServiceInstance si = new ServiceInstance();
2245 si.setServiceInstanceId("siId123");
2246 si.setModelVersionId("1234567");
2247 ServiceInstances serviceInstances = new ServiceInstances();
2248 serviceInstances.getServiceInstance().add(si);
2249 Optional<ServiceInstance> siOp = Optional.of(si);
2250 ServiceInstance si2 = new ServiceInstance();
2251 si2.setServiceInstanceId("siId222");
2252 si2.setModelVersionId("22222");
2253 si2.setServiceInstanceName("siName222");
2254 Optional<ServiceInstance> siOp2 = Optional.of(si2);
2255 ServiceInstances serviceInstances2 = new ServiceInstances();
2256 serviceInstances2.getServiceInstance().add(si2);
2258 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2259 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName222")).thenReturn(siOp2);
2260 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "111111"))
2261 .thenReturn(Optional.empty());
2263 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2264 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123",
2265 reqDetails, workflowResourceIds);
2266 assertEquals("siId123", id);
2267 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "111111",
2268 reqDetails, workflowResourceIds);
2269 assertEquals("generatedId123", id2);
2271 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName222")).thenReturn(serviceInstances2);
2272 this.expectedException.expect(DuplicateNameException.class);
2273 this.expectedException.expectMessage(containsString(
2274 "serviceInstance with name (siName222) and different version id (1234567) already exists. The name must be unique."));
2275 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName222", reqDetails,
2276 workflowResourceIds);
2280 public void validateResourceIdInAAIMultipleSITest() throws Exception {
2281 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2282 workflowResourceIds.setServiceInstanceId("siId123");
2283 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2284 reqDetails.getModelInfo().setModelVersionId("1234567");
2286 ServiceInstance si = new ServiceInstance();
2287 si.setServiceInstanceId("siId123");
2288 si.setModelVersionId("1234567");
2289 ServiceInstances serviceInstances = new ServiceInstances();
2290 serviceInstances.getServiceInstance().add(si);
2292 ServiceInstance si2 = new ServiceInstance();
2293 si2.setServiceInstanceId("siId222");
2294 si2.setModelVersionId("22222");
2295 si2.setServiceInstanceName("siName222");
2296 serviceInstances.getServiceInstance().add(si2);
2298 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2299 .thenReturn(Optional.empty());
2301 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2303 this.expectedException.expect(DuplicateNameException.class);
2304 this.expectedException.expectMessage(containsString(
2305 "serviceInstance with name (siName123) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2306 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2307 workflowResourceIds);
2311 public void validateResourceIdInAAISIExistsTest() throws Exception {
2312 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2313 workflowResourceIds.setServiceInstanceId("siId123");
2314 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2315 reqDetails.getModelInfo().setModelVersionId("1234567");
2317 ServiceInstance si = new ServiceInstance();
2318 si.setServiceInstanceId("siId123");
2319 si.setModelVersionId("1234567");
2320 ServiceInstances serviceInstances = new ServiceInstances();
2321 serviceInstances.getServiceInstance().add(si);
2323 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2324 .thenReturn(Optional.empty());
2326 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2328 Map<String, String> uriKeys = new HashMap<>();
2329 uriKeys.put("global-customer-id", "globalCustomerId");
2330 uriKeys.put("service-type", "serviceType");
2332 when(bbSetupUtils.getURIKeysFromServiceInstance("siId123")).thenReturn(uriKeys);
2334 this.expectedException.expect(DuplicateNameException.class);
2335 this.expectedException.expectMessage(containsString(
2336 "serviceInstance with name (siName123) and global-customer-id (globalCustomerId), service-type (serviceType), model-version-id (1234567) already exists. The name must be unique."));
2337 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2338 workflowResourceIds);
2342 public void validateServiceResourceIdInAAINoDupTest() throws Exception {
2343 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2344 reqDetails.getModelInfo().setModelVersionId("1234567");
2345 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123"))
2346 .thenReturn(Optional.empty());
2347 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(null);
2348 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2349 assertEquals("generatedId123", id);
2353 public void validateServiceResourceIdInAAISameModelVersionId() throws Exception {
2354 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2355 reqDetails.getModelInfo().setModelVersionId("1234567");
2357 ServiceInstance si = new ServiceInstance();
2358 si.setServiceInstanceId("siId123");
2359 si.setModelVersionId("1234567");
2360 Optional<ServiceInstance> siOp = Optional.of(si);
2362 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2363 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2364 assertEquals("siId123", id);
2368 public void validateServiceResourceIdInAAIDifferentModelVersionId() throws Exception {
2369 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2370 reqDetails.getModelInfo().setModelVersionId("1234567");
2372 ServiceInstance si = new ServiceInstance();
2373 si.setServiceInstanceId("siId123");
2374 si.setModelVersionId("9999999");
2375 ServiceInstances serviceInstances = new ServiceInstances();
2376 serviceInstances.getServiceInstance().add(si);
2377 Optional<ServiceInstance> siOp = Optional.of(si);
2379 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2381 this.expectedException.expect(DuplicateNameException.class);
2382 this.expectedException.expectMessage(containsString(
2383 "serviceInstance with name (siName123) and different version id (1234567) already exists. The name must be unique."));
2385 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2386 assertEquals("siId123", id);
2390 public void validateServiceResourceIdInAAIDuplicateNameTest() throws Exception {
2392 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2393 reqDetails.getModelInfo().setModelVersionId("1234567");
2395 ServiceInstance si = new ServiceInstance();
2396 si.setServiceInstanceId("siId123");
2397 si.setModelVersionId("1234567");
2399 ServiceInstances serviceInstances = new ServiceInstances();
2400 serviceInstances.getServiceInstance().add(si);
2402 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2403 .thenReturn(Optional.empty());
2404 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2406 this.expectedException.expect(DuplicateNameException.class);
2407 this.expectedException.expectMessage(containsString(
2408 "serviceInstance with name (siName) and global-customer-id (null), service-type (null), model-version-id (1234567) already exists. The name must be unique."));
2410 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2414 public void validateServiceResourceIdInAAIDuplicateNameMultipleTest() throws Exception {
2416 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2417 reqDetails.getModelInfo().setModelVersionId("1234567");
2419 ServiceInstance si = new ServiceInstance();
2420 si.setServiceInstanceId("siId123");
2421 si.setModelVersionId("1234567");
2423 ServiceInstance si2 = new ServiceInstance();
2424 si2.setServiceInstanceId("siId222");
2425 si2.setModelVersionId("22222");
2426 si2.setServiceInstanceName("siName222");
2428 ServiceInstances serviceInstances = new ServiceInstances();
2429 serviceInstances.getServiceInstance().add(si);
2430 serviceInstances.getServiceInstance().add(si2);
2432 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2433 .thenReturn(Optional.empty());
2434 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2436 this.expectedException.expect(DuplicateNameException.class);
2437 this.expectedException.expectMessage(containsString(
2438 "serviceInstance with name (siName) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2440 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2444 public void validateNetworkResourceIdInAAITest() throws Exception {
2445 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2446 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2447 workflowResourceIds.setServiceInstanceId("siId123");
2449 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2450 .thenReturn(Optional.empty());
2451 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(false);
2453 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2454 workflowResourceIds);
2455 assertEquals("generatedId123", id);
2459 public void validateNetworkResourceIdInAAISameModelCustIdTest() throws Exception {
2460 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2461 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2462 workflowResourceIds.setServiceInstanceId("siId123");
2464 L3Network network = new L3Network();
2465 network.setNetworkId("id123");
2466 network.setNetworkName("name123");
2467 network.setModelCustomizationId("1234567");
2468 Optional<L3Network> opNetwork = Optional.of(network);
2470 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2472 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2473 workflowResourceIds);
2474 assertEquals("id123", id);
2478 public void validateNetworkResourceIdInAAIDuplicateNameTest() throws Exception {
2479 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2480 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2481 workflowResourceIds.setServiceInstanceId("siId123");
2483 L3Network network = new L3Network();
2484 network.setNetworkId("id123");
2485 network.setNetworkName("name123");
2486 network.setModelCustomizationId("9999999");
2487 Optional<L3Network> opNetwork = Optional.of(network);
2489 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2491 this.expectedException.expect(DuplicateNameException.class);
2492 this.expectedException.expectMessage(containsString(
2493 "l3Network with name (name123), same parent and different customization id (9999999) already exists. The name must be unique."));
2495 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2499 public void validateNetworkResourceIdInAAINotGloballyUniqueTest() throws Exception {
2500 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2501 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2502 workflowResourceIds.setServiceInstanceId("siId123");
2504 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2505 .thenReturn(Optional.empty());
2506 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(true);
2508 this.expectedException.expect(DuplicateNameException.class);
2509 this.expectedException.expectMessage(containsString(
2510 "l3Network with name (name123) id (siId123) and different parent relationship already exists. The name must be unique."));
2512 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2516 public void validateVnfResourceIdInAAITest() throws Exception {
2517 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2518 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2519 workflowResourceIds.setServiceInstanceId("siId123");
2520 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2521 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2522 workflowResourceIds);
2523 assertEquals("generatedId123", id);
2527 public void validateVnfResourceIdInAAISameModelCustomizationIdTest() throws Exception {
2528 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2529 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2530 workflowResourceIds.setServiceInstanceId("siId123");
2532 GenericVnf vnf = new GenericVnf();
2533 vnf.setVnfId("id123");
2534 vnf.setVnfName("vnfName123");
2535 vnf.setModelCustomizationId("1234567");
2536 Optional<GenericVnf> opVnf = Optional.of(vnf);
2538 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2539 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2540 workflowResourceIds);
2541 assertEquals("id123", id);
2545 public void validateVnfResourceIdInAAIDiffModelCustomizationIdTest() throws Exception {
2546 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2547 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2548 workflowResourceIds.setServiceInstanceId("siId123");
2550 GenericVnf vnf = new GenericVnf();
2551 vnf.setVnfId("id123");
2552 vnf.setVnfName("vnfName123");
2553 vnf.setModelCustomizationId("9999999");
2554 Optional<GenericVnf> opVnf = Optional.of(vnf);
2556 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2558 this.expectedException.expect(DuplicateNameException.class);
2559 this.expectedException.expectMessage(containsString(
2560 "generic-vnf with name (vnfName123), same parent and different customization id (9999999) already exists. The name must be unique."));
2562 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2566 public void validateVnfResourceIdInAAINotGloballyUniqueTest() throws Exception {
2567 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2568 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2569 workflowResourceIds.setServiceInstanceId("siId123");
2572 GenericVnf vnf = new GenericVnf();
2573 vnf.setVnfId("id123");
2574 vnf.setVnfName("vnfName123");
2575 GenericVnfs genericVnfs = new GenericVnfs();
2576 genericVnfs.getGenericVnf().add(vnf);
2578 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2579 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName123")).thenReturn(genericVnfs);
2581 this.expectedException.expect(DuplicateNameException.class);
2582 this.expectedException.expectMessage(containsString(
2583 "generic-vnf with name (vnfName123) id (id123) and different parent relationship already exists. The name must be unique."));
2585 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2589 public void validateVfModuleResourceIdTest() throws Exception {
2590 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2591 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2592 workflowResourceIds.setVnfId("vnfId123");
2594 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2595 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(false);
2597 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2598 workflowResourceIds);
2599 assertEquals("generatedId123", id);
2603 public void validateVfModuleResourceIdSameModelCustIdTest() throws Exception {
2604 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2605 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2606 workflowResourceIds.setVnfId("vnfId123");
2608 VfModules vfModules = new VfModules();
2609 VfModule vfModule = new VfModule();
2610 vfModule.setVfModuleId("id123");
2611 vfModule.setVfModuleName("name123");
2612 vfModule.setModelCustomizationId("1234567");
2613 vfModules.getVfModule().add(vfModule);
2615 GenericVnf vnf = new GenericVnf();
2616 vnf.setVnfId("id123");
2617 vnf.setVnfName("vnfName123");
2618 vnf.setVfModules(vfModules);
2620 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2622 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2623 workflowResourceIds);
2624 assertEquals("id123", id);
2628 public void validateVfModuleResourceIdDifferentModelCustIdTest() 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("9999999");
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 this.expectedException.expect(DuplicateNameException.class);
2648 this.expectedException.expectMessage(containsString(
2649 "vfModule with name (name123), same parent and different customization id (1234567) already exists. The name must be unique."));
2651 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2656 public void validateVfModuleResourceIdNotGloballyUniqueTest() throws Exception {
2657 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2658 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2659 workflowResourceIds.setVnfId("vnfId123");
2661 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2662 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(true);
2664 this.expectedException.expect(DuplicateNameException.class);
2665 this.expectedException
2666 .expectMessage(containsString("vfModule with name name123 already exists. The name must be unique."));
2668 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2672 public void validateVolumeGroupResourceIdInAAITest() throws Exception {
2673 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2674 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2675 workflowResourceIds.setVnfId("vnfId123");
2677 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(Optional.empty());
2678 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(false);
2680 String id = workflowAction.validateVolumeGroupResourceIdInAAI("generatedId123", "name123", reqDetails,
2681 workflowResourceIds);
2682 assertEquals("generatedId123", id);
2686 public void validateVolumeGroupResourceIdInAAISameModelCustIdTest() throws Exception {
2687 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2688 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2689 workflowResourceIds.setServiceInstanceId("siId123");
2690 workflowResourceIds.setVnfId("vnfId123");
2692 VolumeGroup volumeGroup = new VolumeGroup();
2693 volumeGroup.setVolumeGroupId("id123");
2694 volumeGroup.setVolumeGroupName("name123");
2695 volumeGroup.setVfModuleModelCustomizationId("1234567");
2697 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2699 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2700 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2701 reqDetails, workflowResourceIds);
2703 assertEquals("id123", id);
2707 public void validateVolumeGroupResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2708 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2709 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2710 workflowResourceIds.setServiceInstanceId("siId123");
2711 workflowResourceIds.setVnfId("vnfId123");
2713 VolumeGroup volumeGroup = new VolumeGroup();
2714 volumeGroup.setVolumeGroupId("id123");
2715 volumeGroup.setVolumeGroupName("name123");
2716 volumeGroup.setVfModuleModelCustomizationId("9999999");
2718 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2720 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2722 this.expectedException.expect(DuplicateNameException.class);
2723 this.expectedException.expectMessage(
2724 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2726 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2727 workflowResourceIds);
2731 public void validateVolumeGroupResourceIdInAAINotGloballyUniqueTest() throws Exception {
2732 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2733 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2734 workflowResourceIds.setVnfId("vnfId123");
2736 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(Optional.empty());
2737 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(true);
2739 this.expectedException.expect(DuplicateNameException.class);
2740 this.expectedException.expectMessage(
2741 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2743 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2744 workflowResourceIds);
2748 public void validateConfigurationResourceIdInAAITest() throws Exception {
2749 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2750 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2751 workflowResourceIds.setServiceInstanceId("siId123");
2753 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2754 .thenReturn(Optional.empty());
2755 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2757 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2758 workflowResourceIds);
2759 assertEquals("generatedId123", id);
2763 public void validateConfigurationResourceIdInAAISameModelCustIdTest() throws Exception {
2764 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2765 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2766 workflowResourceIds.setServiceInstanceId("siId123");
2768 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2769 configuration.setConfigurationId("id123");
2770 configuration.setConfigurationName("name123");
2771 configuration.setModelCustomizationId("1234567");
2772 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2774 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2775 .thenReturn(opConfiguration);
2776 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2778 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2779 workflowResourceIds);
2780 assertEquals("id123", id);
2784 public void validateConfigurationResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2785 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2786 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2787 workflowResourceIds.setServiceInstanceId("siId123");
2789 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2790 configuration.setConfigurationId("id123");
2791 configuration.setConfigurationName("name123");
2792 configuration.setModelCustomizationId("9999999");
2793 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2795 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2796 .thenReturn(opConfiguration);
2797 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2799 this.expectedException.expect(DuplicateNameException.class);
2800 this.expectedException.expectMessage(containsString(
2801 "configuration with name (name123), same parent and different customization id (id123) already exists. The name must be unique."));
2803 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2804 workflowResourceIds);
2808 public void validateConfigurationResourceIdInAAINotGloballyUniqueTest() throws Exception {
2809 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2810 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2811 workflowResourceIds.setServiceInstanceId("siId123");
2813 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2814 .thenReturn(Optional.empty());
2815 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(true);
2817 this.expectedException.expect(DuplicateNameException.class);
2818 this.expectedException.expectMessage(
2819 containsString("configuration with name name123 already exists. The name must be unique."));
2821 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2822 workflowResourceIds);
2826 public void handleRuntimeExceptionTest() {
2827 execution.setVariable("BPMN_javaExpMsg", "test runtime error message");
2828 execution.setVariable("testProcessKey", "testProcessKeyValue");
2830 workflowAction.handleRuntimeException(execution);
2831 } catch (BpmnError wfe) {
2832 assertEquals("MSOWorkflowException", wfe.getErrorCode());
2838 public void traverseCatalogDbServiceMultipleNetworkTest() throws IOException, VrfBondingServiceException {
2839 execution.setVariable("testProcessKey", "testProcessKeyValue");
2840 Service service = new Service();
2841 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
2842 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
2843 networkCust.setModelCustomizationUUID("123");
2844 networkCustomizations.add(networkCust);
2845 service.setNetworkCustomizations(networkCustomizations);
2846 NetworkCollectionResourceCustomization collectionResourceCustomization =
2847 new NetworkCollectionResourceCustomization();
2848 collectionResourceCustomization.setModelCustomizationUUID("123");
2849 CollectionResource collectionResource = new CollectionResource();
2850 collectionResource.setToscaNodeType("NetworkCollection");
2851 InstanceGroup instanceGroup = new InstanceGroup();
2852 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
2853 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
2854 new CollectionResourceInstanceGroupCustomization();
2855 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
2856 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
2857 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
2858 collectionResource.setInstanceGroup(instanceGroup);
2859 collectionResourceCustomization.setCollectionResource(collectionResource);;
2860 service.setModelUUID("abc");
2861 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2862 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2863 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
2864 doReturn(collectionResourceCustomization).when(catalogDbClient)
2865 .getNetworkCollectionResourceCustomizationByID("123");
2866 String bpmnRequest = new String(Files
2867 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
2868 ObjectMapper mapper = new ObjectMapper();
2869 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
2870 List<Resource> resourceCounter = new ArrayList<>();
2871 thrown.expect(BpmnError.class);
2872 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
2873 workflowAction.traverseCatalogDbService(execution, sIRequest, resourceCounter, aaiResourceIds);
2877 public void sortVfModulesByBaseFirstTest() {
2878 List<Resource> resources = new ArrayList<>();
2879 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2880 resource1.setBaseVfModule(false);
2881 resources.add(resource1);
2882 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2883 resource2.setBaseVfModule(false);
2884 resources.add(resource2);
2885 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
2886 resource3.setBaseVfModule(true);
2887 resources.add(resource3);
2888 List<Resource> result = workflowAction.sortVfModulesByBaseFirst(resources);
2889 assertEquals("333", result.get(0).getResourceId());
2890 assertEquals("222", result.get(1).getResourceId());
2891 assertEquals("111", result.get(2).getResourceId());
2895 public void sortVfModulesByBaseLastTest() {
2896 List<Resource> resources = new ArrayList<>();
2897 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2898 resource1.setBaseVfModule(true);
2899 resources.add(resource1);
2900 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2901 resource2.setBaseVfModule(false);
2902 resources.add(resource2);
2903 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
2904 resource3.setBaseVfModule(false);
2905 resources.add(resource3);
2906 List<Resource> result = workflowAction.sortVfModulesByBaseLast(resources);
2907 assertEquals("333", result.get(0).getResourceId());
2908 assertEquals("222", result.get(1).getResourceId());
2909 assertEquals("111", result.get(2).getResourceId());
2913 public void findCatalogNetworkCollectionTest() {
2914 Service service = new Service();
2915 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
2916 networkCustomization.setModelCustomizationUUID("123");
2917 service.getCollectionResourceCustomizations().add(networkCustomization);
2918 doReturn(networkCustomization).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
2919 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
2920 assertNotNull(customization);
2924 public void findCatalogNetworkCollectionEmptyTest() {
2925 Service service = new Service();
2926 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
2927 networkCustomization.setModelCustomizationUUID("123");
2928 service.getCollectionResourceCustomizations().add(networkCustomization);
2929 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
2930 assertNull(customization);
2934 public void findCatalogNetworkCollectionMoreThanOneTest() {
2935 Service service = new Service();
2936 NetworkCollectionResourceCustomization networkCustomization1 = new NetworkCollectionResourceCustomization();
2937 networkCustomization1.setModelCustomizationUUID("123");
2938 NetworkCollectionResourceCustomization networkCustomization2 = new NetworkCollectionResourceCustomization();
2939 networkCustomization2.setModelCustomizationUUID("321");
2940 service.getCollectionResourceCustomizations().add(networkCustomization1);
2941 service.getCollectionResourceCustomizations().add(networkCustomization2);
2942 doReturn(networkCustomization1).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
2943 doReturn(networkCustomization2).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("321");
2944 workflowAction.findCatalogNetworkCollection(execution, service);
2945 assertEquals("Found multiple Network Collections in the Service model, only one per Service is supported.",
2946 execution.getVariable("WorkflowActionErrorMessage"));
2950 public void verifyLackOfNullPointerExceptionForNullResource() {
2951 ExecuteBuildingBlock result = null;
2953 result = workflowAction.buildExecuteBuildingBlock(new OrchestrationFlow(), null, null, null, null, null,
2954 false, null, null, null, false, null, null, true);
2955 } catch (NullPointerException e) {
2956 fail("NullPointerException should not be thrown when 'resource' is null");
2958 assertNotNull(result);
2962 public void traverseAAIServiceTest() {
2963 List<Resource> resourceCounter = new ArrayList<>();
2964 String resourceId = "si0";
2965 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
2967 ServiceInstance serviceInstanceAAI = new ServiceInstance();
2968 serviceInstanceAAI.setServiceInstanceId(resourceId);
2970 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstance = setServiceInstance();
2978 Configuration config = new Configuration();
2979 config.setConfigurationId("testConfigurationId2");
2980 serviceInstance.getConfigurations().add(config);
2982 Relationship relationship1 = new Relationship();
2983 relationship1.setRelatedTo("vnfc");
2984 RelationshipList relationshipList1 = new RelationshipList();
2985 relationshipList1.getRelationship().add(relationship1);
2987 Relationship relationship2 = new Relationship();
2988 relationship2.setRelatedTo("vpn-binding");
2989 RelationshipList relationshipList2 = new RelationshipList();
2990 relationshipList2.getRelationship().add(relationship2);
2992 org.onap.aai.domain.yang.Configuration aaiConfiguration1 = new org.onap.aai.domain.yang.Configuration();
2993 aaiConfiguration1.setConfigurationId("testConfigurationId");
2994 aaiConfiguration1.setRelationshipList(relationshipList1);
2996 org.onap.aai.domain.yang.Configuration aaiConfiguration2 = new org.onap.aai.domain.yang.Configuration();
2997 aaiConfiguration2.setConfigurationId("testConfigurationId2");
2998 aaiConfiguration2.setRelationshipList(relationshipList1);
3001 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById(resourceId);
3002 doReturn(serviceInstance).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
3003 doReturn(Optional.of(aaiConfiguration1)).when(aaiConfigurationResources)
3004 .getConfiguration("testConfigurationId");
3005 doReturn(Optional.of(aaiConfiguration2)).when(aaiConfigurationResources)
3006 .getConfiguration("testConfigurationId2");
3007 workflowAction.traverseAAIService(execution, resourceCounter, resourceId, aaiResourceIds);
3008 assertEquals(8, resourceCounter.size());
3009 assertTrue(resourceCounter.get(2).isBaseVfModule());
3010 assertThat(aaiResourceIds, sameBeanAs(getExpectedResourceIds()));
3011 } catch (Exception e) {
3012 fail("Unexpected exception was thrown.");
3016 private List<Pair<WorkflowType, String>> getExpectedResourceIds() {
3017 List<Pair<WorkflowType, String>> resourceIds = new ArrayList<>();
3018 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VNF, "testVnfId1"));
3019 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VFMODULE, "testVfModuleId1"));
3020 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VOLUMEGROUP, "testVolumeGroupId1"));
3021 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORK, "testNetworkId1"));
3022 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORKCOLLECTION, "testId"));
3023 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId"));
3024 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId2"));
3028 private List<OrchestrationFlow> createFlowList(String... flowNames) {
3029 List<OrchestrationFlow> result = new ArrayList<>();
3030 for (String flowName : flowNames) {
3031 OrchestrationFlow orchFlow = new OrchestrationFlow();
3032 orchFlow.setFlowName(flowName);
3033 result.add(orchFlow);
3038 private void assertEqualsBulkFlowName(List<ExecuteBuildingBlock> ebbs, String... flowNames) {
3039 for (int i = 0; i < ebbs.size(); i++) {
3040 assertEquals(ebbs.get(i).getBuildingBlock().getBpmnFlowName(), flowNames[i]);