2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (c) 2019 Samsung
8 * ================================================================================
9 * Modifications Copyright (c) 2020 Nokia
10 * ================================================================================
11 * Licensed under the Apache License, Version 2.0 (the "License");
12 * you may not use this file except in compliance with the License.
13 * You may obtain a copy of the License at
15 * http://www.apache.org/licenses/LICENSE-2.0
17 * Unless required by applicable law or agreed to in writing, software
18 * distributed under the License is distributed on an "AS IS" BASIS,
19 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 * See the License for the specific language governing permissions and
21 * limitations under the License.
22 * ============LICENSE_END=========================================================
25 package org.onap.so.bpmn.infrastructure.workflow.tasks;
27 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
28 import static org.hamcrest.CoreMatchers.containsString;
29 import static org.hamcrest.CoreMatchers.equalTo;
30 import static org.junit.Assert.assertEquals;
31 import static org.junit.Assert.assertFalse;
32 import static org.junit.Assert.assertNotNull;
33 import static org.junit.Assert.assertNull;
34 import static org.junit.Assert.assertThat;
35 import static org.junit.Assert.assertTrue;
36 import static org.junit.Assert.fail;
37 import static org.mockito.ArgumentMatchers.any;
38 import static org.mockito.ArgumentMatchers.anyObject;
39 import static org.mockito.ArgumentMatchers.anyString;
40 import static org.mockito.ArgumentMatchers.eq;
41 import static org.mockito.ArgumentMatchers.isA;
42 import static org.mockito.Mockito.doReturn;
43 import static org.mockito.Mockito.doThrow;
44 import static org.mockito.Mockito.when;
45 import com.fasterxml.jackson.databind.DeserializationFeature;
46 import com.fasterxml.jackson.databind.ObjectMapper;
47 import java.io.IOException;
48 import java.net.MalformedURLException;
49 import java.nio.file.Files;
50 import java.nio.file.Paths;
51 import java.util.ArrayList;
52 import java.util.Arrays;
53 import java.util.HashMap;
54 import java.util.List;
56 import java.util.Optional;
57 import java.util.UUID;
58 import org.camunda.bpm.engine.delegate.BpmnError;
59 import org.camunda.bpm.engine.delegate.DelegateExecution;
60 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
61 import org.javatuples.Pair;
62 import org.junit.Before;
63 import org.junit.Ignore;
64 import org.junit.Rule;
65 import org.junit.Test;
66 import org.junit.rules.ExpectedException;
67 import org.mockito.InjectMocks;
68 import org.mockito.Mock;
69 import org.mockito.Spy;
70 import org.onap.aai.domain.yang.GenericVnf;
71 import org.onap.aai.domain.yang.GenericVnfs;
72 import org.onap.aai.domain.yang.L3Network;
73 import org.onap.aai.domain.yang.Relationship;
74 import org.onap.aai.domain.yang.RelationshipList;
75 import org.onap.aai.domain.yang.ServiceInstance;
76 import org.onap.aai.domain.yang.ServiceInstances;
77 import org.onap.aai.domain.yang.VfModule;
78 import org.onap.aai.domain.yang.VfModules;
79 import org.onap.aai.domain.yang.VolumeGroup;
80 import org.onap.aaiclient.client.aai.entities.AAIResultWrapper;
81 import org.onap.aaiclient.client.aai.entities.Relationships;
82 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
83 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
84 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder;
85 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder.Types;
86 import org.onap.so.bpmn.BaseTaskTest;
87 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
88 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
89 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
90 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
91 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
92 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.DuplicateNameException;
93 import org.onap.so.client.orchestration.AAIEntityNotFoundException;
94 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
95 import org.onap.so.db.catalog.beans.CollectionResource;
96 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
97 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
98 import org.onap.so.db.catalog.beans.ConfigurationResource;
99 import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
100 import org.onap.so.db.catalog.beans.CvnfcCustomization;
101 import org.onap.so.db.catalog.beans.HeatEnvironment;
102 import org.onap.so.db.catalog.beans.HeatTemplate;
103 import org.onap.so.db.catalog.beans.InstanceGroup;
104 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
105 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
106 import org.onap.so.db.catalog.beans.Service;
107 import org.onap.so.db.catalog.beans.VfModuleCustomization;
108 import org.onap.so.db.catalog.beans.macro.NorthBoundRequest;
109 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
110 import org.onap.so.serviceinstancebeans.ModelInfo;
111 import org.onap.so.serviceinstancebeans.RequestDetails;
112 import org.onap.so.serviceinstancebeans.RequestParameters;
113 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
114 import org.onap.so.serviceinstancebeans.SubscriberInfo;
115 import org.springframework.core.env.Environment;
117 public class WorkflowActionTest extends BaseTaskTest {
119 private static final String MACRO_ACTIVATE_DELETE_UNASSIGN_JSON = "Macro/ServiceMacroActivateDeleteUnassign.json";
120 private static final String MACRO_ASSIGN_JSON = "Macro/ServiceMacroAssign.json";
121 private static final String MACRO_ASSIGN_NO_CLOUD_JSON = "Macro/ServiceMacroAssignNoCloud.json";
122 private static final String VF_MODULE_CREATE_WITH_FABRIC_JSON = "VfModuleCreateWithFabric.json";
123 private static final String VF_MODULE_REPLACE_REBUILD_VOLUME_GROUPS_JSON =
124 "VfModuleReplaceRebuildVolumeGroups.json";
125 private static final String MACRO_CREATE_NETWORK_COLLECTION_JSON = "Macro/CreateNetworkCollection.json";
126 private static final String MACRO_VNF_MACRO_REPLACE_JSON = "Macro/VnfMacroReplace.json";
129 protected Environment environment;
131 protected WorkflowAction workflowAction;
132 private DelegateExecution execution;
136 protected WorkflowAction SPY_workflowAction;
139 public ExpectedException thrown = ExpectedException.none();
141 private String RESOURCE_PATH = "src/test/resources/__files/";
143 private List<OrchestrationFlow> replaceVfModuleOrchFlows =
144 createFlowList("DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
145 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
146 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
147 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
148 private List<OrchestrationFlow> replaceRetainAssignmentsVfModuleOrchFlows = createFlowList("DeactivateVfModuleBB",
149 "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "UnassignVolumeGroupBB",
150 "AssignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
151 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
152 private List<OrchestrationFlow> replaceVfModuleWithFabricOrchFlows = createFlowList("DeleteFabricConfigurationBB",
153 "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB",
154 "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB", "AssignVfModuleBB",
155 "CreateVfModuleBB", "ActivateVfModuleBB", "AddFabricConfigurationBB", "CreateVolumeGroupBB",
156 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
159 public void before() throws Exception {
160 execution = new DelegateExecutionFake();
161 org.onap.aai.domain.yang.ServiceInstance servInstance = new org.onap.aai.domain.yang.ServiceInstance();
162 servInstance.setServiceInstanceId("TEST");
163 when(bbSetupUtils.getAAIServiceInstanceByName(anyString(), anyObject())).thenReturn(servInstance);
164 workflowAction.setBbInputSetupUtils(bbSetupUtils);
165 workflowAction.setBbInputSetup(bbInputSetup);
172 public void selectExecutionListALaCarteNetworkCreateTest() throws Exception {
173 String gAction = "createInstance";
174 String resource = "Network";
175 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
176 initExecution(gAction, bpmnRequest, true);
177 execution.setVariable("requestUri", "v6/networks/123");
179 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
180 List<OrchestrationFlow> orchFlows =
181 createFlowList("AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
182 northBoundRequest.setOrchestrationFlowList(orchFlows);
184 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
185 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
186 workflowAction.selectExecutionList(execution);
187 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
188 assertEqualsBulkFlowName(ebbs, "AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
192 public void selectExecutionListALaCarteNetworkDeleteTest() throws Exception {
193 String gAction = "deleteInstance";
194 String resource = "Network";
195 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
196 initExecution(gAction, bpmnRequest, true);
197 execution.setVariable("requestUri", "v6/networks/123");
199 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
200 List<OrchestrationFlow> orchFlows =
201 createFlowList("DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
202 northBoundRequest.setOrchestrationFlowList(orchFlows);
204 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
205 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
206 workflowAction.selectExecutionList(execution);
207 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
208 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
212 public void selectExecutionListALaCarteServiceCreateTest() throws Exception {
213 String gAction = "createInstance";
214 String resource = "Service";
215 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
216 initExecution(gAction, bpmnRequest, true);
217 execution.setVariable("requestUri", "v6/serviceInstances/123");
220 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
221 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "ActivateServiceInstanceBB");
222 northBoundRequest.setOrchestrationFlowList(orchFlows);
224 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
225 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
226 workflowAction.selectExecutionList(execution);
227 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
228 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
232 public void selectExecutionListDuplicateNameExceptionTest() throws Exception {
233 String gAction = "createInstance";
234 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
235 initExecution(gAction, bpmnRequest, true);
236 execution.setVariable("requestUri", "v6/serviceInstances");
238 doThrow(new DuplicateNameException(
239 "serviceInstance with name (instanceName) and different version id (3c40d244-808e-42ca-b09a-256d83d19d0a) already exists. The name must be unique."))
240 .when(SPY_workflowAction).validateResourceIdInAAI(anyString(), eq(WorkflowType.SERVICE),
241 eq("test"), any(RequestDetails.class), any(WorkflowResourceIds.class));
243 SPY_workflowAction.selectExecutionList(execution);
244 assertEquals(execution.getVariable("WorkflowActionErrorMessage"),
245 "Exception while setting execution list. serviceInstance with name (instanceName) and different version id (3c40d244-808e-42ca-b09a-256d83d19d0a) already exists. The name must be unique.");
249 * SERVICE MACRO TESTS
252 public void selectExecutionListServiceMacroAssignTest() throws Exception {
253 String gAction = "assignInstance";
254 String resource = "Service";
255 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
256 initExecution(gAction, bpmnRequest, false);
257 execution.setVariable("requestUri", "v6/serviceInstances/123");
259 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
260 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
261 "AssignVolumeGroupBB", "AssignVfModuleBB");
262 northBoundRequest.setOrchestrationFlowList(orchFlows);
264 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
265 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
266 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
267 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
268 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
269 HeatTemplate volumeHeatTemplate = new HeatTemplate();
270 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
271 vfModuleCustomization.setVfModule(vfModule);
273 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
274 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
275 HeatEnvironment heatEnvironment = new HeatEnvironment();
276 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
277 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
278 HeatTemplate moduleHeatTemplate = new HeatTemplate();
279 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
280 vfModuleCustomization2.setVfModule(vfModule2);
282 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
283 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
285 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
286 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
287 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
288 .thenReturn(vfModuleCustomization);
289 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
290 .thenReturn(vfModuleCustomization2);
291 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
292 .thenReturn(vfModuleCustomization3);
293 workflowAction.selectExecutionList(execution);
294 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
295 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
296 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
300 public void selectExecutionListServiceMacroAssignNoCloudTest() throws Exception {
301 String gAction = "assignInstance";
302 String resource = "Service";
303 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_NO_CLOUD_JSON);
304 initExecution(gAction, bpmnRequest, false);
305 execution.setVariable("requestUri", "v6/serviceInstances/123");
307 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
308 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
309 "AssignVolumeGroupBB", "AssignVfModuleBB");
310 northBoundRequest.setOrchestrationFlowList(orchFlows);
312 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
313 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
314 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
315 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
316 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
317 HeatTemplate volumeHeatTemplate = new HeatTemplate();
318 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
319 vfModuleCustomization.setVfModule(vfModule);
321 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
322 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
323 HeatEnvironment heatEnvironment = new HeatEnvironment();
324 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
325 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
326 HeatTemplate moduleHeatTemplate = new HeatTemplate();
327 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
328 vfModuleCustomization2.setVfModule(vfModule2);
330 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
331 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
333 when(environment.getProperty("org.onap.so.cloud-owner")).thenReturn("att-aic");
334 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
335 false, "att-aic")).thenReturn(northBoundRequest);
336 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
337 .thenReturn(vfModuleCustomization);
338 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
339 .thenReturn(vfModuleCustomization2);
340 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
341 .thenReturn(vfModuleCustomization3);
342 workflowAction.selectExecutionList(execution);
343 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
344 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
345 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
349 public void selectExecutionListServiceMacroActivateTest() throws Exception {
350 String gAction = "activateInstance";
351 String resource = "Service";
352 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
353 initExecution(gAction, bpmnRequest, false);
354 execution.setVariable("requestUri", "v6/serviceInstances/si0");
356 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
357 List<OrchestrationFlow> orchFlows =
358 createFlowList("CreateNetworkBB", "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
359 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "ActivateServiceInstanceBB");
360 northBoundRequest.setOrchestrationFlowList(orchFlows);
362 ServiceInstance serviceInstanceAAI = new ServiceInstance();
363 serviceInstanceAAI.setServiceInstanceId("si0");
364 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
365 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
366 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
367 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
368 vnf.setVnfId("vnf0");
370 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
371 vnf.getVfModules().add(vfModule);
372 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
373 vnf.getVfModules().add(vfModule2);
375 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
376 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
377 volumeGroup.setVolumeGroupId("volumeGroup0");
378 vnf.getVolumeGroups().add(volumeGroup);
380 serviceInstanceMSO.getVnfs().add(vnf);
382 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("si0");
383 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
384 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
385 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
386 workflowAction.selectExecutionList(execution);
387 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
388 assertEqualsBulkFlowName(ebbs, "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
389 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
390 "ActivateServiceInstanceBB");
391 assertEquals("volumeGroup0", ebbs.get(0).getWorkflowResourceIds().getVolumeGroupId());
392 assertEquals("volumeGroup0", ebbs.get(1).getWorkflowResourceIds().getVolumeGroupId());
393 assertEquals("testVfModuleId1", ebbs.get(2).getWorkflowResourceIds().getVfModuleId());
394 assertEquals("testVfModuleId2", ebbs.get(3).getWorkflowResourceIds().getVfModuleId());
395 assertEquals("testVfModuleId1", ebbs.get(4).getWorkflowResourceIds().getVfModuleId());
396 assertEquals("testVfModuleId2", ebbs.get(5).getWorkflowResourceIds().getVfModuleId());
397 assertEquals("vnf0", ebbs.get(6).getWorkflowResourceIds().getVnfId());
398 assertEquals("si0", ebbs.get(7).getWorkflowResourceIds().getServiceInstanceId());
402 public void selectExecutionListServiceMacroDeactivateTest() throws Exception {
403 String gAction = "deactivateInstance";
404 String resource = "Service";
405 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
406 initExecution(gAction, bpmnRequest, false);
407 execution.setVariable("requestUri", "v6/serviceInstances/123");
409 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
410 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateServiceInstanceBB");
411 northBoundRequest.setOrchestrationFlowList(orchFlows);
413 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
414 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
415 workflowAction.selectExecutionList(execution);
416 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
417 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(), "DeactivateServiceInstanceBB");
421 public void selectExecutionListServiceMacroEmptyServiceTest() throws Exception {
422 String gAction = "createInstance";
423 String resource = "Service";
424 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
425 initExecution(gAction, bpmnRequest, false);
426 execution.setVariable("requestUri", "v6/serviceInstances/123");
428 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
429 northBoundRequest.setIsToplevelflow(true);
430 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
431 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
432 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
433 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
434 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
435 northBoundRequest.setOrchestrationFlowList(orchFlows);
437 Service service = new Service();
438 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
439 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
440 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
441 workflowAction.selectExecutionList(execution);
442 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
443 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
447 public void selectExecutionListServiceMacroCreateJustNetworkTest() throws Exception {
448 String gAction = "createInstance";
449 String resource = "Service";
450 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
451 initExecution(gAction, bpmnRequest, false);
452 execution.setVariable("requestUri", "v6/serviceInstances/123");
454 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
455 northBoundRequest.setIsToplevelflow(true);
456 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
457 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
458 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
459 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
460 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
461 northBoundRequest.setOrchestrationFlowList(orchFlows);
463 Service service = new Service();
464 NetworkResourceCustomization networkCustomization = new NetworkResourceCustomization();
465 networkCustomization.setModelCustomizationUUID("1234");
466 service.getNetworkCustomizations().add(networkCustomization);
467 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
468 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
469 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
470 workflowAction.selectExecutionList(execution);
471 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
472 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignNetworkBB", "CreateNetworkBB",
473 "ActivateNetworkBB", "ActivateServiceInstanceBB");
477 public void selectExecutionListServiceMacroCreateWithNetworkCollectionTest() throws Exception {
478 String gAction = "createInstance";
479 String resource = "Service";
480 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
481 initExecution(gAction, bpmnRequest, false);
482 execution.setVariable("requestUri", "v6/serviceInstances/123");
484 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
485 northBoundRequest.setIsToplevelflow(true);
486 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
487 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
488 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
489 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
490 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
491 northBoundRequest.setOrchestrationFlowList(orchFlows);
493 Service service = new Service();
494 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
495 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
496 networkCust.setModelCustomizationUUID("123");
497 networkCustomizations.add(networkCust);
498 service.setNetworkCustomizations(networkCustomizations);
499 NetworkCollectionResourceCustomization collectionResourceCustomization =
500 new NetworkCollectionResourceCustomization();
501 collectionResourceCustomization.setModelCustomizationUUID("123");
503 CollectionResource collectionResource = new CollectionResource();
504 collectionResource.setToscaNodeType("NetworkCollection");
505 InstanceGroup instanceGroup = new InstanceGroup();
506 instanceGroup.setToscaNodeType("NetworkCollectionResource");
507 instanceGroup.setCollectionNetworkResourceCustomizations(new ArrayList<>());
508 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
509 new CollectionNetworkResourceCustomization();
510 collectionNetworkResourceCust.setModelCustomizationUUID("123");
511 collectionNetworkResourceCust.setNetworkResourceCustomization(collectionResourceCustomization);
512 instanceGroup.getCollectionNetworkResourceCustomizations().add(collectionNetworkResourceCust);
513 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
514 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
515 new CollectionResourceInstanceGroupCustomization();
516 collectionInstanceGroupCustomization.setModelCustomizationUUID("123");
517 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
518 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
519 collectionInstanceGroupCustomization.setInstanceGroup(instanceGroup);
520 collectionInstanceGroupCustomization.setCollectionResourceCust(collectionResourceCustomization);
521 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
522 collectionResource.setInstanceGroup(instanceGroup);
523 collectionResourceCustomization.setCollectionResource(collectionResource);;
524 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
525 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
526 doReturn(collectionResourceCustomization).when(catalogDbClient)
527 .getNetworkCollectionResourceCustomizationByID("123");
528 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
529 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
530 workflowAction.selectExecutionList(execution);
531 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
532 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "CreateNetworkCollectionBB", "AssignNetworkBB",
533 "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
534 "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB",
535 "ActivateServiceInstanceBB");
536 assertEquals("Network id not empty", !ebbs.get(2).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
537 assertEquals("Network id not empty", !ebbs.get(3).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
538 assertEquals("Network id not empty", !ebbs.get(4).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
539 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
540 ebbs.get(2).getWorkflowResourceIds().getNetworkId() == ebbs.get(3).getWorkflowResourceIds()
542 && ebbs.get(3).getWorkflowResourceIds().getNetworkId() == ebbs.get(4).getWorkflowResourceIds()
545 assertEquals("Network id not empty", !ebbs.get(5).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
546 assertEquals("Network id not empty", !ebbs.get(6).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
547 assertEquals("Network id not empty", !ebbs.get(7).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
548 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
549 ebbs.get(5).getWorkflowResourceIds().getNetworkId() == ebbs.get(6).getWorkflowResourceIds()
551 && ebbs.get(6).getWorkflowResourceIds().getNetworkId() == ebbs.get(7).getWorkflowResourceIds()
554 assertEquals("Network id not empty", !ebbs.get(8).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
555 assertEquals("Network id not empty", !ebbs.get(9).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
556 assertEquals("Network id not empty", !ebbs.get(10).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
557 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
558 ebbs.get(8).getWorkflowResourceIds().getNetworkId() == ebbs.get(9).getWorkflowResourceIds()
560 && ebbs.get(9).getWorkflowResourceIds().getNetworkId() == ebbs.get(10).getWorkflowResourceIds()
566 public void selectExecutionListServiceMacroCreateWithUserParams() throws Exception {
567 String gAction = "createInstance";
568 String resource = "Service";
569 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
570 initExecution(gAction, bpmnRequest, false);
571 execution.setVariable("requestUri", "v6/serviceInstances/123");
573 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
574 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
575 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
576 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
577 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
578 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
579 northBoundRequest.setOrchestrationFlowList(orchFlows);
581 Service service = new Service();
582 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
584 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
585 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
586 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
587 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
588 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
589 HeatTemplate volumeHeatTemplate = new HeatTemplate();
590 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
591 vfModuleCustomization.setVfModule(vfModule);
593 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
594 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
595 HeatEnvironment heatEnvironment = new HeatEnvironment();
596 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
597 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
598 HeatTemplate moduleHeatTemplate = new HeatTemplate();
599 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
600 vfModuleCustomization2.setVfModule(vfModule2);
602 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
603 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
605 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
606 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
607 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
608 .thenReturn(vfModuleCustomization);
609 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
610 .thenReturn(vfModuleCustomization2);
611 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
612 .thenReturn(vfModuleCustomization3);
613 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
614 workflowAction.selectExecutionList(execution);
615 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
616 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
617 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB", "CreateVolumeGroupBB",
618 "ActivateVolumeGroupBB", "CreateVfModuleBB", "CreateVfModuleBB", "CreateVfModuleBB",
619 "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
620 "ActivateServiceInstanceBB");
621 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
622 int randomUUIDLength = UUID.randomUUID().toString().length();
623 assertEquals(randomUUIDLength, ebbs.get(1).getWorkflowResourceIds().getVnfId().length());
624 assertEquals(randomUUIDLength, ebbs.get(2).getWorkflowResourceIds().getVolumeGroupId().length());
625 assertEquals(randomUUIDLength, ebbs.get(3).getWorkflowResourceIds().getVfModuleId().length());
626 assertEquals(randomUUIDLength, ebbs.get(4).getWorkflowResourceIds().getVfModuleId().length());
627 assertEquals(randomUUIDLength, ebbs.get(5).getWorkflowResourceIds().getVfModuleId().length());
628 assertEquals(randomUUIDLength, ebbs.get(6).getWorkflowResourceIds().getVolumeGroupId().length());
629 assertEquals(randomUUIDLength, ebbs.get(7).getWorkflowResourceIds().getVolumeGroupId().length());
630 assertEquals(randomUUIDLength, ebbs.get(8).getWorkflowResourceIds().getVfModuleId().length());
631 assertEquals(randomUUIDLength, ebbs.get(9).getWorkflowResourceIds().getVfModuleId().length());
632 assertEquals(randomUUIDLength, ebbs.get(10).getWorkflowResourceIds().getVfModuleId().length());
633 assertEquals(randomUUIDLength, ebbs.get(11).getWorkflowResourceIds().getVfModuleId().length());
634 assertEquals(randomUUIDLength, ebbs.get(12).getWorkflowResourceIds().getVfModuleId().length());
635 assertEquals(randomUUIDLength, ebbs.get(13).getWorkflowResourceIds().getVfModuleId().length());
636 assertEquals(randomUUIDLength, ebbs.get(14).getWorkflowResourceIds().getVnfId().length());
637 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
638 assertEquals(true, execution.getVariable("homing"));
642 public void selectExecutionListServiceMacroDeleteTest() throws Exception {
643 String gAction = "deleteInstance";
644 String resource = "Service";
645 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
646 initExecution(gAction, bpmnRequest, false);
647 execution.setVariable("requestUri", "v6/serviceInstances/123");
649 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
650 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
651 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivatePnfBB",
652 "DeactivateNetworkBB", "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB",
653 "UnassignVfModuleBB", "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB",
654 "UnassignServiceInstanceBB");
655 northBoundRequest.setOrchestrationFlowList(orchFlows);
657 ServiceInstance serviceInstanceAAI = new ServiceInstance();
658 serviceInstanceAAI.setServiceInstanceId("aaisi123");
659 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
660 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
661 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
662 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
663 org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf pnf =
664 new org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf();
665 vnf.setVnfId("vnfId123");
666 pnf.setPnfId("pnfId123");
668 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
669 vnf.getVfModules().add(vfModule);
670 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
671 vnf.getVfModules().add(vfModule2);
673 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
674 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
675 volumeGroup.setVolumeGroupId("vg123");
676 vnf.getVolumeGroups().add(volumeGroup);
678 serviceInstanceMSO.getVnfs().add(vnf);
679 serviceInstanceMSO.getPnfs().add(pnf);
681 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
682 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
683 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
684 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
685 workflowAction.selectExecutionList(execution);
686 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
687 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
688 "DeleteVfModuleBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB",
689 "DeactivatePnfBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB", "UnassignVfModuleBB",
690 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignServiceInstanceBB");
694 public void selectExecutionListServiceMacroDeleteWithPnfTest() throws Exception {
695 String gAction = "deleteInstance";
696 String resource = "Service";
697 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
698 initExecution(gAction, bpmnRequest, false);
699 execution.setVariable("requestUri", "v6/serviceInstances/123");
701 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
702 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
703 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivatePnfBB",
704 "DeactivateNetworkBB", "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB",
705 "UnassignVfModuleBB", "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB",
706 "UnassignServiceInstanceBB");
707 northBoundRequest.setOrchestrationFlowList(orchFlows);
709 ServiceInstance serviceInstanceAAI = new ServiceInstance();
710 serviceInstanceAAI.setServiceInstanceId("aaisi123");
711 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
712 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
713 org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf pnf =
714 new org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf();
715 pnf.setPnfId("pnfId123");
717 serviceInstanceMSO.getPnfs().add(pnf);
719 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
720 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
721 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
722 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
723 workflowAction.selectExecutionList(execution);
724 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
725 assertEqualsBulkFlowName(ebbs, "DeactivatePnfBB", "DeactivateServiceInstanceBB", "UnassignServiceInstanceBB");
729 public void selectExecutionListServiceMacroUnassignTest() throws Exception {
730 String gAction = "unassignInstance";
731 String resource = "Service";
732 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
733 initExecution(gAction, bpmnRequest, false);
734 execution.setVariable("requestUri", "v6/serviceInstances/123");
736 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
737 List<OrchestrationFlow> orchFlows = createFlowList("UnassignVfModuleBB", "UnassignVolumeGroupBB",
738 "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
739 northBoundRequest.setOrchestrationFlowList(orchFlows);
741 ServiceInstance serviceInstanceAAI = new ServiceInstance();
742 serviceInstanceAAI.setServiceInstanceId("aaisi123");
743 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
744 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
745 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
746 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
747 vnf.setVnfId("vnfId123");
749 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
750 vnf.getVfModules().add(vfModule);
751 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
752 vnf.getVfModules().add(vfModule2);
754 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
755 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
756 volumeGroup.setVolumeGroupId("vg123");
757 vnf.getVolumeGroups().add(volumeGroup);
759 serviceInstanceMSO.getVnfs().add(vnf);
761 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
762 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
763 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
764 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
765 workflowAction.selectExecutionList(execution);
766 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
767 assertEqualsBulkFlowName(ebbs, "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
768 "UnassignVnfBB", "UnassignServiceInstanceBB");
772 public void selectExecutionListServiceMacroDeleteNetworkCollectionTest() throws Exception {
773 String gAction = "deleteInstance";
774 String resource = "Service";
775 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
776 initExecution(gAction, bpmnRequest, false);
777 execution.setVariable("requestUri", "v6/serviceInstances/123");
779 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
780 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
781 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
782 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
783 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
784 northBoundRequest.setOrchestrationFlowList(orchFlows);
786 ServiceInstance serviceInstanceAAI = new ServiceInstance();
787 serviceInstanceAAI.setServiceInstanceId("aaisi123");
788 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
789 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
791 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network =
792 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
793 network.setNetworkId("123");
794 serviceInstanceMSO.getNetworks().add(network);
795 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network2 =
796 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
797 network2.setNetworkId("321");
798 serviceInstanceMSO.getNetworks().add(network2);
800 Collection collection = new Collection();
801 serviceInstanceMSO.setCollection(collection);
803 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
804 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
805 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
806 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
807 workflowAction.selectExecutionList(execution);
808 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
809 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
810 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeleteNetworkCollectionBB",
811 "DeactivateServiceInstanceBB", "UnassignServiceInstanceBB");
815 public void selectExecutionListVnfMacroRecreateTest() throws Exception {
816 String gAction = "recreateInstance";
817 String resource = "Vnf";
818 String bpmnRequest = readBpmnRequestFromFile(MACRO_VNF_MACRO_REPLACE_JSON);
819 initExecution(gAction, bpmnRequest, false);
820 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/recreate");
821 execution.setVariable("serviceInstanceId", "123");
822 execution.setVariable("vnfId", "1234");
824 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
825 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
826 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
827 "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB",
828 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
829 "AAIUnsetVnfInMaintBB");
830 northBoundRequest.setOrchestrationFlowList(orchFlows);
832 ServiceInstance serviceInstanceAAI = new ServiceInstance();
833 serviceInstanceAAI.setServiceInstanceId("123");
834 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
835 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
836 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
837 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
838 vnf.setVnfId("1234");
840 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
841 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
842 vfModule.setVfModuleId("vfModule1");
843 vnf.getVfModules().add(vfModule);
844 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
845 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
846 vfModule2.setVfModuleId("vfModule2");
847 vnf.getVfModules().add(vfModule2);
849 serviceInstanceMSO.getVnfs().add(vnf);
851 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
852 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
853 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
854 false, "cloud-owner")).thenReturn(northBoundRequest);
855 workflowAction.selectExecutionList(execution);
856 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
857 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateVfModuleBB",
858 "DeactivateVfModuleBB", "DeleteVfModuleBB", "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB",
859 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
860 "AAIUnsetVnfInMaintBB");
864 public void selectExecutionListVnfMacroReplaceTest() throws Exception {
865 String gAction = "replaceInstance";
866 String resource = "Vnf";
867 String bpmnRequest = readBpmnRequestFromFile(MACRO_VNF_MACRO_REPLACE_JSON);
868 initExecution(gAction, bpmnRequest, false);
869 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/replace");
870 execution.setVariable("serviceInstanceId", "123");
871 execution.setVariable("vnfId", "1234");
873 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
874 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
875 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
876 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
877 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB",
878 "ChangeModelVnfBB", "ActivateVnfBB", "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB",
879 "AAIUnsetVnfInMaintBB");
880 northBoundRequest.setOrchestrationFlowList(orchFlows);
882 ServiceInstance serviceInstanceAAI = new ServiceInstance();
883 serviceInstanceAAI.setServiceInstanceId("123");
884 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
885 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
886 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
887 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
888 vnf.setVnfId("1234");
889 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
890 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
891 vfModule.setVfModuleId("vfModule1");
892 vnf.getVfModules().add(vfModule);
893 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
894 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
895 vfModule2.setVfModuleId("vfModule2");
896 vnf.getVfModules().add(vfModule2);
897 serviceInstanceMSO.getVnfs().add(vnf);
898 VfModule vfModuleAAI = new VfModule();
899 vfModuleAAI.setVfModuleId("vfModule2");
900 RelationshipList relationshipList = new RelationshipList();
901 Relationship relationship = new Relationship();
902 relationshipList.getRelationship().add(relationship);
903 vfModuleAAI.setRelationshipList(relationshipList);
904 Relationships relationships = new Relationships("abc");
905 Configuration config = new Configuration();
906 config.setConfigurationId("configId");
907 Optional<Configuration> configOp = Optional.of(config);
908 Optional<Relationships> relationshipsOp = Optional.of(relationships);
910 doReturn(relationshipsOp).when(workflowActionUtils).extractRelationshipsVnfc(isA(Relationships.class));
911 doReturn(configOp).when(workflowActionUtils).extractRelationshipsConfiguration(isA(Relationships.class));
912 doReturn(vfModuleAAI).when(bbSetupUtils).getAAIVfModule("1234", "vfModule2");
913 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
914 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
915 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
916 false, "cloud-owner")).thenReturn(northBoundRequest);
917 workflowAction.selectExecutionList(execution);
918 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
919 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateFabricConfigurationBB",
920 "UnassignFabricConfigurationBB", "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
921 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "ChangeModelVfModuleBB",
922 "CreateVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB",
923 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ChangeModelVnfBB", "ActivateVnfBB",
924 "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
925 for (ExecuteBuildingBlock executeBuildingBlock : ebbs) {
926 assertEquals("123", executeBuildingBlock.getWorkflowResourceIds().getServiceInstanceId());
932 public void selectExecutionListNetworkCollectionMacroCreate() throws Exception {
933 String gAction = "createInstance";
934 String resource = "NetworkCollection";
935 String bpmnRequest = readBpmnRequestFromFile(MACRO_CREATE_NETWORK_COLLECTION_JSON);
936 initExecution(gAction, bpmnRequest, false);
937 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
939 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
940 List<OrchestrationFlow> orchFlows = createFlowList("CreateNetworkCollectionBB", "AssignNetworkBB",
941 "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB");
942 northBoundRequest.setOrchestrationFlowList(orchFlows);
944 Service service = new Service();
945 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
946 CollectionResource collectionResource = new CollectionResource();
947 collectionResource.setToscaNodeType("Data NetworkCollection Data");
948 collectionResourceCustomization.setCollectionResource(collectionResource);
949 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
951 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
952 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
953 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
954 workflowAction.selectExecutionList(execution);
955 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
956 assertEqualsBulkFlowName(ebbs, "CreateNetworkCollectionBB", "AssignNetworkBB", "CreateNetworkBB",
957 "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
958 "ActivateNetworkCollectionBB");
963 public void selectExecutionListNetworkCollectionMacroDelete() throws Exception {
964 String gAction = "deleteInstance";
965 String resource = "NetworkCollection";
966 String bpmnRequest = readBpmnRequestFromFile(MACRO_CREATE_NETWORK_COLLECTION_JSON);
967 initExecution(gAction, bpmnRequest, false);
968 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
970 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
971 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateNetworkBB", "DeleteNetworkBB",
972 "UnassignNetworkBB", "DeactivateNetworkCollectionBB", "DeleteNetworkCollectionBB");
973 northBoundRequest.setOrchestrationFlowList(orchFlows);
975 Service service = new Service();
976 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
977 CollectionResource collectionResource = new CollectionResource();
978 collectionResource.setToscaNodeType("Data NetworkCollection Data");
979 collectionResourceCustomization.setCollectionResource(collectionResource);
980 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
982 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
983 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
984 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
985 workflowAction.selectExecutionList(execution);
986 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
987 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
988 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeactivateNetworkCollectionBB",
989 "DeleteNetworkCollectionBB");
993 public void selectExecutionListALaCarteVfModuleNoFabricCreateTest() throws Exception {
994 String gAction = "createInstance";
995 String resource = "VfModule";
996 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
997 initExecution(gAction, bpmnRequest, true);
998 execution.setVariable("requestUri",
999 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1001 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1002 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1003 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1004 northBoundRequest.setOrchestrationFlowList(orchFlows);
1006 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1007 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1008 workflowAction.selectExecutionList(execution);
1009 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1010 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB");
1014 public void selectExecutionListALaCarteVfModuleFabricCreateTest() throws Exception {
1015 String gAction = "createInstance";
1016 String resource = "VfModule";
1017 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1018 initExecution(gAction, bpmnRequest, true);
1019 execution.setVariable("requestUri",
1020 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1022 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1023 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1024 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1025 northBoundRequest.setOrchestrationFlowList(orchFlows);
1027 List<CvnfcCustomization> cvnfcCustomizations = new ArrayList<CvnfcCustomization>();
1028 CvnfcCustomization cvnfcCustomization = new CvnfcCustomization();
1029 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1030 new CvnfcConfigurationCustomization();
1031 ConfigurationResource configurationResource = new ConfigurationResource();
1032 configurationResource.setToscaNodeType("FabricConfiguration");
1033 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1034 vnfVfmoduleCvnfcConfigurationCustomization.setModelInstanceName("modelInstanceName1");
1035 vnfVfmoduleCvnfcConfigurationCustomization.setCvnfcCustomization(cvnfcCustomization);
1036 List<CvnfcConfigurationCustomization> custSet = new ArrayList<CvnfcConfigurationCustomization>();
1037 custSet.add(vnfVfmoduleCvnfcConfigurationCustomization);
1038 cvnfcCustomization.setCvnfcConfigurationCustomization(custSet);
1039 cvnfcCustomization.setDescription("description");
1040 cvnfcCustomizations.add(cvnfcCustomization);
1042 CvnfcCustomization cvnfcCustomization2 = new CvnfcCustomization();
1043 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization2 =
1044 new CvnfcConfigurationCustomization();
1045 ConfigurationResource configurationResource2 = new ConfigurationResource();
1046 configurationResource2.setToscaNodeType("FabricConfiguration");
1047 vnfVfmoduleCvnfcConfigurationCustomization2.setConfigurationResource(configurationResource2);
1048 vnfVfmoduleCvnfcConfigurationCustomization2.setModelInstanceName("modelInstanceName2");
1049 vnfVfmoduleCvnfcConfigurationCustomization2.setCvnfcCustomization(cvnfcCustomization2);
1050 List<CvnfcConfigurationCustomization> custSet2 = new ArrayList<CvnfcConfigurationCustomization>();
1051 custSet2.add(vnfVfmoduleCvnfcConfigurationCustomization2);
1052 cvnfcCustomization2.setCvnfcConfigurationCustomization(custSet2);
1053 cvnfcCustomization2.setDescription("description2");
1054 cvnfcCustomizations.add(cvnfcCustomization2);
1056 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1057 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1058 // when(catalogDbClient.getCvnfcCustomizationByVnfCustomizationUUIDAndVfModuleCustomizationUUID("fc25201d-36d6-43a3-8d39-fdae88e526ae",
1059 // "9a6d01fd-19a7-490a-9800-460830a12e0b")).thenReturn(cvnfcCustomizations);
1060 workflowAction.selectExecutionList(execution);
1061 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1062 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1063 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "AssignFabricConfigurationBB",
1064 "ActivateFabricConfigurationBB");
1068 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceTest() throws Exception {
1069 String gAction = "replaceInstance";
1070 String resource = "VfModule";
1071 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1072 initExecution(gAction, bpmnRequest, true);
1073 execution.setVariable("requestUri",
1074 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1076 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1077 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1078 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1079 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1080 workflowAction.selectExecutionList(execution);
1081 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1083 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1084 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1085 "ChangeModelServiceInstanceBB");
1089 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1090 String gAction = "replaceInstanceRetainAssignments";
1091 String resource = "VfModule";
1092 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1093 initExecution(gAction, bpmnRequest, true);
1094 execution.setVariable("requestUri",
1095 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1097 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1098 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1099 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1100 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1101 workflowAction.selectExecutionList(execution);
1102 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1104 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1105 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1109 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceTest() throws Exception {
1110 String gAction = "replaceInstance";
1111 String resource = "VfModule";
1112 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1113 initExecution(gAction, bpmnRequest, true);
1114 execution.setVariable("requestUri",
1115 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1116 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1117 execution.setVariable("vfModuleId", "1234");
1119 VolumeGroup volumeGroup = new VolumeGroup();
1120 volumeGroup.setVolumeGroupId("volumeGroupId");
1121 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1122 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1123 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1124 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1125 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1126 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1127 workflowAction.selectExecutionList(execution);
1128 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1130 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1131 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVfModuleBB",
1132 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1136 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceRetainAssignmentsTest()
1138 String gAction = "replaceInstanceRetainAssignments";
1139 String resource = "VfModule";
1140 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1141 initExecution(gAction, bpmnRequest, true);
1142 execution.setVariable("requestUri",
1143 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1144 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1145 execution.setVariable("vfModuleId", "1234");
1147 VolumeGroup volumeGroup = new VolumeGroup();
1148 volumeGroup.setVolumeGroupId("volumeGroupId");
1149 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1150 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1152 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1153 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1154 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1155 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1156 workflowAction.selectExecutionList(execution);
1157 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1159 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1160 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
1161 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1165 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceTest() throws Exception {
1166 String gAction = "replaceInstance";
1167 String resource = "VfModule";
1168 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1169 initExecution(gAction, bpmnRequest, true);
1170 execution.setVariable("requestUri",
1171 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1172 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1173 execution.setVariable("vfModuleId", "1234");
1175 VolumeGroup volumeGroup = new VolumeGroup();
1176 volumeGroup.setVolumeGroupId("volumeGroupId");
1177 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1178 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1180 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1181 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1182 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1183 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1184 vfModuleCustomization.setVfModule(vfModule);
1185 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1186 .thenReturn(vfModuleCustomization);
1188 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1189 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1190 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1191 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1192 workflowAction.selectExecutionList(execution);
1193 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1195 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1196 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1197 "ChangeModelServiceInstanceBB");
1201 public void selectExecutionListALaCarteVfModuleWithFabricKeepVolumeGroupReplaceTest() throws Exception {
1202 String gAction = "replaceInstance";
1203 String resource = "VfModule";
1204 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1205 initExecution(gAction, bpmnRequest, true);
1206 execution.setVariable("requestUri",
1207 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1208 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1209 execution.setVariable("vfModuleId", "1234");
1211 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1212 vnf.setVnfId("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1213 vnf.setModelCustomizationId("modelCustomizationId");
1214 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
1216 org.onap.aai.domain.yang.VfModule vfModuleFromAAI = new org.onap.aai.domain.yang.VfModule();
1217 vfModuleFromAAI.setModelCustomizationId("modelCustomizationId");
1218 vfModuleFromAAI.setVfModuleId("1234");
1219 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModuleFromAAI);
1221 VolumeGroup volumeGroup = new VolumeGroup();
1222 volumeGroup.setVolumeGroupId("volumeGroupId");
1223 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1224 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1226 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1227 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1228 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1229 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1230 vfModuleCustomization.setVfModule(vfModule);
1231 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1232 .thenReturn(vfModuleCustomization);
1233 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1234 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1235 vnfc.setModelInvariantId("modelInvariantId");
1236 vnfc.setVnfcName("testVnfcName");
1238 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(), any(), any());
1240 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1241 configuration.setConfigurationId("configurationId");
1242 configuration.setModelCustomizationId("modelCustimizationId");
1243 configuration.setConfigurationName("testConfigurationName");
1244 doReturn(configuration).when(SPY_workflowAction).getRelatedResourcesInVnfc(any(), any(), any());
1246 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1247 northBoundRequest.setOrchestrationFlowList(replaceVfModuleWithFabricOrchFlows);
1248 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1249 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1250 SPY_workflowAction.selectExecutionList(execution);
1251 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1253 assertEqualsBulkFlowName(ebbs, "DeleteFabricConfigurationBB", "DeactivateVfModuleBB", "DeleteVfModuleATTBB",
1254 "UnassignVFModuleBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1255 "AddFabricConfigurationBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1259 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1260 String gAction = "replaceInstanceRetainAssignments";
1261 String resource = "VfModule";
1262 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1263 initExecution(gAction, bpmnRequest, true);
1264 execution.setVariable("requestUri",
1265 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1266 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1267 execution.setVariable("vfModuleId", "1234");
1269 VolumeGroup volumeGroup = new VolumeGroup();
1270 volumeGroup.setVolumeGroupId("volumeGroupId");
1271 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1272 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1274 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1275 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1276 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1277 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1278 vfModuleCustomization.setVfModule(vfModule);
1279 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1280 .thenReturn(vfModuleCustomization);
1282 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1283 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1284 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1285 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1286 workflowAction.selectExecutionList(execution);
1287 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1289 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1290 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1294 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceTest() throws Exception {
1295 String gAction = "replaceInstance";
1296 String resource = "VfModule";
1297 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1298 initExecution(gAction, bpmnRequest, true);
1299 execution.setVariable("requestUri",
1300 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1301 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1302 execution.setVariable("vfModuleId", "1234");
1304 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1305 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1306 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1307 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1308 vfModuleCustomization.setVfModule(vfModule);
1309 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1310 .thenReturn(vfModuleCustomization);
1312 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1313 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1314 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1315 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1316 workflowAction.selectExecutionList(execution);
1317 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1319 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1320 "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1321 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1325 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceRetainAssignmentsTest()
1327 String gAction = "replaceInstanceRetainAssignments";
1328 String resource = "VfModule";
1329 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1330 initExecution(gAction, bpmnRequest, true);
1331 execution.setVariable("requestUri",
1332 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1333 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1334 execution.setVariable("vfModuleId", "1234");
1336 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1337 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1338 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1339 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1340 vfModuleCustomization.setVfModule(vfModule);
1341 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1342 .thenReturn(vfModuleCustomization);
1344 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1345 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1346 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1347 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1348 workflowAction.selectExecutionList(execution);
1349 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1351 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "AssignVolumeGroupBB",
1352 "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
1353 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1357 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceTest() throws Exception {
1358 String gAction = "replaceInstance";
1359 String resource = "VfModule";
1360 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_REPLACE_REBUILD_VOLUME_GROUPS_JSON);
1361 initExecution(gAction, bpmnRequest, true);
1362 execution.setVariable("requestUri",
1363 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1364 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1365 execution.setVariable("vfModuleId", "1234");
1367 VolumeGroup volumeGroup = new VolumeGroup();
1368 volumeGroup.setVolumeGroupId("volumeGroupId");
1369 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1370 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1372 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1373 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1374 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1375 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1376 vfModuleCustomization.setVfModule(vfModule);
1377 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1378 .thenReturn(vfModuleCustomization);
1380 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1381 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1382 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1383 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1384 workflowAction.selectExecutionList(execution);
1385 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1387 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1388 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
1389 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
1390 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1394 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1395 String gAction = "replaceInstanceRetainAssignments";
1396 String resource = "VfModule";
1397 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_REPLACE_REBUILD_VOLUME_GROUPS_JSON);
1398 initExecution(gAction, bpmnRequest, true);
1399 execution.setVariable("requestUri",
1400 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1401 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1402 execution.setVariable("vfModuleId", "1234");
1404 VolumeGroup volumeGroup = new VolumeGroup();
1405 volumeGroup.setVolumeGroupId("volumeGroupId");
1406 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1407 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1409 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1410 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1411 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1412 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1413 vfModuleCustomization.setVfModule(vfModule);
1414 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1415 .thenReturn(vfModuleCustomization);
1417 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1418 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1419 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1420 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1421 workflowAction.selectExecutionList(execution);
1422 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1424 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1425 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB", "ChangeModelVfModuleBB",
1426 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1427 "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1432 public void selectExecutionListALaCarteVfModuleFabricDeleteTest() throws Exception {
1433 String gAction = "deleteInstance";
1434 String resource = "VfModule";
1435 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1436 initExecution(gAction, bpmnRequest, true);
1437 execution.setVariable("requestUri",
1438 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1440 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1441 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1442 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1443 northBoundRequest.setOrchestrationFlowList(orchFlows);
1445 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1446 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1448 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1449 vnf.setVnfId("vnf0");
1450 vnf.setModelCustomizationId("modelCustomizationId");
1451 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1453 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1454 vfModule.setModelCustomizationId("modelCustomizationId");
1455 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1457 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1458 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1459 vnfc.setModelInvariantId("modelInvariantId");
1460 vnfc.setVnfcName("testVnfcName");
1462 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1465 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1466 configuration.setConfigurationId("configurationId");
1467 configuration.setModelCustomizationId("modelCustimizationId");
1468 configuration.setConfigurationName("testConfigurationName");
1469 doReturn(configuration).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1472 SPY_workflowAction.selectExecutionList(execution);
1473 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1474 assertEqualsBulkFlowName(ebbs, "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB",
1475 "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1479 public void getConfigBuildingBlocksNoVfModuleFabricDeleteTest() throws Exception {
1480 String gAction = "deleteInstance";
1481 ObjectMapper mapper = new ObjectMapper();
1482 WorkflowType resourceType = WorkflowType.VFMODULE;
1483 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1484 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1485 execution.setVariable("requestAction", gAction);
1486 execution.setVariable("bpmnRequest", bpmnRequest);
1487 execution.setVariable("vnfId", "1234");
1488 execution.setVariable("vfModuleId", "vfModuleId1234");
1489 execution.setVariable("requestUri",
1490 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1491 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1492 RequestDetails requestDetails = sIRequest.getRequestDetails();
1493 String requestAction = "deleteInstance";
1494 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1495 boolean aLaCarte = true;
1496 String apiVersion = "7";
1497 String vnfType = "vnfType";
1498 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1499 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1500 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1501 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1503 thrown.expect(AAIEntityNotFoundException.class);
1504 thrown.expectMessage(containsString(
1505 "No matching VfModule is found in Generic-Vnf in AAI for vnfId: 1234 and vfModuleId : vfModuleId1234"));
1507 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1508 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1510 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1511 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1512 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1513 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1515 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1516 vnf.setVnfId("vnf0");
1517 vnf.setModelCustomizationId("modelCustomizationId");
1518 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1520 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1521 vfModule.setModelCustomizationId("modelCustomizationId");
1522 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(null);
1524 SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1528 public void getConfigBuildingBlocksTest() throws Exception {
1529 String gAction = "deleteInstance";
1530 ObjectMapper mapper = new ObjectMapper();
1531 mapper.disable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES);
1533 WorkflowType resourceType = WorkflowType.VFMODULE;
1534 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1535 execution.setVariable("requestAction", gAction);
1536 String bpmnRequest =
1537 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1538 execution.setVariable("bpmnRequest", bpmnRequest);
1539 execution.setVariable("vnfId", "1234");
1540 execution.setVariable("vfModuleId", "vfModuleId1234");
1541 execution.setVariable("requestUri",
1542 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1543 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1544 RequestDetails requestDetails = sIRequest.getRequestDetails();
1545 String requestAction = "deleteInstance";
1546 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1547 boolean aLaCarte = true;
1548 String apiVersion = "7";
1549 String vnfType = "vnfType";
1550 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1551 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1552 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1553 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1555 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1556 "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
1558 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1559 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1560 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1561 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1563 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1564 vnf.setVnfId("vnf0");
1565 vnf.setModelCustomizationId("modelCustomizationId");
1566 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
1568 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1569 vfModule.setModelCustomizationId("modelCustomizationId");
1571 org.onap.aai.domain.yang.Configuration config1 = new org.onap.aai.domain.yang.Configuration();
1572 config1.setConfigurationId("config1");
1573 org.onap.aai.domain.yang.Configuration config2 = new org.onap.aai.domain.yang.Configuration();
1574 config2.setConfigurationId("config2");
1576 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1577 org.onap.aai.domain.yang.Vnfc vnfc1 = new org.onap.aai.domain.yang.Vnfc();
1578 vnfc1.setVnfcName("zauk53avetd02svm001");
1579 org.onap.aai.domain.yang.Vnfc vnfc2 = new org.onap.aai.domain.yang.Vnfc();
1580 vnfc2.setVnfcName("zauk53avetd02tvm001");
1584 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModule);
1585 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(),
1586 eq(org.onap.aai.domain.yang.Vnfc.class), eq(Types.VNFC));
1587 doReturn(config1).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc1),
1588 eq(org.onap.aai.domain.yang.Configuration.class), eq(Types.CONFIGURATION));
1589 doReturn(config2).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc2),
1590 eq(org.onap.aai.domain.yang.Configuration.class), eq(Types.CONFIGURATION));
1592 List<ExecuteBuildingBlock> results = SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1594 assertFalse(results.isEmpty());
1595 assertEquals(2, results.size());
1596 assertEquals("config1", results.get(0).getWorkflowResourceIds().getConfigurationId());
1597 assertEquals("config2", results.get(1).getWorkflowResourceIds().getConfigurationId());
1598 assertEquals("zauk53avetd02svm001", results.get(0).getConfigurationResourceKeys().getVnfcName());
1599 assertEquals("zauk53avetd02tvm001", results.get(1).getConfigurationResourceKeys().getVnfcName());
1603 public void getConfigBuildingBlocksNullConfigurationTest() throws Exception {
1604 String gAction = "deleteInstance";
1605 ObjectMapper mapper = new ObjectMapper();
1606 mapper.disable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES);
1608 WorkflowType resourceType = WorkflowType.VFMODULE;
1609 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1610 execution.setVariable("requestAction", gAction);
1611 String bpmnRequest =
1612 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1613 execution.setVariable("bpmnRequest", bpmnRequest);
1614 execution.setVariable("vnfId", "1234");
1615 execution.setVariable("vfModuleId", "vfModuleId1234");
1616 execution.setVariable("requestUri",
1617 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1618 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1619 RequestDetails requestDetails = sIRequest.getRequestDetails();
1620 String requestAction = "deleteInstance";
1621 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1622 boolean aLaCarte = true;
1623 String apiVersion = "7";
1624 String vnfType = "vnfType";
1625 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1626 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1627 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1628 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1630 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1631 "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
1633 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1634 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1635 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1636 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1638 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1639 vnf.setVnfId("vnf0");
1640 vnf.setModelCustomizationId("modelCustomizationId");
1641 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
1643 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1644 vfModule.setModelCustomizationId("modelCustomizationId");
1646 /* this is a test case where configuration for vnfc is null */
1647 org.onap.aai.domain.yang.Configuration config1 = null;
1648 org.onap.aai.domain.yang.Configuration config2 = new org.onap.aai.domain.yang.Configuration();
1649 config2.setConfigurationId("config2");
1651 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1652 org.onap.aai.domain.yang.Vnfc vnfc1 = new org.onap.aai.domain.yang.Vnfc();
1653 vnfc1.setVnfcName("zauk53avetd02svm001");
1654 org.onap.aai.domain.yang.Vnfc vnfc2 = new org.onap.aai.domain.yang.Vnfc();
1655 vnfc2.setVnfcName("zauk53avetd02tvm001");
1659 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModule);
1660 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(),
1661 eq(org.onap.aai.domain.yang.Vnfc.class), eq(Types.VNFC));
1662 doReturn(config1).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc1),
1663 eq(org.onap.aai.domain.yang.Configuration.class), eq(Types.CONFIGURATION));
1664 doReturn(config2).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc2),
1665 eq(org.onap.aai.domain.yang.Configuration.class), eq(Types.CONFIGURATION));
1667 List<ExecuteBuildingBlock> results = SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1669 assertFalse(results.isEmpty());
1670 assertEquals(1, results.size());
1671 assertEquals("config2", results.get(0).getWorkflowResourceIds().getConfigurationId());
1672 assertEquals("zauk53avetd02tvm001", results.get(0).getConfigurationResourceKeys().getVnfcName());
1676 public void selectExecutionListALaCarteVfModuleNoFabricDeleteTest() throws Exception {
1677 String gAction = "deleteInstance";
1678 String resource = "VfModule";
1679 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1680 initExecution(gAction, bpmnRequest, true);
1681 execution.setVariable("requestUri",
1682 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1684 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1685 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1686 "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
1687 northBoundRequest.setOrchestrationFlowList(orchFlows);
1689 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1690 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1692 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1693 vnf.setVnfId("vnf0");
1694 vnf.setModelCustomizationId("modelCustomizationId");
1695 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1697 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1698 vfModule.setModelCustomizationId("modelCustomizationId");
1699 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1701 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1703 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1706 SPY_workflowAction.selectExecutionList(execution);
1707 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1708 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1712 public void selectExecutionListMacroResumeTest() throws Exception {
1713 String gAction = "createInstance";
1714 String resource = "Service";
1715 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
1716 initExecution(gAction, bpmnRequest, false);
1717 execution.setVariable("requestUri", "v6/serviceInstances/123");
1719 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1720 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1721 northBoundRequest.setOrchestrationFlowList(orchFlows);
1723 Service service = new Service();
1724 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
1726 ServiceInstance si = new ServiceInstance();
1728 when(bbSetupUtils.getAAIServiceInstanceById("123")).thenReturn(si);
1729 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1731 String flowsToExecuteString =
1732 "[{\"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\"}}]";
1733 ObjectMapper om = new ObjectMapper();
1734 List<ExecuteBuildingBlock> flowsToExecute = null;
1736 ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
1737 flowsToExecute = Arrays.asList(asArray);
1738 } catch (Exception e) {
1739 e.printStackTrace();
1742 when(bbSetupUtils.loadOriginalFlowExecutionPath(anyString())).thenReturn(flowsToExecute);
1744 workflowAction.selectExecutionList(execution);
1745 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1746 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB");
1750 public void getRelatedResourcesInVfModuleTest() throws Exception {
1751 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1752 vnfc.setModelInvariantId("modelInvariantId");
1753 vnfc.setVnfcName("testVnfcName");
1755 String vfncPayload =
1756 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/vnfcResponse.json")));
1757 AAIResultWrapper vfncWrapper = new AAIResultWrapper(vfncPayload);
1759 String configurationPayload =
1760 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/configurationResponse.json")));
1761 AAIResultWrapper configurationWrapper = new AAIResultWrapper(configurationPayload);
1762 List<AAIResultWrapper> configurationResultWrappers = new ArrayList<AAIResultWrapper>();
1763 configurationResultWrappers.add(configurationWrapper);
1765 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().vnfc(vnfc.getVnfcName()));
1766 when(bbSetupUtils.getAAIResourceDepthOne(uri)).thenReturn(vfncWrapper);
1768 doReturn(configurationResultWrappers).when(SPY_workflowAction).getResultWrappersFromRelationships(anyObject(),
1770 org.onap.aai.domain.yang.Configuration configuration = SPY_workflowAction.getRelatedResourcesInVnfc(vnfc,
1771 org.onap.aai.domain.yang.Configuration.class, Types.CONFIGURATION);
1772 assertEquals("testConfigurationId", configuration.getConfigurationId());
1776 * WorkflowActionBB Tests
1780 public void pluralTest() {
1781 List<String> items = Arrays.asList("serviceInstances, Service", "vnfs, Vnf", "vfModules, VfModule",
1782 "networks, Network", "invalidNames, invalidNames");
1783 items.forEach(item -> {
1784 String[] split = item.split(",");
1785 String type = split[0].trim();
1786 String expected = split[1].trim();
1787 assertThat(workflowAction.convertTypeFromPlural(type), equalTo(expected));
1792 public void sortExecutionPathByObjectForVlanTaggingCreateTest() throws Exception {
1793 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1795 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("0");
1796 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1797 executeFlows.add(ebb);
1799 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("1");
1800 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1801 executeFlows.add(ebb2);
1803 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("0");
1804 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1805 executeFlows.add(ebb3);
1807 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("1");
1808 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1809 executeFlows.add(ebb4);
1811 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("0");
1812 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1813 executeFlows.add(ebb5);
1815 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("1");
1816 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1817 executeFlows.add(ebb6);
1819 List<ExecuteBuildingBlock> sorted =
1820 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "createInstance");
1821 assertEqualsBulkFlowName(sorted, "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB",
1822 "CreateNetworkBB", "ActivateNetworkBB");
1826 public void sortExecutionPathByObjectForVlanTaggingDeleteTest() throws Exception {
1827 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1829 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("0");
1830 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1831 executeFlows.add(ebb);
1833 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("1");
1834 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1835 executeFlows.add(ebb2);
1837 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("0");
1838 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1839 executeFlows.add(ebb3);
1841 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("1");
1842 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1843 executeFlows.add(ebb4);
1845 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("0");
1846 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1847 executeFlows.add(ebb5);
1849 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("1");
1850 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1851 executeFlows.add(ebb6);
1853 List<ExecuteBuildingBlock> sorted =
1854 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "deleteInstance");
1855 assertEqualsBulkFlowName(sorted, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1856 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB");
1860 public void queryNorthBoundRequestCatalogDbNestedTest() throws MalformedURLException {
1861 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1862 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
1863 "VNF-Macro-Replace", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
1864 northBoundRequest.setOrchestrationFlowList(orchFlows);
1865 List<OrchestrationFlow> macroFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1866 "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB");
1868 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner("replaceInstance",
1869 "Vnf", false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1870 when(catalogDbClient.getOrchestrationFlowByAction("VNF-Macro-Replace")).thenReturn(macroFlows);
1871 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "replaceInstance",
1872 WorkflowType.VNF, false, "my-custom-cloud-owner");
1873 assertEquals(flows.get(0).getFlowName(), "AAICheckVnfInMaintBB");
1874 assertEquals(flows.get(1).getFlowName(), "AAISetVnfInMaintBB");
1875 assertEquals(flows.get(2).getFlowName(), "DeactivateVfModuleBB");
1876 assertEquals(flows.get(3).getFlowName(), "DeleteVfModuleBB");
1877 assertEquals(flows.get(4).getFlowName(), "DeactivateVnfBB");
1878 assertEquals(flows.get(5).getFlowName(), "CreateVfModuleBB");
1879 assertEquals(flows.get(6).getFlowName(), "ActivateVfModuleBB");
1880 assertEquals(flows.get(7).getFlowName(), "ActivateVnfBB");
1881 assertEquals(flows.get(8).getFlowName(), "SDNOVnfHealthCheckBB");
1882 assertEquals(flows.get(9).getFlowName(), "AAIUnsetVnfInMaintBB");
1886 public void queryNorthBoundRequestCatalogDbTransportTest() throws MalformedURLException {
1887 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1888 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1889 northBoundRequest.setOrchestrationFlowList(orchFlows);
1890 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwnerAndServiceType(
1891 "createInstance", "Service", true, "my-custom-cloud-owner", "TRANSPORT")).thenReturn(northBoundRequest);
1893 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "createInstance",
1894 WorkflowType.SERVICE, true, "my-custom-cloud-owner", "TRANSPORT");
1895 assertEquals(flows.get(0).getFlowName(), "AssignServiceInstanceBB");
1899 public void extractResourceIdAndTypeFromUriTest() {
1900 String uri = "/v6/serviceInstances/123";
1901 String uri2 = "/v6/serviceInstances/123/vnfs/1234";
1902 String uri3 = "/v6/serviceInstances";
1903 String uri4 = "/v6/serviceInstances/assign";
1904 String uri5 = "'/v6/serviceInstances/123/vnfs";
1905 String uri6 = "/v6/serviceInstances/123/vnfs/1234/someAction";
1906 String uri7 = "/v6/serviceInstances/123/vnfs/1234/vfModules/5678/replace";
1907 String uri8 = "/v6/serviceInstances/123/vnfs/1234/vfModules/scaleOut";
1908 Resource expected1 = new Resource(WorkflowType.SERVICE, "123", true);
1909 Resource expected2 = new Resource(WorkflowType.VNF, "1234", false);
1910 Resource expected3 = new Resource(WorkflowType.VNF, "1234", false);
1911 Resource expected4 = new Resource(WorkflowType.VFMODULE, "5678", false);
1912 Resource result = workflowAction.extractResourceIdAndTypeFromUri(uri);
1913 assertEquals(expected1.getResourceId(), result.getResourceId());
1914 assertEquals(expected1.getResourceType(), result.getResourceType());
1915 result = workflowAction.extractResourceIdAndTypeFromUri(uri2);
1916 assertEquals(expected2.getResourceId(), result.getResourceId());
1917 assertEquals(expected2.getResourceType(), result.getResourceType());
1918 result = workflowAction.extractResourceIdAndTypeFromUri(uri3);
1919 assertEquals("Service", result.getResourceType().toString());
1920 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1921 result = workflowAction.extractResourceIdAndTypeFromUri(uri4);
1922 assertEquals("Service", result.getResourceType().toString());
1923 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1924 result = workflowAction.extractResourceIdAndTypeFromUri(uri5);
1925 assertEquals("Vnf", result.getResourceType().toString());
1926 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1927 result = workflowAction.extractResourceIdAndTypeFromUri(uri6);
1928 assertEquals(expected3.getResourceId(), result.getResourceId());
1929 assertEquals(expected3.getResourceType(), result.getResourceType());
1930 result = workflowAction.extractResourceIdAndTypeFromUri(uri7);
1931 assertEquals(expected4.getResourceId(), result.getResourceId());
1932 assertEquals(expected4.getResourceType(), result.getResourceType());
1933 result = workflowAction.extractResourceIdAndTypeFromUri(uri8);
1934 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1935 assertEquals("VfModule", result.getResourceType().toString());
1940 public void extractResourceIdAndTypeFromUriInvalidTypeTest() {
1941 this.expectedException.expect(IllegalArgumentException.class);
1942 this.expectedException.expectMessage(containsString("Uri could not be parsed. No type found."));
1943 workflowAction.extractResourceIdAndTypeFromUri("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace");
1947 public void extractResourceIdAndTypeFromUriInvalidUriTest() {
1948 this.expectedException.expect(IllegalArgumentException.class);
1949 this.expectedException.expectMessage(containsString("Uri could not be parsed:"));
1950 workflowAction.extractResourceIdAndTypeFromUri("something that doesn't match anything");
1954 public void extractResourceIdAndTypeFromUriResumeTest() {
1955 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1956 "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");
1957 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1961 public void extractResourceIdAndTypeFromUriReplaceResumeTest() {
1962 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1963 "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");
1964 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1968 public void extractResourceIdAndTypeFromUriDeActiveResumeTest() {
1969 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1970 "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");
1971 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1975 public void extractResourceIdAndTypeFromUriResumeIdOnly() {
1976 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1977 "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");
1978 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1982 public void isUriResumeTest() {
1983 assertTrue(workflowAction.isUriResume(
1984 "http://localhost:9100/onap/so/infra/orchestrationRequests/v7/requests/2f8ab587-ef6a-4456-b7b2-d73f9363dabd/resume"));
1985 assertTrue(workflowAction.isUriResume(
1986 " 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"));
1988 assertFalse(workflowAction.isUriResume("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace"));
1992 public void isRequestMacroServiceResumeTest() {
1993 ServiceInstance si = new ServiceInstance();
1994 when(bbSetupUtils.getAAIServiceInstanceById(anyString())).thenReturn(si);
1995 assertFalse(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", ""));
1996 assertTrue(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", "123"));
2000 public void populateResourceIdsFromApiHandlerTest() {
2001 execution.setVariable("serviceInstanceId", "123");
2002 execution.setVariable("vnfId", "888");
2003 WorkflowResourceIds x = workflowAction.populateResourceIdsFromApiHandler(execution);
2004 assertEquals("123", x.getServiceInstanceId());
2005 assertEquals("888", x.getVnfId());
2006 assertNull(x.getVolumeGroupId());
2009 private RequestDetails setupRequestDetails(String globalSubscriberId, String subscriptionServiceType,
2010 String modelCustomizationId) {
2011 RequestDetails reqDetails = new RequestDetails();
2012 SubscriberInfo subInfo = new SubscriberInfo();
2013 subInfo.setGlobalSubscriberId(globalSubscriberId);
2014 reqDetails.setSubscriberInfo(subInfo);
2015 RequestParameters reqParams = new RequestParameters();
2016 reqParams.setSubscriptionServiceType(subscriptionServiceType);
2017 reqDetails.setRequestParameters(reqParams);
2018 ModelInfo modelInfo = new ModelInfo();
2019 modelInfo.setModelCustomizationId(modelCustomizationId);
2020 reqDetails.setModelInfo(modelInfo);
2025 public void validateResourceIdInAAIVnfTest() throws Exception {
2026 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2027 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2028 workflowResourceIds.setServiceInstanceId("siId123");
2030 GenericVnf vnf = new GenericVnf();
2031 vnf.setVnfId("id123");
2032 vnf.setVnfName("vnfName123");
2033 vnf.setModelCustomizationId("1234567");
2034 Optional<GenericVnf> opVnf = Optional.of(vnf);
2035 GenericVnf vnf2 = new GenericVnf();
2036 vnf2.setVnfId("id123");
2037 vnf2.setVnfName("vnfName222");
2038 vnf2.setModelCustomizationId("222");
2039 Optional<GenericVnf> opVnf2 = Optional.of(vnf2);
2040 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2041 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName222")).thenReturn(opVnf2);
2042 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2043 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName123", reqDetails,
2044 workflowResourceIds);
2045 assertEquals("id123", id);
2046 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "111111", reqDetails,
2047 workflowResourceIds);
2048 assertEquals("generatedId123", id2);
2050 this.expectedException.expect(DuplicateNameException.class);
2051 this.expectedException.expectMessage(containsString(
2052 "generic-vnf with name (vnfName222), same parent and different customization id (222) already exists. The name must be unique."));
2053 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName222", reqDetails,
2054 workflowResourceIds);
2058 public void validateResourceIdInAAIVnfNotGloballyUniqueTest() throws Exception {
2059 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2060 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2061 workflowResourceIds.setServiceInstanceId("siId123");
2064 GenericVnfs genericVnfs = new GenericVnfs();
2065 GenericVnf vnf3 = new GenericVnf();
2066 vnf3.setVnfId("id123");
2067 vnf3.setVnfName("vnfName333");
2068 genericVnfs.getGenericVnf().add(vnf3);
2069 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName333")).thenReturn(Optional.empty());
2070 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName333")).thenReturn(genericVnfs);
2072 this.expectedException.expect(DuplicateNameException.class);
2073 this.expectedException.expectMessage(containsString(
2074 "generic-vnf with name (vnfName333) id (id123) and different parent relationship already exists. The name must be unique."));
2075 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName333", reqDetails,
2076 workflowResourceIds);
2080 public void validateResourceIdInAAINetworkTest() throws Exception {
2081 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2082 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2083 workflowResourceIds.setServiceInstanceId("siId123");
2086 L3Network network = new L3Network();
2087 network.setNetworkId("id123");
2088 network.setNetworkName("name123");
2089 network.setModelCustomizationId("1234567");
2090 workflowResourceIds.setServiceInstanceId("siId123");
2091 Optional<L3Network> opNetwork = Optional.of(network);
2092 L3Network network2 = new L3Network();
2093 network2.setNetworkId("id123");
2094 network2.setNetworkName("networkName222");
2095 network2.setModelCustomizationId("222");
2096 Optional<L3Network> opNetwork2 = Optional.of(network2);
2097 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2098 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "networkName222"))
2099 .thenReturn(opNetwork2);
2100 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2101 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "name123",
2102 reqDetails, workflowResourceIds);
2103 assertEquals("id123", id);
2104 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "111111",
2105 reqDetails, workflowResourceIds);
2106 assertEquals("generatedId123", id2);
2108 this.expectedException.expect(DuplicateNameException.class);
2109 this.expectedException.expectMessage(containsString(
2110 "l3Network with name (networkName222), same parent and different customization id (222) already exists. The name must be unique."));
2111 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName222", reqDetails,
2112 workflowResourceIds);
2116 public void validateNetworkResourceNameExistsInAAITest() throws Exception {
2117 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2118 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2119 workflowResourceIds.setServiceInstanceId("siId123");
2122 L3Network network = new L3Network();
2123 network.setNetworkId("id123");
2124 network.setNetworkName("name123");
2125 network.setModelCustomizationId("1234567");
2126 workflowResourceIds.setServiceInstanceId("siId123");
2128 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("networkName333", "111111"))
2129 .thenReturn(Optional.empty());
2130 when(bbSetupUtils.existsAAINetworksGloballyByName("networkName333")).thenReturn(true);
2132 this.expectedException.expect(DuplicateNameException.class);
2133 this.expectedException.expectMessage(containsString(
2134 "l3Network with name (networkName333) id (siId123) and different parent relationship already exists. The name must be unique."));
2135 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName333", reqDetails,
2136 workflowResourceIds);
2140 public void validateResourceIdInAAIVfModuleTest() throws Exception {
2141 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2142 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2143 workflowResourceIds.setServiceInstanceId("siId123");
2145 GenericVnf vnf = new GenericVnf();
2146 vnf.setVnfId("id123");
2147 vnf.setVnfName("vnfName123");
2148 vnf.setModelCustomizationId("222");
2151 VfModules vfModules = new VfModules();
2152 VfModule vfModule = new VfModule();
2153 vfModule.setVfModuleId("id123");
2154 vfModule.setVfModuleName("name123");
2155 vfModule.setModelCustomizationId("1234567");
2156 vfModules.getVfModule().add(vfModule);
2157 vnf.setVfModules(vfModules);
2158 workflowResourceIds.setVnfId("id123");
2159 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2160 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "name123",
2161 reqDetails, workflowResourceIds);
2162 assertEquals("id123", id);
2164 GenericVnf vnf1 = new GenericVnf();
2165 VfModules vfModules2 = new VfModules();
2166 VfModule vfModule2 = new VfModule();
2167 vfModule2.setVfModuleId("id123");
2168 vfModule2.setVfModuleName("vFModName222");
2169 vfModule2.setModelCustomizationId("222");
2170 vfModules2.getVfModule().add(vfModule2);
2171 vnf1.setVfModules(vfModules2);
2172 workflowResourceIds.setVnfId("id111");
2173 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2174 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "111111",
2175 reqDetails, workflowResourceIds);
2176 assertEquals("generatedId123", id2);
2178 this.expectedException.expect(DuplicateNameException.class);
2179 this.expectedException.expectMessage(containsString(
2180 "vfModule with name (vFModName222), same parent and different customization id (1234567) already exists. The name must be unique."));
2181 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName222", reqDetails,
2182 workflowResourceIds);
2186 public void validateResourceIdInAAIVfModuleNotGloballyUniqueTest() throws Exception {
2187 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2188 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2189 workflowResourceIds.setVnfId("id111");
2191 GenericVnf vnf1 = new GenericVnf();
2192 workflowResourceIds.setVnfId("id111");
2193 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2195 when(bbSetupUtils.existsAAIVfModuleGloballyByName("vFModName333")).thenReturn(true);
2196 this.expectedException.expect(DuplicateNameException.class);
2197 this.expectedException.expectMessage(
2198 containsString("vfModule with name vFModName333 already exists. The name must be unique."));
2199 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName333", reqDetails,
2200 workflowResourceIds);
2204 public void validateResourceIdInAAIVolumeGroupTest() throws Exception {
2205 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2206 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2207 workflowResourceIds.setServiceInstanceId("siId123");
2209 GenericVnf vnf = new GenericVnf();
2210 vnf.setVnfId("id123");
2211 vnf.setVnfName("vnfName123");
2212 vnf.setModelCustomizationId("1234567");
2214 GenericVnf vnf2 = new GenericVnf();
2215 vnf2.setVnfId("id123");
2216 vnf2.setVnfName("vnfName123");
2217 vnf2.setModelCustomizationId("222");
2220 VolumeGroup volumeGroup = new VolumeGroup();
2221 volumeGroup.setVolumeGroupId("id123");
2222 volumeGroup.setVolumeGroupName("name123");
2223 volumeGroup.setVfModuleModelCustomizationId("1234567");
2224 workflowResourceIds.setVnfId("id123");
2225 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2227 workflowResourceIds.setVnfId("id123");
2229 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2230 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(opVolumeGroup);
2231 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2232 reqDetails, workflowResourceIds);
2233 assertEquals("id123", id);
2235 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf2);
2236 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "111111"))
2237 .thenReturn(opVolumeGroup);
2239 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "111111")).thenReturn(Optional.empty());
2240 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "111111",
2241 reqDetails, workflowResourceIds);
2242 assertEquals("generatedId123", id2);
2246 public void validatesourceIdInAAIVolumeGroupNotGloballyUniqueTest() throws Exception {
2247 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2248 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2249 workflowResourceIds.setVnfId("id123");
2250 GenericVnf vnf = new GenericVnf();
2251 vnf.setVnfId("id123");
2252 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2253 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "testVolumeGroup")).thenReturn(Optional.empty());
2255 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("testVolumeGroup")).thenReturn(true);
2256 this.expectedException.expect(DuplicateNameException.class);
2257 this.expectedException.expectMessage(
2258 containsString("volumeGroup with name testVolumeGroup already exists. The name must be unique."));
2259 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "testVolumeGroup",
2260 reqDetails, workflowResourceIds);
2264 public void validateResourceIdInAAIConfigurationTest() throws Exception {
2265 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2266 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2267 workflowResourceIds.setServiceInstanceId("siId123");
2270 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2271 configuration.setConfigurationId("id123");
2272 configuration.setConfigurationName("name123");
2273 configuration.setModelCustomizationId("1234567");
2274 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2276 org.onap.aai.domain.yang.Configuration configuration2 = new org.onap.aai.domain.yang.Configuration();
2277 configuration2.setConfigurationId("id123");
2278 configuration2.setConfigurationName("name123");
2279 configuration2.setModelCustomizationId("222");
2280 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration2 = Optional.of(configuration2);
2282 workflowResourceIds.setVnfId("id123");
2284 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2285 .thenReturn(opConfiguration);
2286 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name123",
2287 reqDetails, workflowResourceIds);
2288 assertEquals("id123", id);
2290 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "111111"))
2291 .thenReturn(Optional.empty());
2292 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "111111",
2293 reqDetails, workflowResourceIds);
2294 assertEquals("generatedId123", id2);
2296 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name222"))
2297 .thenReturn(opConfiguration2);
2298 this.expectedException.expect(DuplicateNameException.class);
2299 this.expectedException.expectMessage(containsString(
2300 "configuration with name (name222), same parent and different customization id (id123) already exists. The name must be unique."));
2301 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name222", reqDetails,
2302 workflowResourceIds);
2306 public void validateResourceIdInAAIConfigurationNotGloballyUniqueTest() throws Exception {
2307 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2308 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2309 workflowResourceIds.setServiceInstanceId("siId123");
2311 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "testConfig"))
2312 .thenReturn(Optional.empty());
2313 when(bbSetupUtils.existsAAIConfigurationGloballyByName("testConfig")).thenReturn(true);
2314 this.expectedException.expect(DuplicateNameException.class);
2315 this.expectedException.expectMessage(
2316 containsString("configuration with name testConfig already exists. The name must be unique."));
2317 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "testConfig", reqDetails,
2318 workflowResourceIds);
2322 public void validateResourceIdInAAISITest() throws Exception {
2323 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2324 workflowResourceIds.setServiceInstanceId("siId123");
2325 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2326 reqDetails.getModelInfo().setModelVersionId("1234567");
2328 ServiceInstance si = new ServiceInstance();
2329 si.setServiceInstanceId("siId123");
2330 si.setModelVersionId("1234567");
2331 ServiceInstances serviceInstances = new ServiceInstances();
2332 serviceInstances.getServiceInstance().add(si);
2333 Optional<ServiceInstance> siOp = Optional.of(si);
2334 ServiceInstance si2 = new ServiceInstance();
2335 si2.setServiceInstanceId("siId222");
2336 si2.setModelVersionId("22222");
2337 si2.setServiceInstanceName("siName222");
2338 Optional<ServiceInstance> siOp2 = Optional.of(si2);
2339 ServiceInstances serviceInstances2 = new ServiceInstances();
2340 serviceInstances2.getServiceInstance().add(si2);
2342 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2343 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName222")).thenReturn(siOp2);
2344 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "111111"))
2345 .thenReturn(Optional.empty());
2347 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2348 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123",
2349 reqDetails, workflowResourceIds);
2350 assertEquals("siId123", id);
2351 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "111111",
2352 reqDetails, workflowResourceIds);
2353 assertEquals("generatedId123", id2);
2355 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName222")).thenReturn(serviceInstances2);
2356 this.expectedException.expect(DuplicateNameException.class);
2357 this.expectedException.expectMessage(containsString(
2358 "serviceInstance with name (siName222) and different version id (1234567) already exists. The name must be unique."));
2359 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName222", reqDetails,
2360 workflowResourceIds);
2364 public void validateResourceIdInAAIMultipleSITest() throws Exception {
2365 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2366 workflowResourceIds.setServiceInstanceId("siId123");
2367 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2368 reqDetails.getModelInfo().setModelVersionId("1234567");
2370 ServiceInstance si = new ServiceInstance();
2371 si.setServiceInstanceId("siId123");
2372 si.setModelVersionId("1234567");
2373 ServiceInstances serviceInstances = new ServiceInstances();
2374 serviceInstances.getServiceInstance().add(si);
2376 ServiceInstance si2 = new ServiceInstance();
2377 si2.setServiceInstanceId("siId222");
2378 si2.setModelVersionId("22222");
2379 si2.setServiceInstanceName("siName222");
2380 serviceInstances.getServiceInstance().add(si2);
2382 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2383 .thenReturn(Optional.empty());
2385 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2387 this.expectedException.expect(DuplicateNameException.class);
2388 this.expectedException.expectMessage(containsString(
2389 "serviceInstance with name (siName123) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2390 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2391 workflowResourceIds);
2395 public void validateResourceIdInAAISIExistsTest() throws Exception {
2396 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2397 workflowResourceIds.setServiceInstanceId("siId123");
2398 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2399 reqDetails.getModelInfo().setModelVersionId("1234567");
2401 ServiceInstance si = new ServiceInstance();
2402 si.setServiceInstanceId("siId123");
2403 si.setModelVersionId("1234567");
2404 ServiceInstances serviceInstances = new ServiceInstances();
2405 serviceInstances.getServiceInstance().add(si);
2407 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2408 .thenReturn(Optional.empty());
2410 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2412 Map<String, String> uriKeys = new HashMap<>();
2413 uriKeys.put(AAIFluentTypeBuilder.Types.CUSTOMER.getUriParams().globalCustomerId, "globalCustomerId");
2414 uriKeys.put(AAIFluentTypeBuilder.Types.SERVICE_SUBSCRIPTION.getUriParams().serviceType, "serviceType");
2416 when(bbSetupUtils.getURIKeysFromServiceInstance("siId123")).thenReturn(uriKeys);
2418 this.expectedException.expect(DuplicateNameException.class);
2419 this.expectedException.expectMessage(containsString(
2420 "serviceInstance with name (siName123) and global-customer-id (globalCustomerId), service-type (serviceType), model-version-id (1234567) already exists. The name must be unique."));
2421 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2422 workflowResourceIds);
2426 public void validateServiceResourceIdInAAINoDupTest() throws Exception {
2427 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2428 reqDetails.getModelInfo().setModelVersionId("1234567");
2429 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123"))
2430 .thenReturn(Optional.empty());
2431 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(null);
2432 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2433 assertEquals("generatedId123", id);
2437 public void validateServiceResourceIdInAAISameModelVersionId() throws Exception {
2438 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2439 reqDetails.getModelInfo().setModelVersionId("1234567");
2441 ServiceInstance si = new ServiceInstance();
2442 si.setServiceInstanceId("siId123");
2443 si.setModelVersionId("1234567");
2444 Optional<ServiceInstance> siOp = Optional.of(si);
2446 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2447 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2448 assertEquals("siId123", id);
2452 public void validateServiceResourceIdInAAIDifferentModelVersionId() throws Exception {
2453 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2454 reqDetails.getModelInfo().setModelVersionId("1234567");
2456 ServiceInstance si = new ServiceInstance();
2457 si.setServiceInstanceId("siId123");
2458 si.setModelVersionId("9999999");
2459 ServiceInstances serviceInstances = new ServiceInstances();
2460 serviceInstances.getServiceInstance().add(si);
2461 Optional<ServiceInstance> siOp = Optional.of(si);
2463 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2465 this.expectedException.expect(DuplicateNameException.class);
2466 this.expectedException.expectMessage(containsString(
2467 "serviceInstance with name (siName123) and different version id (1234567) already exists. The name must be unique."));
2469 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2470 assertEquals("siId123", id);
2474 public void validateServiceResourceIdInAAIDuplicateNameTest() throws Exception {
2476 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2477 reqDetails.getModelInfo().setModelVersionId("1234567");
2479 ServiceInstance si = new ServiceInstance();
2480 si.setServiceInstanceId("siId123");
2481 si.setModelVersionId("1234567");
2483 ServiceInstances serviceInstances = new ServiceInstances();
2484 serviceInstances.getServiceInstance().add(si);
2486 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2487 .thenReturn(Optional.empty());
2488 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2490 this.expectedException.expect(DuplicateNameException.class);
2491 this.expectedException.expectMessage(containsString(
2492 "serviceInstance with name (siName) and global-customer-id (null), service-type (null), model-version-id (1234567) already exists. The name must be unique."));
2494 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2498 public void validateServiceResourceIdInAAIDuplicateNameMultipleTest() throws Exception {
2500 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2501 reqDetails.getModelInfo().setModelVersionId("1234567");
2503 ServiceInstance si = new ServiceInstance();
2504 si.setServiceInstanceId("siId123");
2505 si.setModelVersionId("1234567");
2507 ServiceInstance si2 = new ServiceInstance();
2508 si2.setServiceInstanceId("siId222");
2509 si2.setModelVersionId("22222");
2510 si2.setServiceInstanceName("siName222");
2512 ServiceInstances serviceInstances = new ServiceInstances();
2513 serviceInstances.getServiceInstance().add(si);
2514 serviceInstances.getServiceInstance().add(si2);
2516 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2517 .thenReturn(Optional.empty());
2518 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2520 this.expectedException.expect(DuplicateNameException.class);
2521 this.expectedException.expectMessage(containsString(
2522 "serviceInstance with name (siName) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2524 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2528 public void validateNetworkResourceIdInAAITest() throws Exception {
2529 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2530 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2531 workflowResourceIds.setServiceInstanceId("siId123");
2533 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2534 .thenReturn(Optional.empty());
2535 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(false);
2537 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2538 workflowResourceIds);
2539 assertEquals("generatedId123", id);
2543 public void validateNetworkResourceIdInAAISameModelCustIdTest() throws Exception {
2544 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2545 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2546 workflowResourceIds.setServiceInstanceId("siId123");
2548 L3Network network = new L3Network();
2549 network.setNetworkId("id123");
2550 network.setNetworkName("name123");
2551 network.setModelCustomizationId("1234567");
2552 Optional<L3Network> opNetwork = Optional.of(network);
2554 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2556 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2557 workflowResourceIds);
2558 assertEquals("id123", id);
2562 public void validateNetworkResourceIdInAAIDuplicateNameTest() throws Exception {
2563 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2564 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2565 workflowResourceIds.setServiceInstanceId("siId123");
2567 L3Network network = new L3Network();
2568 network.setNetworkId("id123");
2569 network.setNetworkName("name123");
2570 network.setModelCustomizationId("9999999");
2571 Optional<L3Network> opNetwork = Optional.of(network);
2573 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2575 this.expectedException.expect(DuplicateNameException.class);
2576 this.expectedException.expectMessage(containsString(
2577 "l3Network with name (name123), same parent and different customization id (9999999) already exists. The name must be unique."));
2579 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2583 public void validateNetworkResourceIdInAAINotGloballyUniqueTest() throws Exception {
2584 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2585 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2586 workflowResourceIds.setServiceInstanceId("siId123");
2588 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2589 .thenReturn(Optional.empty());
2590 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(true);
2592 this.expectedException.expect(DuplicateNameException.class);
2593 this.expectedException.expectMessage(containsString(
2594 "l3Network with name (name123) id (siId123) and different parent relationship already exists. The name must be unique."));
2596 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2600 public void validateVnfResourceIdInAAITest() throws Exception {
2601 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2602 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2603 workflowResourceIds.setServiceInstanceId("siId123");
2604 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2605 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2606 workflowResourceIds);
2607 assertEquals("generatedId123", id);
2611 public void validateVnfResourceIdInAAISameModelCustomizationIdTest() throws Exception {
2612 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2613 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2614 workflowResourceIds.setServiceInstanceId("siId123");
2616 GenericVnf vnf = new GenericVnf();
2617 vnf.setVnfId("id123");
2618 vnf.setVnfName("vnfName123");
2619 vnf.setModelCustomizationId("1234567");
2620 Optional<GenericVnf> opVnf = Optional.of(vnf);
2622 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2623 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2624 workflowResourceIds);
2625 assertEquals("id123", id);
2629 public void validateVnfResourceIdInAAIDiffModelCustomizationIdTest() throws Exception {
2630 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2631 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2632 workflowResourceIds.setServiceInstanceId("siId123");
2634 GenericVnf vnf = new GenericVnf();
2635 vnf.setVnfId("id123");
2636 vnf.setVnfName("vnfName123");
2637 vnf.setModelCustomizationId("9999999");
2638 Optional<GenericVnf> opVnf = Optional.of(vnf);
2640 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2642 this.expectedException.expect(DuplicateNameException.class);
2643 this.expectedException.expectMessage(containsString(
2644 "generic-vnf with name (vnfName123), same parent and different customization id (9999999) already exists. The name must be unique."));
2646 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2650 public void validateVnfResourceIdInAAINotGloballyUniqueTest() throws Exception {
2651 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2652 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2653 workflowResourceIds.setServiceInstanceId("siId123");
2656 GenericVnf vnf = new GenericVnf();
2657 vnf.setVnfId("id123");
2658 vnf.setVnfName("vnfName123");
2659 GenericVnfs genericVnfs = new GenericVnfs();
2660 genericVnfs.getGenericVnf().add(vnf);
2662 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2663 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName123")).thenReturn(genericVnfs);
2665 this.expectedException.expect(DuplicateNameException.class);
2666 this.expectedException.expectMessage(containsString(
2667 "generic-vnf with name (vnfName123) id (id123) and different parent relationship already exists. The name must be unique."));
2669 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2673 public void validateVfModuleResourceIdTest() throws Exception {
2674 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2675 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2676 workflowResourceIds.setVnfId("vnfId123");
2678 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2679 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(false);
2681 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2682 workflowResourceIds);
2683 assertEquals("generatedId123", id);
2687 public void validateVfModuleResourceIdSameModelCustIdTest() throws Exception {
2688 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2689 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2690 workflowResourceIds.setVnfId("vnfId123");
2692 VfModules vfModules = new VfModules();
2693 VfModule vfModule = new VfModule();
2694 vfModule.setVfModuleId("id123");
2695 vfModule.setVfModuleName("name123");
2696 vfModule.setModelCustomizationId("1234567");
2697 vfModules.getVfModule().add(vfModule);
2699 GenericVnf vnf = new GenericVnf();
2700 vnf.setVnfId("id123");
2701 vnf.setVnfName("vnfName123");
2702 vnf.setVfModules(vfModules);
2704 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2706 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2707 workflowResourceIds);
2708 assertEquals("id123", id);
2712 public void validateVfModuleResourceIdDifferentModelCustIdTest() throws Exception {
2713 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2714 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2715 workflowResourceIds.setVnfId("vnfId123");
2717 VfModules vfModules = new VfModules();
2718 VfModule vfModule = new VfModule();
2719 vfModule.setVfModuleId("id123");
2720 vfModule.setVfModuleName("name123");
2721 vfModule.setModelCustomizationId("9999999");
2722 vfModules.getVfModule().add(vfModule);
2724 GenericVnf vnf = new GenericVnf();
2725 vnf.setVnfId("id123");
2726 vnf.setVnfName("vnfName123");
2727 vnf.setVfModules(vfModules);
2729 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2731 this.expectedException.expect(DuplicateNameException.class);
2732 this.expectedException.expectMessage(containsString(
2733 "vfModule with name (name123), same parent and different customization id (1234567) already exists. The name must be unique."));
2735 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2740 public void validateVfModuleResourceIdNotGloballyUniqueTest() throws Exception {
2741 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2742 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2743 workflowResourceIds.setVnfId("vnfId123");
2745 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2746 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(true);
2748 this.expectedException.expect(DuplicateNameException.class);
2749 this.expectedException
2750 .expectMessage(containsString("vfModule with name name123 already exists. The name must be unique."));
2752 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2756 public void validateVolumeGroupResourceIdInAAITest() throws Exception {
2757 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2758 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2759 workflowResourceIds.setVnfId("vnfId123");
2761 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(Optional.empty());
2762 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(false);
2764 String id = workflowAction.validateVolumeGroupResourceIdInAAI("generatedId123", "name123", reqDetails,
2765 workflowResourceIds);
2766 assertEquals("generatedId123", id);
2770 public void validateVolumeGroupResourceIdInAAISameModelCustIdTest() throws Exception {
2771 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2772 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2773 workflowResourceIds.setServiceInstanceId("siId123");
2774 workflowResourceIds.setVnfId("vnfId123");
2776 VolumeGroup volumeGroup = new VolumeGroup();
2777 volumeGroup.setVolumeGroupId("id123");
2778 volumeGroup.setVolumeGroupName("name123");
2779 volumeGroup.setVfModuleModelCustomizationId("1234567");
2781 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2783 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2784 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2785 reqDetails, workflowResourceIds);
2787 assertEquals("id123", id);
2791 public void validateVolumeGroupResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2792 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2793 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2794 workflowResourceIds.setServiceInstanceId("siId123");
2795 workflowResourceIds.setVnfId("vnfId123");
2797 VolumeGroup volumeGroup = new VolumeGroup();
2798 volumeGroup.setVolumeGroupId("id123");
2799 volumeGroup.setVolumeGroupName("name123");
2800 volumeGroup.setVfModuleModelCustomizationId("9999999");
2802 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2804 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2806 this.expectedException.expect(DuplicateNameException.class);
2807 this.expectedException.expectMessage(
2808 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2810 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2811 workflowResourceIds);
2815 public void validateVolumeGroupResourceIdInAAINotGloballyUniqueTest() throws Exception {
2816 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2817 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2818 workflowResourceIds.setVnfId("vnfId123");
2820 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(Optional.empty());
2821 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(true);
2823 this.expectedException.expect(DuplicateNameException.class);
2824 this.expectedException.expectMessage(
2825 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2827 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2828 workflowResourceIds);
2832 public void validateConfigurationResourceIdInAAITest() throws Exception {
2833 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2834 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2835 workflowResourceIds.setServiceInstanceId("siId123");
2837 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2838 .thenReturn(Optional.empty());
2839 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2841 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2842 workflowResourceIds);
2843 assertEquals("generatedId123", id);
2847 public void validateConfigurationResourceIdInAAISameModelCustIdTest() throws Exception {
2848 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2849 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2850 workflowResourceIds.setServiceInstanceId("siId123");
2852 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2853 configuration.setConfigurationId("id123");
2854 configuration.setConfigurationName("name123");
2855 configuration.setModelCustomizationId("1234567");
2856 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2858 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2859 .thenReturn(opConfiguration);
2860 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2862 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2863 workflowResourceIds);
2864 assertEquals("id123", id);
2868 public void validateConfigurationResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2869 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2870 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2871 workflowResourceIds.setServiceInstanceId("siId123");
2873 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2874 configuration.setConfigurationId("id123");
2875 configuration.setConfigurationName("name123");
2876 configuration.setModelCustomizationId("9999999");
2877 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2879 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2880 .thenReturn(opConfiguration);
2881 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2883 this.expectedException.expect(DuplicateNameException.class);
2884 this.expectedException.expectMessage(containsString(
2885 "configuration with name (name123), same parent and different customization id (id123) already exists. The name must be unique."));
2887 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2888 workflowResourceIds);
2892 public void validateConfigurationResourceIdInAAINotGloballyUniqueTest() throws Exception {
2893 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2894 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2895 workflowResourceIds.setServiceInstanceId("siId123");
2897 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2898 .thenReturn(Optional.empty());
2899 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(true);
2901 this.expectedException.expect(DuplicateNameException.class);
2902 this.expectedException.expectMessage(
2903 containsString("configuration with name name123 already exists. The name must be unique."));
2905 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2906 workflowResourceIds);
2910 public void handleRuntimeExceptionTest() {
2911 execution.setVariable("BPMN_javaExpMsg", "test runtime error message");
2912 execution.setVariable("testProcessKey", "testProcessKeyValue");
2914 workflowAction.handleRuntimeException(execution);
2915 } catch (BpmnError wfe) {
2916 assertEquals("MSOWorkflowException", wfe.getErrorCode());
2922 public void traverseCatalogDbServiceMultipleNetworkTest() throws IOException, VrfBondingServiceException {
2923 execution.setVariable("testProcessKey", "testProcessKeyValue");
2924 Service service = new Service();
2925 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
2926 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
2927 networkCust.setModelCustomizationUUID("123");
2928 networkCustomizations.add(networkCust);
2929 service.setNetworkCustomizations(networkCustomizations);
2930 NetworkCollectionResourceCustomization collectionResourceCustomization =
2931 new NetworkCollectionResourceCustomization();
2932 collectionResourceCustomization.setModelCustomizationUUID("123");
2933 CollectionResource collectionResource = new CollectionResource();
2934 collectionResource.setToscaNodeType("NetworkCollection");
2935 InstanceGroup instanceGroup = new InstanceGroup();
2936 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
2937 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
2938 new CollectionResourceInstanceGroupCustomization();
2939 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
2940 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
2941 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
2942 collectionResource.setInstanceGroup(instanceGroup);
2943 collectionResourceCustomization.setCollectionResource(collectionResource);;
2944 service.setModelUUID("abc");
2945 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2946 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2947 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
2948 doReturn(collectionResourceCustomization).when(catalogDbClient)
2949 .getNetworkCollectionResourceCustomizationByID("123");
2950 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
2951 ObjectMapper mapper = new ObjectMapper();
2952 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
2953 List<Resource> resourceCounter = new ArrayList<>();
2954 thrown.expect(BpmnError.class);
2955 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
2956 workflowAction.traverseCatalogDbService(execution, sIRequest, resourceCounter, aaiResourceIds);
2960 public void sortVfModulesByBaseFirstTest() {
2961 List<Resource> resources = new ArrayList<>();
2962 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2963 resource1.setBaseVfModule(false);
2964 resources.add(resource1);
2965 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2966 resource2.setBaseVfModule(false);
2967 resources.add(resource2);
2968 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
2969 resource3.setBaseVfModule(true);
2970 resources.add(resource3);
2971 List<Resource> result = workflowAction.sortVfModulesByBaseFirst(resources);
2972 assertEquals("333", result.get(0).getResourceId());
2973 assertEquals("222", result.get(1).getResourceId());
2974 assertEquals("111", result.get(2).getResourceId());
2978 public void sortVfModulesByBaseLastTest() {
2979 List<Resource> resources = new ArrayList<>();
2980 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2981 resource1.setBaseVfModule(true);
2982 resources.add(resource1);
2983 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2984 resource2.setBaseVfModule(false);
2985 resources.add(resource2);
2986 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
2987 resource3.setBaseVfModule(false);
2988 resources.add(resource3);
2989 List<Resource> result = workflowAction.sortVfModulesByBaseLast(resources);
2990 assertEquals("333", result.get(0).getResourceId());
2991 assertEquals("222", result.get(1).getResourceId());
2992 assertEquals("111", result.get(2).getResourceId());
2996 public void findCatalogNetworkCollectionTest() {
2997 Service service = new Service();
2998 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
2999 networkCustomization.setModelCustomizationUUID("123");
3000 service.getCollectionResourceCustomizations().add(networkCustomization);
3001 doReturn(networkCustomization).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
3002 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
3003 assertNotNull(customization);
3007 public void findCatalogNetworkCollectionEmptyTest() {
3008 Service service = new Service();
3009 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
3010 networkCustomization.setModelCustomizationUUID("123");
3011 service.getCollectionResourceCustomizations().add(networkCustomization);
3012 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
3013 assertNull(customization);
3017 public void findCatalogNetworkCollectionMoreThanOneTest() {
3018 Service service = new Service();
3019 NetworkCollectionResourceCustomization networkCustomization1 = new NetworkCollectionResourceCustomization();
3020 networkCustomization1.setModelCustomizationUUID("123");
3021 NetworkCollectionResourceCustomization networkCustomization2 = new NetworkCollectionResourceCustomization();
3022 networkCustomization2.setModelCustomizationUUID("321");
3023 service.getCollectionResourceCustomizations().add(networkCustomization1);
3024 service.getCollectionResourceCustomizations().add(networkCustomization2);
3025 doReturn(networkCustomization1).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
3026 doReturn(networkCustomization2).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("321");
3027 workflowAction.findCatalogNetworkCollection(execution, service);
3028 assertEquals("Found multiple Network Collections in the Service model, only one per Service is supported.",
3029 execution.getVariable("WorkflowActionErrorMessage"));
3033 public void verifyLackOfNullPointerExceptionForNullResource() {
3034 ExecuteBuildingBlock result = null;
3036 result = workflowAction.buildExecuteBuildingBlock(new OrchestrationFlow(), null, null, null, null, null,
3037 false, null, null, null, false, null, null, true, null);
3038 } catch (NullPointerException e) {
3039 fail("NullPointerException should not be thrown when 'resource' is null");
3041 assertNotNull(result);
3045 public void traverseAAIServiceTest() {
3046 List<Resource> resourceCounter = new ArrayList<>();
3047 String resourceId = "si0";
3048 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
3050 ServiceInstance serviceInstanceAAI = new ServiceInstance();
3051 serviceInstanceAAI.setServiceInstanceId(resourceId);
3053 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstance = setServiceInstance();
3061 Configuration config = new Configuration();
3062 config.setConfigurationId("testConfigurationId2");
3063 serviceInstance.getConfigurations().add(config);
3065 Relationship relationship1 = new Relationship();
3066 relationship1.setRelatedTo("vnfc");
3067 RelationshipList relationshipList1 = new RelationshipList();
3068 relationshipList1.getRelationship().add(relationship1);
3070 Relationship relationship2 = new Relationship();
3071 relationship2.setRelatedTo("vpn-binding");
3072 RelationshipList relationshipList2 = new RelationshipList();
3073 relationshipList2.getRelationship().add(relationship2);
3075 org.onap.aai.domain.yang.Configuration aaiConfiguration1 = new org.onap.aai.domain.yang.Configuration();
3076 aaiConfiguration1.setConfigurationId("testConfigurationId");
3077 aaiConfiguration1.setRelationshipList(relationshipList1);
3079 org.onap.aai.domain.yang.Configuration aaiConfiguration2 = new org.onap.aai.domain.yang.Configuration();
3080 aaiConfiguration2.setConfigurationId("testConfigurationId2");
3081 aaiConfiguration2.setRelationshipList(relationshipList1);
3084 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById(resourceId);
3085 doReturn(serviceInstance).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
3086 doReturn(Optional.of(aaiConfiguration1)).when(aaiConfigurationResources)
3087 .getConfiguration("testConfigurationId");
3088 doReturn(Optional.of(aaiConfiguration2)).when(aaiConfigurationResources)
3089 .getConfiguration("testConfigurationId2");
3090 workflowAction.traverseAAIService(execution, resourceCounter, resourceId, aaiResourceIds);
3091 assertEquals(8, resourceCounter.size());
3092 assertTrue(resourceCounter.get(2).isBaseVfModule());
3093 assertThat(aaiResourceIds, sameBeanAs(getExpectedResourceIds()));
3094 } catch (Exception e) {
3095 fail("Unexpected exception was thrown.");
3099 private List<Pair<WorkflowType, String>> getExpectedResourceIds() {
3100 List<Pair<WorkflowType, String>> resourceIds = new ArrayList<>();
3101 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VNF, "testVnfId1"));
3102 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VFMODULE, "testVfModuleId1"));
3103 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VOLUMEGROUP, "testVolumeGroupId1"));
3104 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORK, "testNetworkId1"));
3105 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORKCOLLECTION, "testId"));
3106 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId"));
3107 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId2"));
3111 private List<OrchestrationFlow> createFlowList(String... flowNames) {
3112 List<OrchestrationFlow> result = new ArrayList<>();
3113 int sequenceNumber = 1;
3114 for (String flowName : flowNames) {
3115 OrchestrationFlow orchFlow = new OrchestrationFlow();
3116 orchFlow.setFlowName(flowName);
3117 orchFlow.setSequenceNumber(sequenceNumber++);
3118 result.add(orchFlow);
3123 private void assertEqualsBulkFlowName(List<ExecuteBuildingBlock> ebbs, String... flowNames) {
3124 for (int i = 0; i < ebbs.size(); i++) {
3125 assertEquals(ebbs.get(i).getBuildingBlock().getBpmnFlowName(), flowNames[i]);
3129 private void initExecution(String gAction, String bpmnRequest, boolean isAlaCarte) {
3130 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
3131 execution.setVariable("requestAction", gAction);
3132 execution.setVariable("bpmnRequest", bpmnRequest);
3133 execution.setVariable("aLaCarte", isAlaCarte);
3134 execution.setVariable("apiVersion", "7");
3137 private String readBpmnRequestFromFile(String fileName) throws IOException {
3138 return new String(Files.readAllBytes(Paths.get("src/test/resources/__files/" + fileName)));