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.");
247 // verify default values are present in failure case
248 assertEquals(true, execution.getVariable("isTopLevelFlow"));
249 assertEquals(false, execution.getVariable("sentSyncResponse"));
253 * SERVICE MACRO TESTS
256 public void selectExecutionListServiceMacroAssignTest() throws Exception {
257 String gAction = "assignInstance";
258 String resource = "Service";
259 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
260 initExecution(gAction, bpmnRequest, false);
261 execution.setVariable("requestUri", "v6/serviceInstances/123");
263 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
264 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
265 "AssignVolumeGroupBB", "AssignVfModuleBB");
266 northBoundRequest.setOrchestrationFlowList(orchFlows);
268 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
269 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
270 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
271 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
272 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
273 HeatTemplate volumeHeatTemplate = new HeatTemplate();
274 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
275 vfModuleCustomization.setVfModule(vfModule);
277 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
278 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
279 HeatEnvironment heatEnvironment = new HeatEnvironment();
280 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
281 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
282 HeatTemplate moduleHeatTemplate = new HeatTemplate();
283 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
284 vfModuleCustomization2.setVfModule(vfModule2);
286 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
287 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
289 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
290 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
291 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
292 .thenReturn(vfModuleCustomization);
293 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
294 .thenReturn(vfModuleCustomization2);
295 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
296 .thenReturn(vfModuleCustomization3);
297 workflowAction.selectExecutionList(execution);
298 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
299 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
300 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
304 public void selectExecutionListServiceMacroAssignNoCloudTest() throws Exception {
305 String gAction = "assignInstance";
306 String resource = "Service";
307 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_NO_CLOUD_JSON);
308 initExecution(gAction, bpmnRequest, false);
309 execution.setVariable("requestUri", "v6/serviceInstances/123");
311 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
312 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
313 "AssignVolumeGroupBB", "AssignVfModuleBB");
314 northBoundRequest.setOrchestrationFlowList(orchFlows);
316 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
317 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
318 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
319 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
320 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
321 HeatTemplate volumeHeatTemplate = new HeatTemplate();
322 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
323 vfModuleCustomization.setVfModule(vfModule);
325 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
326 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
327 HeatEnvironment heatEnvironment = new HeatEnvironment();
328 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
329 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
330 HeatTemplate moduleHeatTemplate = new HeatTemplate();
331 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
332 vfModuleCustomization2.setVfModule(vfModule2);
334 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
335 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
337 when(environment.getProperty("org.onap.so.cloud-owner")).thenReturn("att-aic");
338 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
339 false, "att-aic")).thenReturn(northBoundRequest);
340 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
341 .thenReturn(vfModuleCustomization);
342 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
343 .thenReturn(vfModuleCustomization2);
344 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
345 .thenReturn(vfModuleCustomization3);
346 workflowAction.selectExecutionList(execution);
347 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
348 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
349 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
353 public void selectExecutionListServiceMacroActivateTest() throws Exception {
354 String gAction = "activateInstance";
355 String resource = "Service";
356 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
357 initExecution(gAction, bpmnRequest, false);
358 execution.setVariable("requestUri", "v6/serviceInstances/si0");
360 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
361 List<OrchestrationFlow> orchFlows =
362 createFlowList("CreateNetworkBB", "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
363 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "ActivateServiceInstanceBB");
364 northBoundRequest.setOrchestrationFlowList(orchFlows);
366 ServiceInstance serviceInstanceAAI = new ServiceInstance();
367 serviceInstanceAAI.setServiceInstanceId("si0");
368 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
369 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
370 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
371 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
372 vnf.setVnfId("vnf0");
374 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
375 vnf.getVfModules().add(vfModule);
376 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
377 vnf.getVfModules().add(vfModule2);
379 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
380 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
381 volumeGroup.setVolumeGroupId("volumeGroup0");
382 vnf.getVolumeGroups().add(volumeGroup);
384 serviceInstanceMSO.getVnfs().add(vnf);
386 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("si0");
387 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
388 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
389 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
390 workflowAction.selectExecutionList(execution);
391 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
392 assertEqualsBulkFlowName(ebbs, "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
393 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
394 "ActivateServiceInstanceBB");
395 assertEquals("volumeGroup0", ebbs.get(0).getWorkflowResourceIds().getVolumeGroupId());
396 assertEquals("volumeGroup0", ebbs.get(1).getWorkflowResourceIds().getVolumeGroupId());
397 assertEquals("testVfModuleId1", ebbs.get(2).getWorkflowResourceIds().getVfModuleId());
398 assertEquals("testVfModuleId2", ebbs.get(3).getWorkflowResourceIds().getVfModuleId());
399 assertEquals("testVfModuleId1", ebbs.get(4).getWorkflowResourceIds().getVfModuleId());
400 assertEquals("testVfModuleId2", ebbs.get(5).getWorkflowResourceIds().getVfModuleId());
401 assertEquals("vnf0", ebbs.get(6).getWorkflowResourceIds().getVnfId());
402 assertEquals("si0", ebbs.get(7).getWorkflowResourceIds().getServiceInstanceId());
406 public void selectExecutionListServiceMacroDeactivateTest() throws Exception {
407 String gAction = "deactivateInstance";
408 String resource = "Service";
409 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
410 initExecution(gAction, bpmnRequest, false);
411 execution.setVariable("requestUri", "v6/serviceInstances/123");
413 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
414 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateServiceInstanceBB");
415 northBoundRequest.setOrchestrationFlowList(orchFlows);
417 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
418 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
419 workflowAction.selectExecutionList(execution);
420 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
421 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(), "DeactivateServiceInstanceBB");
425 public void selectExecutionListServiceMacroEmptyServiceTest() throws Exception {
426 String gAction = "createInstance";
427 String resource = "Service";
428 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
429 initExecution(gAction, bpmnRequest, false);
430 execution.setVariable("requestUri", "v6/serviceInstances/123");
432 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
433 northBoundRequest.setIsToplevelflow(true);
434 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
435 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
436 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
437 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
438 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
439 northBoundRequest.setOrchestrationFlowList(orchFlows);
441 Service service = new Service();
442 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
443 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
444 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
445 workflowAction.selectExecutionList(execution);
446 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
447 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
451 public void selectExecutionListServiceMacroCreateJustNetworkTest() throws Exception {
452 String gAction = "createInstance";
453 String resource = "Service";
454 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
455 initExecution(gAction, bpmnRequest, false);
456 execution.setVariable("requestUri", "v6/serviceInstances/123");
458 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
459 northBoundRequest.setIsToplevelflow(true);
460 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
461 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
462 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
463 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
464 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
465 northBoundRequest.setOrchestrationFlowList(orchFlows);
467 Service service = new Service();
468 NetworkResourceCustomization networkCustomization = new NetworkResourceCustomization();
469 networkCustomization.setModelCustomizationUUID("1234");
470 service.getNetworkCustomizations().add(networkCustomization);
471 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
472 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
473 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
474 workflowAction.selectExecutionList(execution);
475 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
476 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignNetworkBB", "CreateNetworkBB",
477 "ActivateNetworkBB", "ActivateServiceInstanceBB");
481 public void selectExecutionListServiceMacroCreateWithNetworkCollectionTest() throws Exception {
482 String gAction = "createInstance";
483 String resource = "Service";
484 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
485 initExecution(gAction, bpmnRequest, false);
486 execution.setVariable("requestUri", "v6/serviceInstances/123");
488 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
489 northBoundRequest.setIsToplevelflow(true);
490 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
491 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
492 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
493 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
494 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
495 northBoundRequest.setOrchestrationFlowList(orchFlows);
497 Service service = new Service();
498 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
499 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
500 networkCust.setModelCustomizationUUID("123");
501 networkCustomizations.add(networkCust);
502 service.setNetworkCustomizations(networkCustomizations);
503 NetworkCollectionResourceCustomization collectionResourceCustomization =
504 new NetworkCollectionResourceCustomization();
505 collectionResourceCustomization.setModelCustomizationUUID("123");
507 CollectionResource collectionResource = new CollectionResource();
508 collectionResource.setToscaNodeType("NetworkCollection");
509 InstanceGroup instanceGroup = new InstanceGroup();
510 instanceGroup.setToscaNodeType("NetworkCollectionResource");
511 instanceGroup.setCollectionNetworkResourceCustomizations(new ArrayList<>());
512 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
513 new CollectionNetworkResourceCustomization();
514 collectionNetworkResourceCust.setModelCustomizationUUID("123");
515 collectionNetworkResourceCust.setNetworkResourceCustomization(collectionResourceCustomization);
516 instanceGroup.getCollectionNetworkResourceCustomizations().add(collectionNetworkResourceCust);
517 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
518 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
519 new CollectionResourceInstanceGroupCustomization();
520 collectionInstanceGroupCustomization.setModelCustomizationUUID("123");
521 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
522 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
523 collectionInstanceGroupCustomization.setInstanceGroup(instanceGroup);
524 collectionInstanceGroupCustomization.setCollectionResourceCust(collectionResourceCustomization);
525 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
526 collectionResource.setInstanceGroup(instanceGroup);
527 collectionResourceCustomization.setCollectionResource(collectionResource);;
528 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
529 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
530 doReturn(collectionResourceCustomization).when(catalogDbClient)
531 .getNetworkCollectionResourceCustomizationByID("123");
532 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
533 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
534 workflowAction.selectExecutionList(execution);
535 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
536 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "CreateNetworkCollectionBB", "AssignNetworkBB",
537 "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
538 "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB",
539 "ActivateServiceInstanceBB");
540 assertEquals("Network id not empty", !ebbs.get(2).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
541 assertEquals("Network id not empty", !ebbs.get(3).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
542 assertEquals("Network id not empty", !ebbs.get(4).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
543 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
544 ebbs.get(2).getWorkflowResourceIds().getNetworkId() == ebbs.get(3).getWorkflowResourceIds()
546 && ebbs.get(3).getWorkflowResourceIds().getNetworkId() == ebbs.get(4).getWorkflowResourceIds()
549 assertEquals("Network id not empty", !ebbs.get(5).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
550 assertEquals("Network id not empty", !ebbs.get(6).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
551 assertEquals("Network id not empty", !ebbs.get(7).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
552 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
553 ebbs.get(5).getWorkflowResourceIds().getNetworkId() == ebbs.get(6).getWorkflowResourceIds()
555 && ebbs.get(6).getWorkflowResourceIds().getNetworkId() == ebbs.get(7).getWorkflowResourceIds()
558 assertEquals("Network id not empty", !ebbs.get(8).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
559 assertEquals("Network id not empty", !ebbs.get(9).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
560 assertEquals("Network id not empty", !ebbs.get(10).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
561 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
562 ebbs.get(8).getWorkflowResourceIds().getNetworkId() == ebbs.get(9).getWorkflowResourceIds()
564 && ebbs.get(9).getWorkflowResourceIds().getNetworkId() == ebbs.get(10).getWorkflowResourceIds()
570 public void selectExecutionListServiceMacroCreateWithUserParams() throws Exception {
571 String gAction = "createInstance";
572 String resource = "Service";
573 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
574 initExecution(gAction, bpmnRequest, false);
575 execution.setVariable("requestUri", "v6/serviceInstances/123");
577 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
578 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
579 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
580 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
581 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
582 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
583 northBoundRequest.setOrchestrationFlowList(orchFlows);
585 Service service = new Service();
586 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
588 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
589 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
590 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
591 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
592 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
593 HeatTemplate volumeHeatTemplate = new HeatTemplate();
594 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
595 vfModuleCustomization.setVfModule(vfModule);
597 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
598 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
599 HeatEnvironment heatEnvironment = new HeatEnvironment();
600 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
601 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
602 HeatTemplate moduleHeatTemplate = new HeatTemplate();
603 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
604 vfModuleCustomization2.setVfModule(vfModule2);
606 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
607 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
609 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
610 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
611 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
612 .thenReturn(vfModuleCustomization);
613 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
614 .thenReturn(vfModuleCustomization2);
615 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
616 .thenReturn(vfModuleCustomization3);
617 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
618 workflowAction.selectExecutionList(execution);
619 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
620 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
621 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB", "CreateVolumeGroupBB",
622 "ActivateVolumeGroupBB", "CreateVfModuleBB", "CreateVfModuleBB", "CreateVfModuleBB",
623 "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
624 "ActivateServiceInstanceBB");
625 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
626 int randomUUIDLength = UUID.randomUUID().toString().length();
627 assertEquals(randomUUIDLength, ebbs.get(1).getWorkflowResourceIds().getVnfId().length());
628 assertEquals(randomUUIDLength, ebbs.get(2).getWorkflowResourceIds().getVolumeGroupId().length());
629 assertEquals(randomUUIDLength, ebbs.get(3).getWorkflowResourceIds().getVfModuleId().length());
630 assertEquals(randomUUIDLength, ebbs.get(4).getWorkflowResourceIds().getVfModuleId().length());
631 assertEquals(randomUUIDLength, ebbs.get(5).getWorkflowResourceIds().getVfModuleId().length());
632 assertEquals(randomUUIDLength, ebbs.get(6).getWorkflowResourceIds().getVolumeGroupId().length());
633 assertEquals(randomUUIDLength, ebbs.get(7).getWorkflowResourceIds().getVolumeGroupId().length());
634 assertEquals(randomUUIDLength, ebbs.get(8).getWorkflowResourceIds().getVfModuleId().length());
635 assertEquals(randomUUIDLength, ebbs.get(9).getWorkflowResourceIds().getVfModuleId().length());
636 assertEquals(randomUUIDLength, ebbs.get(10).getWorkflowResourceIds().getVfModuleId().length());
637 assertEquals(randomUUIDLength, ebbs.get(11).getWorkflowResourceIds().getVfModuleId().length());
638 assertEquals(randomUUIDLength, ebbs.get(12).getWorkflowResourceIds().getVfModuleId().length());
639 assertEquals(randomUUIDLength, ebbs.get(13).getWorkflowResourceIds().getVfModuleId().length());
640 assertEquals(randomUUIDLength, ebbs.get(14).getWorkflowResourceIds().getVnfId().length());
641 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
642 assertEquals(true, execution.getVariable("homing"));
646 public void selectExecutionListServiceMacroDeleteTest() throws Exception {
647 String gAction = "deleteInstance";
648 String resource = "Service";
649 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
650 initExecution(gAction, bpmnRequest, false);
651 execution.setVariable("requestUri", "v6/serviceInstances/123");
653 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
654 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
655 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivatePnfBB",
656 "DeactivateNetworkBB", "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB",
657 "UnassignVfModuleBB", "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB",
658 "UnassignServiceInstanceBB");
659 northBoundRequest.setOrchestrationFlowList(orchFlows);
661 ServiceInstance serviceInstanceAAI = new ServiceInstance();
662 serviceInstanceAAI.setServiceInstanceId("aaisi123");
663 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
664 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
665 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
666 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
667 org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf pnf =
668 new org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf();
669 vnf.setVnfId("vnfId123");
670 pnf.setPnfId("pnfId123");
672 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
673 vnf.getVfModules().add(vfModule);
674 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
675 vnf.getVfModules().add(vfModule2);
677 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
678 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
679 volumeGroup.setVolumeGroupId("vg123");
680 vnf.getVolumeGroups().add(volumeGroup);
682 serviceInstanceMSO.getVnfs().add(vnf);
683 serviceInstanceMSO.getPnfs().add(pnf);
685 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
686 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
687 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
688 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
689 workflowAction.selectExecutionList(execution);
690 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
691 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
692 "DeleteVfModuleBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB",
693 "DeactivatePnfBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB", "UnassignVfModuleBB",
694 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignServiceInstanceBB");
698 public void selectExecutionListServiceMacroDeleteWithPnfTest() throws Exception {
699 String gAction = "deleteInstance";
700 String resource = "Service";
701 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
702 initExecution(gAction, bpmnRequest, false);
703 execution.setVariable("requestUri", "v6/serviceInstances/123");
705 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
706 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
707 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivatePnfBB",
708 "DeactivateNetworkBB", "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB",
709 "UnassignVfModuleBB", "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB",
710 "UnassignServiceInstanceBB");
711 northBoundRequest.setOrchestrationFlowList(orchFlows);
713 ServiceInstance serviceInstanceAAI = new ServiceInstance();
714 serviceInstanceAAI.setServiceInstanceId("aaisi123");
715 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
716 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
717 org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf pnf =
718 new org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf();
719 pnf.setPnfId("pnfId123");
721 serviceInstanceMSO.getPnfs().add(pnf);
723 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
724 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
725 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
726 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
727 workflowAction.selectExecutionList(execution);
728 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
729 assertEqualsBulkFlowName(ebbs, "DeactivatePnfBB", "DeactivateServiceInstanceBB", "UnassignServiceInstanceBB");
733 public void selectExecutionListServiceMacroUnassignTest() throws Exception {
734 String gAction = "unassignInstance";
735 String resource = "Service";
736 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
737 initExecution(gAction, bpmnRequest, false);
738 execution.setVariable("requestUri", "v6/serviceInstances/123");
740 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
741 List<OrchestrationFlow> orchFlows = createFlowList("UnassignVfModuleBB", "UnassignVolumeGroupBB",
742 "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
743 northBoundRequest.setOrchestrationFlowList(orchFlows);
745 ServiceInstance serviceInstanceAAI = new ServiceInstance();
746 serviceInstanceAAI.setServiceInstanceId("aaisi123");
747 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
748 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
749 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
750 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
751 vnf.setVnfId("vnfId123");
753 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
754 vnf.getVfModules().add(vfModule);
755 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
756 vnf.getVfModules().add(vfModule2);
758 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
759 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
760 volumeGroup.setVolumeGroupId("vg123");
761 vnf.getVolumeGroups().add(volumeGroup);
763 serviceInstanceMSO.getVnfs().add(vnf);
765 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
766 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
767 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
768 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
769 workflowAction.selectExecutionList(execution);
770 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
771 assertEqualsBulkFlowName(ebbs, "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
772 "UnassignVnfBB", "UnassignServiceInstanceBB");
776 public void selectExecutionListServiceMacroDeleteNetworkCollectionTest() throws Exception {
777 String gAction = "deleteInstance";
778 String resource = "Service";
779 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
780 initExecution(gAction, bpmnRequest, false);
781 execution.setVariable("requestUri", "v6/serviceInstances/123");
783 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
784 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
785 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
786 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
787 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
788 northBoundRequest.setOrchestrationFlowList(orchFlows);
790 ServiceInstance serviceInstanceAAI = new ServiceInstance();
791 serviceInstanceAAI.setServiceInstanceId("aaisi123");
792 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
793 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
795 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network =
796 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
797 network.setNetworkId("123");
798 serviceInstanceMSO.getNetworks().add(network);
799 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network2 =
800 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
801 network2.setNetworkId("321");
802 serviceInstanceMSO.getNetworks().add(network2);
804 Collection collection = new Collection();
805 serviceInstanceMSO.setCollection(collection);
807 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
808 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
809 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
810 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
811 workflowAction.selectExecutionList(execution);
812 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
813 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
814 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeleteNetworkCollectionBB",
815 "DeactivateServiceInstanceBB", "UnassignServiceInstanceBB");
819 public void selectExecutionListVnfMacroRecreateTest() throws Exception {
820 String gAction = "recreateInstance";
821 String resource = "Vnf";
822 String bpmnRequest = readBpmnRequestFromFile(MACRO_VNF_MACRO_REPLACE_JSON);
823 initExecution(gAction, bpmnRequest, false);
824 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/recreate");
825 execution.setVariable("serviceInstanceId", "123");
826 execution.setVariable("vnfId", "1234");
828 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
829 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
830 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
831 "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB",
832 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
833 "AAIUnsetVnfInMaintBB");
834 northBoundRequest.setOrchestrationFlowList(orchFlows);
836 ServiceInstance serviceInstanceAAI = new ServiceInstance();
837 serviceInstanceAAI.setServiceInstanceId("123");
838 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
839 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
840 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
841 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
842 vnf.setVnfId("1234");
844 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
845 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
846 vfModule.setVfModuleId("vfModule1");
847 vnf.getVfModules().add(vfModule);
848 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
849 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
850 vfModule2.setVfModuleId("vfModule2");
851 vnf.getVfModules().add(vfModule2);
853 serviceInstanceMSO.getVnfs().add(vnf);
855 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
856 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
857 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
858 false, "cloud-owner")).thenReturn(northBoundRequest);
859 workflowAction.selectExecutionList(execution);
860 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
861 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateVfModuleBB",
862 "DeactivateVfModuleBB", "DeleteVfModuleBB", "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB",
863 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
864 "AAIUnsetVnfInMaintBB");
868 public void selectExecutionListVnfMacroReplaceTest() throws Exception {
869 String gAction = "replaceInstance";
870 String resource = "Vnf";
871 String bpmnRequest = readBpmnRequestFromFile(MACRO_VNF_MACRO_REPLACE_JSON);
872 initExecution(gAction, bpmnRequest, false);
873 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/replace");
874 execution.setVariable("serviceInstanceId", "123");
875 execution.setVariable("vnfId", "1234");
877 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
878 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
879 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
880 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
881 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB",
882 "ChangeModelVnfBB", "ActivateVnfBB", "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB",
883 "AAIUnsetVnfInMaintBB");
884 northBoundRequest.setOrchestrationFlowList(orchFlows);
886 ServiceInstance serviceInstanceAAI = new ServiceInstance();
887 serviceInstanceAAI.setServiceInstanceId("123");
888 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
889 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
890 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
891 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
892 vnf.setVnfId("1234");
893 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
894 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
895 vfModule.setVfModuleId("vfModule1");
896 vnf.getVfModules().add(vfModule);
897 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
898 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
899 vfModule2.setVfModuleId("vfModule2");
900 vnf.getVfModules().add(vfModule2);
901 serviceInstanceMSO.getVnfs().add(vnf);
902 VfModule vfModuleAAI = new VfModule();
903 vfModuleAAI.setVfModuleId("vfModule2");
904 RelationshipList relationshipList = new RelationshipList();
905 Relationship relationship = new Relationship();
906 relationshipList.getRelationship().add(relationship);
907 vfModuleAAI.setRelationshipList(relationshipList);
908 Relationships relationships = new Relationships("abc");
909 Configuration config = new Configuration();
910 config.setConfigurationId("configId");
911 Optional<Configuration> configOp = Optional.of(config);
912 Optional<Relationships> relationshipsOp = Optional.of(relationships);
914 doReturn(relationshipsOp).when(workflowActionUtils).extractRelationshipsVnfc(isA(Relationships.class));
915 doReturn(configOp).when(workflowActionUtils).extractRelationshipsConfiguration(isA(Relationships.class));
916 doReturn(vfModuleAAI).when(bbSetupUtils).getAAIVfModule("1234", "vfModule2");
917 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
918 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
919 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
920 false, "cloud-owner")).thenReturn(northBoundRequest);
921 workflowAction.selectExecutionList(execution);
922 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
923 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateFabricConfigurationBB",
924 "UnassignFabricConfigurationBB", "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
925 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "ChangeModelVfModuleBB",
926 "CreateVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB",
927 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ChangeModelVnfBB", "ActivateVnfBB",
928 "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
929 for (ExecuteBuildingBlock executeBuildingBlock : ebbs) {
930 assertEquals("123", executeBuildingBlock.getWorkflowResourceIds().getServiceInstanceId());
936 public void selectExecutionListNetworkCollectionMacroCreate() throws Exception {
937 String gAction = "createInstance";
938 String resource = "NetworkCollection";
939 String bpmnRequest = readBpmnRequestFromFile(MACRO_CREATE_NETWORK_COLLECTION_JSON);
940 initExecution(gAction, bpmnRequest, false);
941 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
943 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
944 List<OrchestrationFlow> orchFlows = createFlowList("CreateNetworkCollectionBB", "AssignNetworkBB",
945 "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB");
946 northBoundRequest.setOrchestrationFlowList(orchFlows);
948 Service service = new Service();
949 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
950 CollectionResource collectionResource = new CollectionResource();
951 collectionResource.setToscaNodeType("Data NetworkCollection Data");
952 collectionResourceCustomization.setCollectionResource(collectionResource);
953 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
955 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
956 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
957 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
958 workflowAction.selectExecutionList(execution);
959 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
960 assertEqualsBulkFlowName(ebbs, "CreateNetworkCollectionBB", "AssignNetworkBB", "CreateNetworkBB",
961 "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
962 "ActivateNetworkCollectionBB");
967 public void selectExecutionListNetworkCollectionMacroDelete() throws Exception {
968 String gAction = "deleteInstance";
969 String resource = "NetworkCollection";
970 String bpmnRequest = readBpmnRequestFromFile(MACRO_CREATE_NETWORK_COLLECTION_JSON);
971 initExecution(gAction, bpmnRequest, false);
972 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
974 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
975 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateNetworkBB", "DeleteNetworkBB",
976 "UnassignNetworkBB", "DeactivateNetworkCollectionBB", "DeleteNetworkCollectionBB");
977 northBoundRequest.setOrchestrationFlowList(orchFlows);
979 Service service = new Service();
980 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
981 CollectionResource collectionResource = new CollectionResource();
982 collectionResource.setToscaNodeType("Data NetworkCollection Data");
983 collectionResourceCustomization.setCollectionResource(collectionResource);
984 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
986 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
987 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
988 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
989 workflowAction.selectExecutionList(execution);
990 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
991 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
992 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeactivateNetworkCollectionBB",
993 "DeleteNetworkCollectionBB");
997 public void selectExecutionListALaCarteVfModuleNoFabricCreateTest() throws Exception {
998 String gAction = "createInstance";
999 String resource = "VfModule";
1000 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1001 initExecution(gAction, bpmnRequest, true);
1002 execution.setVariable("requestUri",
1003 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1005 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1006 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1007 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1008 northBoundRequest.setOrchestrationFlowList(orchFlows);
1010 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1011 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1012 workflowAction.selectExecutionList(execution);
1013 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1014 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB");
1018 public void selectExecutionListALaCarteVfModuleFabricCreateTest() throws Exception {
1019 String gAction = "createInstance";
1020 String resource = "VfModule";
1021 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1022 initExecution(gAction, bpmnRequest, true);
1023 execution.setVariable("requestUri",
1024 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1026 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1027 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1028 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1029 northBoundRequest.setOrchestrationFlowList(orchFlows);
1031 List<CvnfcCustomization> cvnfcCustomizations = new ArrayList<CvnfcCustomization>();
1032 CvnfcCustomization cvnfcCustomization = new CvnfcCustomization();
1033 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1034 new CvnfcConfigurationCustomization();
1035 ConfigurationResource configurationResource = new ConfigurationResource();
1036 configurationResource.setToscaNodeType("FabricConfiguration");
1037 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1038 vnfVfmoduleCvnfcConfigurationCustomization.setModelInstanceName("modelInstanceName1");
1039 vnfVfmoduleCvnfcConfigurationCustomization.setCvnfcCustomization(cvnfcCustomization);
1040 List<CvnfcConfigurationCustomization> custSet = new ArrayList<CvnfcConfigurationCustomization>();
1041 custSet.add(vnfVfmoduleCvnfcConfigurationCustomization);
1042 cvnfcCustomization.setCvnfcConfigurationCustomization(custSet);
1043 cvnfcCustomization.setDescription("description");
1044 cvnfcCustomizations.add(cvnfcCustomization);
1046 CvnfcCustomization cvnfcCustomization2 = new CvnfcCustomization();
1047 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization2 =
1048 new CvnfcConfigurationCustomization();
1049 ConfigurationResource configurationResource2 = new ConfigurationResource();
1050 configurationResource2.setToscaNodeType("FabricConfiguration");
1051 vnfVfmoduleCvnfcConfigurationCustomization2.setConfigurationResource(configurationResource2);
1052 vnfVfmoduleCvnfcConfigurationCustomization2.setModelInstanceName("modelInstanceName2");
1053 vnfVfmoduleCvnfcConfigurationCustomization2.setCvnfcCustomization(cvnfcCustomization2);
1054 List<CvnfcConfigurationCustomization> custSet2 = new ArrayList<CvnfcConfigurationCustomization>();
1055 custSet2.add(vnfVfmoduleCvnfcConfigurationCustomization2);
1056 cvnfcCustomization2.setCvnfcConfigurationCustomization(custSet2);
1057 cvnfcCustomization2.setDescription("description2");
1058 cvnfcCustomizations.add(cvnfcCustomization2);
1060 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1061 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1062 // when(catalogDbClient.getCvnfcCustomizationByVnfCustomizationUUIDAndVfModuleCustomizationUUID("fc25201d-36d6-43a3-8d39-fdae88e526ae",
1063 // "9a6d01fd-19a7-490a-9800-460830a12e0b")).thenReturn(cvnfcCustomizations);
1064 workflowAction.selectExecutionList(execution);
1065 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1066 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1067 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "AssignFabricConfigurationBB",
1068 "ActivateFabricConfigurationBB");
1072 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceTest() throws Exception {
1073 String gAction = "replaceInstance";
1074 String resource = "VfModule";
1075 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1076 initExecution(gAction, bpmnRequest, true);
1077 execution.setVariable("requestUri",
1078 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1080 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1081 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1082 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1083 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1084 workflowAction.selectExecutionList(execution);
1085 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1087 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1088 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1089 "ChangeModelServiceInstanceBB");
1093 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1094 String gAction = "replaceInstanceRetainAssignments";
1095 String resource = "VfModule";
1096 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1097 initExecution(gAction, bpmnRequest, true);
1098 execution.setVariable("requestUri",
1099 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1101 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1102 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1103 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1104 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1105 workflowAction.selectExecutionList(execution);
1106 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1108 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1109 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1113 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceTest() throws Exception {
1114 String gAction = "replaceInstance";
1115 String resource = "VfModule";
1116 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1117 initExecution(gAction, bpmnRequest, true);
1118 execution.setVariable("requestUri",
1119 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1120 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1121 execution.setVariable("vfModuleId", "1234");
1123 VolumeGroup volumeGroup = new VolumeGroup();
1124 volumeGroup.setVolumeGroupId("volumeGroupId");
1125 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1126 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1127 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1128 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1129 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1130 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1131 workflowAction.selectExecutionList(execution);
1132 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1134 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1135 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVfModuleBB",
1136 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1140 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceRetainAssignmentsTest()
1142 String gAction = "replaceInstanceRetainAssignments";
1143 String resource = "VfModule";
1144 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1145 initExecution(gAction, bpmnRequest, true);
1146 execution.setVariable("requestUri",
1147 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1148 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1149 execution.setVariable("vfModuleId", "1234");
1151 VolumeGroup volumeGroup = new VolumeGroup();
1152 volumeGroup.setVolumeGroupId("volumeGroupId");
1153 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1154 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1156 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1157 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1158 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1159 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1160 workflowAction.selectExecutionList(execution);
1161 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1163 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1164 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
1165 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1169 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceTest() throws Exception {
1170 String gAction = "replaceInstance";
1171 String resource = "VfModule";
1172 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1173 initExecution(gAction, bpmnRequest, true);
1174 execution.setVariable("requestUri",
1175 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1176 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1177 execution.setVariable("vfModuleId", "1234");
1179 VolumeGroup volumeGroup = new VolumeGroup();
1180 volumeGroup.setVolumeGroupId("volumeGroupId");
1181 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1182 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1184 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1185 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1186 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1187 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1188 vfModuleCustomization.setVfModule(vfModule);
1189 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1190 .thenReturn(vfModuleCustomization);
1192 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1193 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1194 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1195 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1196 workflowAction.selectExecutionList(execution);
1197 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1199 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1200 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1201 "ChangeModelServiceInstanceBB");
1205 public void selectExecutionListALaCarteVfModuleWithFabricKeepVolumeGroupReplaceTest() throws Exception {
1206 String gAction = "replaceInstance";
1207 String resource = "VfModule";
1208 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1209 initExecution(gAction, bpmnRequest, true);
1210 execution.setVariable("requestUri",
1211 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1212 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1213 execution.setVariable("vfModuleId", "1234");
1215 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1216 vnf.setVnfId("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1217 vnf.setModelCustomizationId("modelCustomizationId");
1218 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
1220 org.onap.aai.domain.yang.VfModule vfModuleFromAAI = new org.onap.aai.domain.yang.VfModule();
1221 vfModuleFromAAI.setModelCustomizationId("modelCustomizationId");
1222 vfModuleFromAAI.setVfModuleId("1234");
1223 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModuleFromAAI);
1225 VolumeGroup volumeGroup = new VolumeGroup();
1226 volumeGroup.setVolumeGroupId("volumeGroupId");
1227 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1228 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1230 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1231 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1232 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1233 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1234 vfModuleCustomization.setVfModule(vfModule);
1235 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1236 .thenReturn(vfModuleCustomization);
1237 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1238 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1239 vnfc.setModelInvariantId("modelInvariantId");
1240 vnfc.setVnfcName("testVnfcName");
1242 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(), any(), any());
1244 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1245 configuration.setConfigurationId("configurationId");
1246 configuration.setModelCustomizationId("modelCustimizationId");
1247 configuration.setConfigurationName("testConfigurationName");
1248 doReturn(configuration).when(SPY_workflowAction).getRelatedResourcesInVnfc(any(), any(), any());
1250 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1251 northBoundRequest.setOrchestrationFlowList(replaceVfModuleWithFabricOrchFlows);
1252 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1253 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1254 SPY_workflowAction.selectExecutionList(execution);
1255 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1257 assertEqualsBulkFlowName(ebbs, "DeleteFabricConfigurationBB", "DeactivateVfModuleBB", "DeleteVfModuleATTBB",
1258 "UnassignVFModuleBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1259 "AddFabricConfigurationBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1263 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1264 String gAction = "replaceInstanceRetainAssignments";
1265 String resource = "VfModule";
1266 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1267 initExecution(gAction, bpmnRequest, true);
1268 execution.setVariable("requestUri",
1269 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1270 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1271 execution.setVariable("vfModuleId", "1234");
1273 VolumeGroup volumeGroup = new VolumeGroup();
1274 volumeGroup.setVolumeGroupId("volumeGroupId");
1275 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1276 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1278 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1279 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1280 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1281 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1282 vfModuleCustomization.setVfModule(vfModule);
1283 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1284 .thenReturn(vfModuleCustomization);
1286 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1287 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1288 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1289 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1290 workflowAction.selectExecutionList(execution);
1291 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1293 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1294 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1298 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceTest() throws Exception {
1299 String gAction = "replaceInstance";
1300 String resource = "VfModule";
1301 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1302 initExecution(gAction, bpmnRequest, true);
1303 execution.setVariable("requestUri",
1304 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1305 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1306 execution.setVariable("vfModuleId", "1234");
1308 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1309 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1310 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1311 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1312 vfModuleCustomization.setVfModule(vfModule);
1313 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1314 .thenReturn(vfModuleCustomization);
1316 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1317 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1318 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1319 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1320 workflowAction.selectExecutionList(execution);
1321 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1323 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1324 "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1325 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1329 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceRetainAssignmentsTest()
1331 String gAction = "replaceInstanceRetainAssignments";
1332 String resource = "VfModule";
1333 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1334 initExecution(gAction, bpmnRequest, true);
1335 execution.setVariable("requestUri",
1336 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1337 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1338 execution.setVariable("vfModuleId", "1234");
1340 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1341 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1342 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1343 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1344 vfModuleCustomization.setVfModule(vfModule);
1345 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1346 .thenReturn(vfModuleCustomization);
1348 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1349 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1350 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1351 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1352 workflowAction.selectExecutionList(execution);
1353 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1355 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "AssignVolumeGroupBB",
1356 "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
1357 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1361 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceTest() throws Exception {
1362 String gAction = "replaceInstance";
1363 String resource = "VfModule";
1364 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_REPLACE_REBUILD_VOLUME_GROUPS_JSON);
1365 initExecution(gAction, bpmnRequest, true);
1366 execution.setVariable("requestUri",
1367 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1368 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1369 execution.setVariable("vfModuleId", "1234");
1371 VolumeGroup volumeGroup = new VolumeGroup();
1372 volumeGroup.setVolumeGroupId("volumeGroupId");
1373 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1374 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1376 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1377 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1378 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1379 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1380 vfModuleCustomization.setVfModule(vfModule);
1381 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1382 .thenReturn(vfModuleCustomization);
1384 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1385 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1386 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1387 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1388 workflowAction.selectExecutionList(execution);
1389 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1391 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1392 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
1393 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
1394 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1398 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1399 String gAction = "replaceInstanceRetainAssignments";
1400 String resource = "VfModule";
1401 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_REPLACE_REBUILD_VOLUME_GROUPS_JSON);
1402 initExecution(gAction, bpmnRequest, true);
1403 execution.setVariable("requestUri",
1404 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1405 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1406 execution.setVariable("vfModuleId", "1234");
1408 VolumeGroup volumeGroup = new VolumeGroup();
1409 volumeGroup.setVolumeGroupId("volumeGroupId");
1410 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1411 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1413 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1414 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1415 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1416 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1417 vfModuleCustomization.setVfModule(vfModule);
1418 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1419 .thenReturn(vfModuleCustomization);
1421 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1422 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1423 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1424 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1425 workflowAction.selectExecutionList(execution);
1426 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1428 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1429 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB", "ChangeModelVfModuleBB",
1430 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1431 "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1436 public void selectExecutionListALaCarteVfModuleFabricDeleteTest() throws Exception {
1437 String gAction = "deleteInstance";
1438 String resource = "VfModule";
1439 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1440 initExecution(gAction, bpmnRequest, true);
1441 execution.setVariable("requestUri",
1442 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1444 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1445 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1446 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1447 northBoundRequest.setOrchestrationFlowList(orchFlows);
1449 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1450 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1452 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1453 vnf.setVnfId("vnf0");
1454 vnf.setModelCustomizationId("modelCustomizationId");
1455 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1457 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1458 vfModule.setModelCustomizationId("modelCustomizationId");
1459 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1461 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1462 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1463 vnfc.setModelInvariantId("modelInvariantId");
1464 vnfc.setVnfcName("testVnfcName");
1466 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1469 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1470 configuration.setConfigurationId("configurationId");
1471 configuration.setModelCustomizationId("modelCustimizationId");
1472 configuration.setConfigurationName("testConfigurationName");
1473 doReturn(configuration).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1476 SPY_workflowAction.selectExecutionList(execution);
1477 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1478 assertEqualsBulkFlowName(ebbs, "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB",
1479 "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1483 public void getConfigBuildingBlocksNoVfModuleFabricDeleteTest() throws Exception {
1484 String gAction = "deleteInstance";
1485 ObjectMapper mapper = new ObjectMapper();
1486 WorkflowType resourceType = WorkflowType.VFMODULE;
1487 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1488 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1489 execution.setVariable("requestAction", gAction);
1490 execution.setVariable("bpmnRequest", bpmnRequest);
1491 execution.setVariable("vnfId", "1234");
1492 execution.setVariable("vfModuleId", "vfModuleId1234");
1493 execution.setVariable("requestUri",
1494 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1495 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1496 RequestDetails requestDetails = sIRequest.getRequestDetails();
1497 String requestAction = "deleteInstance";
1498 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1499 boolean aLaCarte = true;
1500 String apiVersion = "7";
1501 String vnfType = "vnfType";
1502 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1503 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1504 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1505 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1507 thrown.expect(AAIEntityNotFoundException.class);
1508 thrown.expectMessage(containsString(
1509 "No matching VfModule is found in Generic-Vnf in AAI for vnfId: 1234 and vfModuleId : vfModuleId1234"));
1511 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1512 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1514 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1515 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1516 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1517 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1519 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1520 vnf.setVnfId("vnf0");
1521 vnf.setModelCustomizationId("modelCustomizationId");
1522 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1524 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1525 vfModule.setModelCustomizationId("modelCustomizationId");
1526 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(null);
1528 SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1532 public void getConfigBuildingBlocksTest() throws Exception {
1533 String gAction = "deleteInstance";
1534 ObjectMapper mapper = new ObjectMapper();
1535 mapper.disable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES);
1537 WorkflowType resourceType = WorkflowType.VFMODULE;
1538 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1539 execution.setVariable("requestAction", gAction);
1540 String bpmnRequest =
1541 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1542 execution.setVariable("bpmnRequest", bpmnRequest);
1543 execution.setVariable("vnfId", "1234");
1544 execution.setVariable("vfModuleId", "vfModuleId1234");
1545 execution.setVariable("requestUri",
1546 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1547 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1548 RequestDetails requestDetails = sIRequest.getRequestDetails();
1549 String requestAction = "deleteInstance";
1550 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1551 boolean aLaCarte = true;
1552 String apiVersion = "7";
1553 String vnfType = "vnfType";
1554 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1555 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1556 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1557 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1559 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1560 "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
1562 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1563 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1564 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1565 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1567 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1568 vnf.setVnfId("vnf0");
1569 vnf.setModelCustomizationId("modelCustomizationId");
1570 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
1572 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1573 vfModule.setModelCustomizationId("modelCustomizationId");
1575 org.onap.aai.domain.yang.Configuration config1 = new org.onap.aai.domain.yang.Configuration();
1576 config1.setConfigurationId("config1");
1577 org.onap.aai.domain.yang.Configuration config2 = new org.onap.aai.domain.yang.Configuration();
1578 config2.setConfigurationId("config2");
1580 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1581 org.onap.aai.domain.yang.Vnfc vnfc1 = new org.onap.aai.domain.yang.Vnfc();
1582 vnfc1.setVnfcName("zauk53avetd02svm001");
1583 org.onap.aai.domain.yang.Vnfc vnfc2 = new org.onap.aai.domain.yang.Vnfc();
1584 vnfc2.setVnfcName("zauk53avetd02tvm001");
1588 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModule);
1589 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(),
1590 eq(org.onap.aai.domain.yang.Vnfc.class), eq(Types.VNFC));
1591 doReturn(config1).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc1),
1592 eq(org.onap.aai.domain.yang.Configuration.class), eq(Types.CONFIGURATION));
1593 doReturn(config2).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc2),
1594 eq(org.onap.aai.domain.yang.Configuration.class), eq(Types.CONFIGURATION));
1596 List<ExecuteBuildingBlock> results = SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1598 assertFalse(results.isEmpty());
1599 assertEquals(2, results.size());
1600 assertEquals("config1", results.get(0).getWorkflowResourceIds().getConfigurationId());
1601 assertEquals("config2", results.get(1).getWorkflowResourceIds().getConfigurationId());
1602 assertEquals("zauk53avetd02svm001", results.get(0).getConfigurationResourceKeys().getVnfcName());
1603 assertEquals("zauk53avetd02tvm001", results.get(1).getConfigurationResourceKeys().getVnfcName());
1607 public void getConfigBuildingBlocksNullConfigurationTest() throws Exception {
1608 String gAction = "deleteInstance";
1609 ObjectMapper mapper = new ObjectMapper();
1610 mapper.disable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES);
1612 WorkflowType resourceType = WorkflowType.VFMODULE;
1613 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1614 execution.setVariable("requestAction", gAction);
1615 String bpmnRequest =
1616 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1617 execution.setVariable("bpmnRequest", bpmnRequest);
1618 execution.setVariable("vnfId", "1234");
1619 execution.setVariable("vfModuleId", "vfModuleId1234");
1620 execution.setVariable("requestUri",
1621 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1622 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1623 RequestDetails requestDetails = sIRequest.getRequestDetails();
1624 String requestAction = "deleteInstance";
1625 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1626 boolean aLaCarte = true;
1627 String apiVersion = "7";
1628 String vnfType = "vnfType";
1629 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1630 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1631 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1632 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1634 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1635 "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
1637 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1638 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1639 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1640 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1642 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1643 vnf.setVnfId("vnf0");
1644 vnf.setModelCustomizationId("modelCustomizationId");
1645 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
1647 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1648 vfModule.setModelCustomizationId("modelCustomizationId");
1650 /* this is a test case where configuration for vnfc is null */
1651 org.onap.aai.domain.yang.Configuration config1 = null;
1652 org.onap.aai.domain.yang.Configuration config2 = new org.onap.aai.domain.yang.Configuration();
1653 config2.setConfigurationId("config2");
1655 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1656 org.onap.aai.domain.yang.Vnfc vnfc1 = new org.onap.aai.domain.yang.Vnfc();
1657 vnfc1.setVnfcName("zauk53avetd02svm001");
1658 org.onap.aai.domain.yang.Vnfc vnfc2 = new org.onap.aai.domain.yang.Vnfc();
1659 vnfc2.setVnfcName("zauk53avetd02tvm001");
1663 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModule);
1664 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(),
1665 eq(org.onap.aai.domain.yang.Vnfc.class), eq(Types.VNFC));
1666 doReturn(config1).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc1),
1667 eq(org.onap.aai.domain.yang.Configuration.class), eq(Types.CONFIGURATION));
1668 doReturn(config2).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc2),
1669 eq(org.onap.aai.domain.yang.Configuration.class), eq(Types.CONFIGURATION));
1671 List<ExecuteBuildingBlock> results = SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1673 assertFalse(results.isEmpty());
1674 assertEquals(1, results.size());
1675 assertEquals("config2", results.get(0).getWorkflowResourceIds().getConfigurationId());
1676 assertEquals("zauk53avetd02tvm001", results.get(0).getConfigurationResourceKeys().getVnfcName());
1680 public void selectExecutionListALaCarteVfModuleNoFabricDeleteTest() throws Exception {
1681 String gAction = "deleteInstance";
1682 String resource = "VfModule";
1683 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1684 initExecution(gAction, bpmnRequest, true);
1685 execution.setVariable("requestUri",
1686 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1688 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1689 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1690 "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
1691 northBoundRequest.setOrchestrationFlowList(orchFlows);
1693 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1694 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1696 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1697 vnf.setVnfId("vnf0");
1698 vnf.setModelCustomizationId("modelCustomizationId");
1699 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1701 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1702 vfModule.setModelCustomizationId("modelCustomizationId");
1703 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1705 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1707 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1710 SPY_workflowAction.selectExecutionList(execution);
1711 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1712 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1716 public void selectExecutionListMacroResumeTest() throws Exception {
1717 String gAction = "createInstance";
1718 String resource = "Service";
1719 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
1720 initExecution(gAction, bpmnRequest, false);
1721 execution.setVariable("requestUri", "v6/serviceInstances/123");
1723 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1724 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1725 northBoundRequest.setOrchestrationFlowList(orchFlows);
1727 Service service = new Service();
1728 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
1730 ServiceInstance si = new ServiceInstance();
1732 when(bbSetupUtils.getAAIServiceInstanceById("123")).thenReturn(si);
1733 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1735 String flowsToExecuteString =
1736 "[{\"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\"}}]";
1737 ObjectMapper om = new ObjectMapper();
1738 List<ExecuteBuildingBlock> flowsToExecute = null;
1740 ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
1741 flowsToExecute = Arrays.asList(asArray);
1742 } catch (Exception e) {
1743 e.printStackTrace();
1746 when(bbSetupUtils.loadOriginalFlowExecutionPath(anyString())).thenReturn(flowsToExecute);
1748 workflowAction.selectExecutionList(execution);
1749 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1750 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB");
1754 public void getRelatedResourcesInVfModuleTest() throws Exception {
1755 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1756 vnfc.setModelInvariantId("modelInvariantId");
1757 vnfc.setVnfcName("testVnfcName");
1759 String vfncPayload =
1760 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/vnfcResponse.json")));
1761 AAIResultWrapper vfncWrapper = new AAIResultWrapper(vfncPayload);
1763 String configurationPayload =
1764 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/configurationResponse.json")));
1765 AAIResultWrapper configurationWrapper = new AAIResultWrapper(configurationPayload);
1766 List<AAIResultWrapper> configurationResultWrappers = new ArrayList<AAIResultWrapper>();
1767 configurationResultWrappers.add(configurationWrapper);
1769 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().vnfc(vnfc.getVnfcName()));
1770 when(bbSetupUtils.getAAIResourceDepthOne(uri)).thenReturn(vfncWrapper);
1772 doReturn(configurationResultWrappers).when(SPY_workflowAction).getResultWrappersFromRelationships(anyObject(),
1774 org.onap.aai.domain.yang.Configuration configuration = SPY_workflowAction.getRelatedResourcesInVnfc(vnfc,
1775 org.onap.aai.domain.yang.Configuration.class, Types.CONFIGURATION);
1776 assertEquals("testConfigurationId", configuration.getConfigurationId());
1780 * WorkflowActionBB Tests
1784 public void pluralTest() {
1785 List<String> items = Arrays.asList("serviceInstances, Service", "vnfs, Vnf", "vfModules, VfModule",
1786 "networks, Network", "invalidNames, invalidNames");
1787 items.forEach(item -> {
1788 String[] split = item.split(",");
1789 String type = split[0].trim();
1790 String expected = split[1].trim();
1791 assertThat(workflowAction.convertTypeFromPlural(type), equalTo(expected));
1796 public void sortExecutionPathByObjectForVlanTaggingCreateTest() throws Exception {
1797 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1799 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("0");
1800 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1801 executeFlows.add(ebb);
1803 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("1");
1804 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1805 executeFlows.add(ebb2);
1807 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("0");
1808 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1809 executeFlows.add(ebb3);
1811 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("1");
1812 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1813 executeFlows.add(ebb4);
1815 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("0");
1816 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1817 executeFlows.add(ebb5);
1819 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("1");
1820 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1821 executeFlows.add(ebb6);
1823 List<ExecuteBuildingBlock> sorted =
1824 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "createInstance");
1825 assertEqualsBulkFlowName(sorted, "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB",
1826 "CreateNetworkBB", "ActivateNetworkBB");
1830 public void sortExecutionPathByObjectForVlanTaggingDeleteTest() throws Exception {
1831 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1833 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("0");
1834 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1835 executeFlows.add(ebb);
1837 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("1");
1838 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1839 executeFlows.add(ebb2);
1841 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("0");
1842 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1843 executeFlows.add(ebb3);
1845 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("1");
1846 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1847 executeFlows.add(ebb4);
1849 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("0");
1850 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1851 executeFlows.add(ebb5);
1853 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("1");
1854 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1855 executeFlows.add(ebb6);
1857 List<ExecuteBuildingBlock> sorted =
1858 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "deleteInstance");
1859 assertEqualsBulkFlowName(sorted, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1860 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB");
1864 public void queryNorthBoundRequestCatalogDbNestedTest() throws MalformedURLException {
1865 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1866 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
1867 "VNF-Macro-Replace", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
1868 northBoundRequest.setOrchestrationFlowList(orchFlows);
1869 List<OrchestrationFlow> macroFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1870 "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB");
1872 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner("replaceInstance",
1873 "Vnf", false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1874 when(catalogDbClient.getOrchestrationFlowByAction("VNF-Macro-Replace")).thenReturn(macroFlows);
1875 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "replaceInstance",
1876 WorkflowType.VNF, false, "my-custom-cloud-owner");
1877 assertEquals(flows.get(0).getFlowName(), "AAICheckVnfInMaintBB");
1878 assertEquals(flows.get(1).getFlowName(), "AAISetVnfInMaintBB");
1879 assertEquals(flows.get(2).getFlowName(), "DeactivateVfModuleBB");
1880 assertEquals(flows.get(3).getFlowName(), "DeleteVfModuleBB");
1881 assertEquals(flows.get(4).getFlowName(), "DeactivateVnfBB");
1882 assertEquals(flows.get(5).getFlowName(), "CreateVfModuleBB");
1883 assertEquals(flows.get(6).getFlowName(), "ActivateVfModuleBB");
1884 assertEquals(flows.get(7).getFlowName(), "ActivateVnfBB");
1885 assertEquals(flows.get(8).getFlowName(), "SDNOVnfHealthCheckBB");
1886 assertEquals(flows.get(9).getFlowName(), "AAIUnsetVnfInMaintBB");
1890 public void queryNorthBoundRequestCatalogDbTransportTest() throws MalformedURLException {
1891 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1892 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1893 northBoundRequest.setOrchestrationFlowList(orchFlows);
1894 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwnerAndServiceType(
1895 "createInstance", "Service", true, "my-custom-cloud-owner", "TRANSPORT")).thenReturn(northBoundRequest);
1897 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "createInstance",
1898 WorkflowType.SERVICE, true, "my-custom-cloud-owner", "TRANSPORT");
1899 assertEquals(flows.get(0).getFlowName(), "AssignServiceInstanceBB");
1903 public void extractResourceIdAndTypeFromUriTest() {
1904 String uri = "/v6/serviceInstances/123";
1905 String uri2 = "/v6/serviceInstances/123/vnfs/1234";
1906 String uri3 = "/v6/serviceInstances";
1907 String uri4 = "/v6/serviceInstances/assign";
1908 String uri5 = "'/v6/serviceInstances/123/vnfs";
1909 String uri6 = "/v6/serviceInstances/123/vnfs/1234/someAction";
1910 String uri7 = "/v6/serviceInstances/123/vnfs/1234/vfModules/5678/replace";
1911 String uri8 = "/v6/serviceInstances/123/vnfs/1234/vfModules/scaleOut";
1912 Resource expected1 = new Resource(WorkflowType.SERVICE, "123", true);
1913 Resource expected2 = new Resource(WorkflowType.VNF, "1234", false);
1914 Resource expected3 = new Resource(WorkflowType.VNF, "1234", false);
1915 Resource expected4 = new Resource(WorkflowType.VFMODULE, "5678", false);
1916 Resource result = workflowAction.extractResourceIdAndTypeFromUri(uri);
1917 assertEquals(expected1.getResourceId(), result.getResourceId());
1918 assertEquals(expected1.getResourceType(), result.getResourceType());
1919 result = workflowAction.extractResourceIdAndTypeFromUri(uri2);
1920 assertEquals(expected2.getResourceId(), result.getResourceId());
1921 assertEquals(expected2.getResourceType(), result.getResourceType());
1922 result = workflowAction.extractResourceIdAndTypeFromUri(uri3);
1923 assertEquals("Service", result.getResourceType().toString());
1924 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1925 result = workflowAction.extractResourceIdAndTypeFromUri(uri4);
1926 assertEquals("Service", result.getResourceType().toString());
1927 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1928 result = workflowAction.extractResourceIdAndTypeFromUri(uri5);
1929 assertEquals("Vnf", result.getResourceType().toString());
1930 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1931 result = workflowAction.extractResourceIdAndTypeFromUri(uri6);
1932 assertEquals(expected3.getResourceId(), result.getResourceId());
1933 assertEquals(expected3.getResourceType(), result.getResourceType());
1934 result = workflowAction.extractResourceIdAndTypeFromUri(uri7);
1935 assertEquals(expected4.getResourceId(), result.getResourceId());
1936 assertEquals(expected4.getResourceType(), result.getResourceType());
1937 result = workflowAction.extractResourceIdAndTypeFromUri(uri8);
1938 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1939 assertEquals("VfModule", result.getResourceType().toString());
1944 public void extractResourceIdAndTypeFromUriInvalidTypeTest() {
1945 this.expectedException.expect(IllegalArgumentException.class);
1946 this.expectedException.expectMessage(containsString("Uri could not be parsed. No type found."));
1947 workflowAction.extractResourceIdAndTypeFromUri("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace");
1951 public void extractResourceIdAndTypeFromUriInvalidUriTest() {
1952 this.expectedException.expect(IllegalArgumentException.class);
1953 this.expectedException.expectMessage(containsString("Uri could not be parsed:"));
1954 workflowAction.extractResourceIdAndTypeFromUri("something that doesn't match anything");
1958 public void extractResourceIdAndTypeFromUriResumeTest() {
1959 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1960 "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");
1961 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1965 public void extractResourceIdAndTypeFromUriReplaceResumeTest() {
1966 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1967 "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");
1968 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1972 public void extractResourceIdAndTypeFromUriDeActiveResumeTest() {
1973 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1974 "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");
1975 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1979 public void extractResourceIdAndTypeFromUriResumeIdOnly() {
1980 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1981 "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");
1982 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1986 public void isUriResumeTest() {
1987 assertTrue(workflowAction.isUriResume(
1988 "http://localhost:9100/onap/so/infra/orchestrationRequests/v7/requests/2f8ab587-ef6a-4456-b7b2-d73f9363dabd/resume"));
1989 assertTrue(workflowAction.isUriResume(
1990 " http://localhost:9100/onap/so/infra/serviceInstantiation/v7/serviceInstances/4ff87c63-461b-4d83-8121-d351e6db216c/vnfs/eea9b93b-b5b9-4fad-9c35-12d52e4b683f/vfModules/33cb74cd-9cb3-4090-a3c0-1b8c8e235847/resume"));
1992 assertFalse(workflowAction.isUriResume("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace"));
1996 public void isRequestMacroServiceResumeTest() {
1997 ServiceInstance si = new ServiceInstance();
1998 when(bbSetupUtils.getAAIServiceInstanceById(anyString())).thenReturn(si);
1999 assertFalse(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", ""));
2000 assertTrue(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", "123"));
2004 public void populateResourceIdsFromApiHandlerTest() {
2005 execution.setVariable("serviceInstanceId", "123");
2006 execution.setVariable("vnfId", "888");
2007 WorkflowResourceIds x = workflowAction.populateResourceIdsFromApiHandler(execution);
2008 assertEquals("123", x.getServiceInstanceId());
2009 assertEquals("888", x.getVnfId());
2010 assertNull(x.getVolumeGroupId());
2013 private RequestDetails setupRequestDetails(String globalSubscriberId, String subscriptionServiceType,
2014 String modelCustomizationId) {
2015 RequestDetails reqDetails = new RequestDetails();
2016 SubscriberInfo subInfo = new SubscriberInfo();
2017 subInfo.setGlobalSubscriberId(globalSubscriberId);
2018 reqDetails.setSubscriberInfo(subInfo);
2019 RequestParameters reqParams = new RequestParameters();
2020 reqParams.setSubscriptionServiceType(subscriptionServiceType);
2021 reqDetails.setRequestParameters(reqParams);
2022 ModelInfo modelInfo = new ModelInfo();
2023 modelInfo.setModelCustomizationId(modelCustomizationId);
2024 reqDetails.setModelInfo(modelInfo);
2029 public void validateResourceIdInAAIVnfTest() throws Exception {
2030 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2031 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2032 workflowResourceIds.setServiceInstanceId("siId123");
2034 GenericVnf vnf = new GenericVnf();
2035 vnf.setVnfId("id123");
2036 vnf.setVnfName("vnfName123");
2037 vnf.setModelCustomizationId("1234567");
2038 Optional<GenericVnf> opVnf = Optional.of(vnf);
2039 GenericVnf vnf2 = new GenericVnf();
2040 vnf2.setVnfId("id123");
2041 vnf2.setVnfName("vnfName222");
2042 vnf2.setModelCustomizationId("222");
2043 Optional<GenericVnf> opVnf2 = Optional.of(vnf2);
2044 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2045 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName222")).thenReturn(opVnf2);
2046 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2047 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName123", reqDetails,
2048 workflowResourceIds);
2049 assertEquals("id123", id);
2050 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "111111", reqDetails,
2051 workflowResourceIds);
2052 assertEquals("generatedId123", id2);
2054 this.expectedException.expect(DuplicateNameException.class);
2055 this.expectedException.expectMessage(containsString(
2056 "generic-vnf with name (vnfName222), same parent and different customization id (222) already exists. The name must be unique."));
2057 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName222", reqDetails,
2058 workflowResourceIds);
2062 public void validateResourceIdInAAIVnfNotGloballyUniqueTest() throws Exception {
2063 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2064 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2065 workflowResourceIds.setServiceInstanceId("siId123");
2068 GenericVnfs genericVnfs = new GenericVnfs();
2069 GenericVnf vnf3 = new GenericVnf();
2070 vnf3.setVnfId("id123");
2071 vnf3.setVnfName("vnfName333");
2072 genericVnfs.getGenericVnf().add(vnf3);
2073 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName333")).thenReturn(Optional.empty());
2074 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName333")).thenReturn(genericVnfs);
2076 this.expectedException.expect(DuplicateNameException.class);
2077 this.expectedException.expectMessage(containsString(
2078 "generic-vnf with name (vnfName333) id (id123) and different parent relationship already exists. The name must be unique."));
2079 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName333", reqDetails,
2080 workflowResourceIds);
2084 public void validateResourceIdInAAINetworkTest() throws Exception {
2085 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2086 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2087 workflowResourceIds.setServiceInstanceId("siId123");
2090 L3Network network = new L3Network();
2091 network.setNetworkId("id123");
2092 network.setNetworkName("name123");
2093 network.setModelCustomizationId("1234567");
2094 workflowResourceIds.setServiceInstanceId("siId123");
2095 Optional<L3Network> opNetwork = Optional.of(network);
2096 L3Network network2 = new L3Network();
2097 network2.setNetworkId("id123");
2098 network2.setNetworkName("networkName222");
2099 network2.setModelCustomizationId("222");
2100 Optional<L3Network> opNetwork2 = Optional.of(network2);
2101 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2102 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "networkName222"))
2103 .thenReturn(opNetwork2);
2104 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2105 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "name123",
2106 reqDetails, workflowResourceIds);
2107 assertEquals("id123", id);
2108 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "111111",
2109 reqDetails, workflowResourceIds);
2110 assertEquals("generatedId123", id2);
2112 this.expectedException.expect(DuplicateNameException.class);
2113 this.expectedException.expectMessage(containsString(
2114 "l3Network with name (networkName222), same parent and different customization id (222) already exists. The name must be unique."));
2115 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName222", reqDetails,
2116 workflowResourceIds);
2120 public void validateNetworkResourceNameExistsInAAITest() throws Exception {
2121 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2122 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2123 workflowResourceIds.setServiceInstanceId("siId123");
2126 L3Network network = new L3Network();
2127 network.setNetworkId("id123");
2128 network.setNetworkName("name123");
2129 network.setModelCustomizationId("1234567");
2130 workflowResourceIds.setServiceInstanceId("siId123");
2132 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("networkName333", "111111"))
2133 .thenReturn(Optional.empty());
2134 when(bbSetupUtils.existsAAINetworksGloballyByName("networkName333")).thenReturn(true);
2136 this.expectedException.expect(DuplicateNameException.class);
2137 this.expectedException.expectMessage(containsString(
2138 "l3Network with name (networkName333) id (siId123) and different parent relationship already exists. The name must be unique."));
2139 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName333", reqDetails,
2140 workflowResourceIds);
2144 public void validateResourceIdInAAIVfModuleTest() throws Exception {
2145 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2146 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2147 workflowResourceIds.setServiceInstanceId("siId123");
2149 GenericVnf vnf = new GenericVnf();
2150 vnf.setVnfId("id123");
2151 vnf.setVnfName("vnfName123");
2152 vnf.setModelCustomizationId("222");
2155 VfModules vfModules = new VfModules();
2156 VfModule vfModule = new VfModule();
2157 vfModule.setVfModuleId("id123");
2158 vfModule.setVfModuleName("name123");
2159 vfModule.setModelCustomizationId("1234567");
2160 vfModules.getVfModule().add(vfModule);
2161 vnf.setVfModules(vfModules);
2162 workflowResourceIds.setVnfId("id123");
2163 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2164 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "name123",
2165 reqDetails, workflowResourceIds);
2166 assertEquals("id123", id);
2168 GenericVnf vnf1 = new GenericVnf();
2169 VfModules vfModules2 = new VfModules();
2170 VfModule vfModule2 = new VfModule();
2171 vfModule2.setVfModuleId("id123");
2172 vfModule2.setVfModuleName("vFModName222");
2173 vfModule2.setModelCustomizationId("222");
2174 vfModules2.getVfModule().add(vfModule2);
2175 vnf1.setVfModules(vfModules2);
2176 workflowResourceIds.setVnfId("id111");
2177 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2178 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "111111",
2179 reqDetails, workflowResourceIds);
2180 assertEquals("generatedId123", id2);
2182 this.expectedException.expect(DuplicateNameException.class);
2183 this.expectedException.expectMessage(containsString(
2184 "vfModule with name (vFModName222), same parent and different customization id (1234567) already exists. The name must be unique."));
2185 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName222", reqDetails,
2186 workflowResourceIds);
2190 public void validateResourceIdInAAIVfModuleNotGloballyUniqueTest() throws Exception {
2191 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2192 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2193 workflowResourceIds.setVnfId("id111");
2195 GenericVnf vnf1 = new GenericVnf();
2196 workflowResourceIds.setVnfId("id111");
2197 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2199 when(bbSetupUtils.existsAAIVfModuleGloballyByName("vFModName333")).thenReturn(true);
2200 this.expectedException.expect(DuplicateNameException.class);
2201 this.expectedException.expectMessage(
2202 containsString("vfModule with name vFModName333 already exists. The name must be unique."));
2203 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName333", reqDetails,
2204 workflowResourceIds);
2208 public void validateResourceIdInAAIVolumeGroupTest() throws Exception {
2209 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2210 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2211 workflowResourceIds.setServiceInstanceId("siId123");
2213 GenericVnf vnf = new GenericVnf();
2214 vnf.setVnfId("id123");
2215 vnf.setVnfName("vnfName123");
2216 vnf.setModelCustomizationId("1234567");
2218 GenericVnf vnf2 = new GenericVnf();
2219 vnf2.setVnfId("id123");
2220 vnf2.setVnfName("vnfName123");
2221 vnf2.setModelCustomizationId("222");
2224 VolumeGroup volumeGroup = new VolumeGroup();
2225 volumeGroup.setVolumeGroupId("id123");
2226 volumeGroup.setVolumeGroupName("name123");
2227 volumeGroup.setVfModuleModelCustomizationId("1234567");
2228 workflowResourceIds.setVnfId("id123");
2229 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2231 workflowResourceIds.setVnfId("id123");
2233 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2234 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(opVolumeGroup);
2235 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2236 reqDetails, workflowResourceIds);
2237 assertEquals("id123", id);
2239 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf2);
2240 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "111111"))
2241 .thenReturn(opVolumeGroup);
2243 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "111111")).thenReturn(Optional.empty());
2244 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "111111",
2245 reqDetails, workflowResourceIds);
2246 assertEquals("generatedId123", id2);
2250 public void validatesourceIdInAAIVolumeGroupNotGloballyUniqueTest() throws Exception {
2251 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2252 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2253 workflowResourceIds.setVnfId("id123");
2254 GenericVnf vnf = new GenericVnf();
2255 vnf.setVnfId("id123");
2256 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2257 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "testVolumeGroup")).thenReturn(Optional.empty());
2259 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("testVolumeGroup")).thenReturn(true);
2260 this.expectedException.expect(DuplicateNameException.class);
2261 this.expectedException.expectMessage(
2262 containsString("volumeGroup with name testVolumeGroup already exists. The name must be unique."));
2263 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "testVolumeGroup",
2264 reqDetails, workflowResourceIds);
2268 public void validateResourceIdInAAIConfigurationTest() throws Exception {
2269 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2270 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2271 workflowResourceIds.setServiceInstanceId("siId123");
2274 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2275 configuration.setConfigurationId("id123");
2276 configuration.setConfigurationName("name123");
2277 configuration.setModelCustomizationId("1234567");
2278 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2280 org.onap.aai.domain.yang.Configuration configuration2 = new org.onap.aai.domain.yang.Configuration();
2281 configuration2.setConfigurationId("id123");
2282 configuration2.setConfigurationName("name123");
2283 configuration2.setModelCustomizationId("222");
2284 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration2 = Optional.of(configuration2);
2286 workflowResourceIds.setVnfId("id123");
2288 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2289 .thenReturn(opConfiguration);
2290 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name123",
2291 reqDetails, workflowResourceIds);
2292 assertEquals("id123", id);
2294 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "111111"))
2295 .thenReturn(Optional.empty());
2296 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "111111",
2297 reqDetails, workflowResourceIds);
2298 assertEquals("generatedId123", id2);
2300 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name222"))
2301 .thenReturn(opConfiguration2);
2302 this.expectedException.expect(DuplicateNameException.class);
2303 this.expectedException.expectMessage(containsString(
2304 "configuration with name (name222), same parent and different customization id (id123) already exists. The name must be unique."));
2305 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name222", reqDetails,
2306 workflowResourceIds);
2310 public void validateResourceIdInAAIConfigurationNotGloballyUniqueTest() throws Exception {
2311 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2312 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2313 workflowResourceIds.setServiceInstanceId("siId123");
2315 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "testConfig"))
2316 .thenReturn(Optional.empty());
2317 when(bbSetupUtils.existsAAIConfigurationGloballyByName("testConfig")).thenReturn(true);
2318 this.expectedException.expect(DuplicateNameException.class);
2319 this.expectedException.expectMessage(
2320 containsString("configuration with name testConfig already exists. The name must be unique."));
2321 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "testConfig", reqDetails,
2322 workflowResourceIds);
2326 public void validateResourceIdInAAISITest() throws Exception {
2327 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2328 workflowResourceIds.setServiceInstanceId("siId123");
2329 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2330 reqDetails.getModelInfo().setModelVersionId("1234567");
2332 ServiceInstance si = new ServiceInstance();
2333 si.setServiceInstanceId("siId123");
2334 si.setModelVersionId("1234567");
2335 ServiceInstances serviceInstances = new ServiceInstances();
2336 serviceInstances.getServiceInstance().add(si);
2337 Optional<ServiceInstance> siOp = Optional.of(si);
2338 ServiceInstance si2 = new ServiceInstance();
2339 si2.setServiceInstanceId("siId222");
2340 si2.setModelVersionId("22222");
2341 si2.setServiceInstanceName("siName222");
2342 Optional<ServiceInstance> siOp2 = Optional.of(si2);
2343 ServiceInstances serviceInstances2 = new ServiceInstances();
2344 serviceInstances2.getServiceInstance().add(si2);
2346 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2347 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName222")).thenReturn(siOp2);
2348 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "111111"))
2349 .thenReturn(Optional.empty());
2351 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2352 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123",
2353 reqDetails, workflowResourceIds);
2354 assertEquals("siId123", id);
2355 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "111111",
2356 reqDetails, workflowResourceIds);
2357 assertEquals("generatedId123", id2);
2359 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName222")).thenReturn(serviceInstances2);
2360 this.expectedException.expect(DuplicateNameException.class);
2361 this.expectedException.expectMessage(containsString(
2362 "serviceInstance with name (siName222) and different version id (1234567) already exists. The name must be unique."));
2363 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName222", reqDetails,
2364 workflowResourceIds);
2368 public void validateResourceIdInAAIMultipleSITest() throws Exception {
2369 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2370 workflowResourceIds.setServiceInstanceId("siId123");
2371 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2372 reqDetails.getModelInfo().setModelVersionId("1234567");
2374 ServiceInstance si = new ServiceInstance();
2375 si.setServiceInstanceId("siId123");
2376 si.setModelVersionId("1234567");
2377 ServiceInstances serviceInstances = new ServiceInstances();
2378 serviceInstances.getServiceInstance().add(si);
2380 ServiceInstance si2 = new ServiceInstance();
2381 si2.setServiceInstanceId("siId222");
2382 si2.setModelVersionId("22222");
2383 si2.setServiceInstanceName("siName222");
2384 serviceInstances.getServiceInstance().add(si2);
2386 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2387 .thenReturn(Optional.empty());
2389 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2391 this.expectedException.expect(DuplicateNameException.class);
2392 this.expectedException.expectMessage(containsString(
2393 "serviceInstance with name (siName123) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2394 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2395 workflowResourceIds);
2399 public void validateResourceIdInAAISIExistsTest() throws Exception {
2400 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2401 workflowResourceIds.setServiceInstanceId("siId123");
2402 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2403 reqDetails.getModelInfo().setModelVersionId("1234567");
2405 ServiceInstance si = new ServiceInstance();
2406 si.setServiceInstanceId("siId123");
2407 si.setModelVersionId("1234567");
2408 ServiceInstances serviceInstances = new ServiceInstances();
2409 serviceInstances.getServiceInstance().add(si);
2411 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2412 .thenReturn(Optional.empty());
2414 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2416 Map<String, String> uriKeys = new HashMap<>();
2417 uriKeys.put(AAIFluentTypeBuilder.Types.CUSTOMER.getUriParams().globalCustomerId, "globalCustomerId");
2418 uriKeys.put(AAIFluentTypeBuilder.Types.SERVICE_SUBSCRIPTION.getUriParams().serviceType, "serviceType");
2420 when(bbSetupUtils.getURIKeysFromServiceInstance("siId123")).thenReturn(uriKeys);
2422 this.expectedException.expect(DuplicateNameException.class);
2423 this.expectedException.expectMessage(containsString(
2424 "serviceInstance with name (siName123) and global-customer-id (globalCustomerId), service-type (serviceType), model-version-id (1234567) already exists. The name must be unique."));
2425 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2426 workflowResourceIds);
2430 public void validateServiceResourceIdInAAINoDupTest() throws Exception {
2431 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2432 reqDetails.getModelInfo().setModelVersionId("1234567");
2433 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123"))
2434 .thenReturn(Optional.empty());
2435 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(null);
2436 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2437 assertEquals("generatedId123", id);
2441 public void validateServiceResourceIdInAAISameModelVersionId() throws Exception {
2442 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2443 reqDetails.getModelInfo().setModelVersionId("1234567");
2445 ServiceInstance si = new ServiceInstance();
2446 si.setServiceInstanceId("siId123");
2447 si.setModelVersionId("1234567");
2448 Optional<ServiceInstance> siOp = Optional.of(si);
2450 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2451 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2452 assertEquals("siId123", id);
2456 public void validateServiceResourceIdInAAIDifferentModelVersionId() throws Exception {
2457 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2458 reqDetails.getModelInfo().setModelVersionId("1234567");
2460 ServiceInstance si = new ServiceInstance();
2461 si.setServiceInstanceId("siId123");
2462 si.setModelVersionId("9999999");
2463 ServiceInstances serviceInstances = new ServiceInstances();
2464 serviceInstances.getServiceInstance().add(si);
2465 Optional<ServiceInstance> siOp = Optional.of(si);
2467 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2469 this.expectedException.expect(DuplicateNameException.class);
2470 this.expectedException.expectMessage(containsString(
2471 "serviceInstance with name (siName123) and different version id (1234567) already exists. The name must be unique."));
2473 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2474 assertEquals("siId123", id);
2478 public void validateServiceResourceIdInAAIDuplicateNameTest() throws Exception {
2480 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2481 reqDetails.getModelInfo().setModelVersionId("1234567");
2483 ServiceInstance si = new ServiceInstance();
2484 si.setServiceInstanceId("siId123");
2485 si.setModelVersionId("1234567");
2487 ServiceInstances serviceInstances = new ServiceInstances();
2488 serviceInstances.getServiceInstance().add(si);
2490 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2491 .thenReturn(Optional.empty());
2492 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2494 this.expectedException.expect(DuplicateNameException.class);
2495 this.expectedException.expectMessage(containsString(
2496 "serviceInstance with name (siName) and global-customer-id (null), service-type (null), model-version-id (1234567) already exists. The name must be unique."));
2498 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2502 public void validateServiceResourceIdInAAIDuplicateNameMultipleTest() throws Exception {
2504 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2505 reqDetails.getModelInfo().setModelVersionId("1234567");
2507 ServiceInstance si = new ServiceInstance();
2508 si.setServiceInstanceId("siId123");
2509 si.setModelVersionId("1234567");
2511 ServiceInstance si2 = new ServiceInstance();
2512 si2.setServiceInstanceId("siId222");
2513 si2.setModelVersionId("22222");
2514 si2.setServiceInstanceName("siName222");
2516 ServiceInstances serviceInstances = new ServiceInstances();
2517 serviceInstances.getServiceInstance().add(si);
2518 serviceInstances.getServiceInstance().add(si2);
2520 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2521 .thenReturn(Optional.empty());
2522 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2524 this.expectedException.expect(DuplicateNameException.class);
2525 this.expectedException.expectMessage(containsString(
2526 "serviceInstance with name (siName) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2528 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2532 public void validateNetworkResourceIdInAAITest() throws Exception {
2533 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2534 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2535 workflowResourceIds.setServiceInstanceId("siId123");
2537 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2538 .thenReturn(Optional.empty());
2539 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(false);
2541 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2542 workflowResourceIds);
2543 assertEquals("generatedId123", id);
2547 public void validateNetworkResourceIdInAAISameModelCustIdTest() throws Exception {
2548 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2549 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2550 workflowResourceIds.setServiceInstanceId("siId123");
2552 L3Network network = new L3Network();
2553 network.setNetworkId("id123");
2554 network.setNetworkName("name123");
2555 network.setModelCustomizationId("1234567");
2556 Optional<L3Network> opNetwork = Optional.of(network);
2558 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2560 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2561 workflowResourceIds);
2562 assertEquals("id123", id);
2566 public void validateNetworkResourceIdInAAIDuplicateNameTest() throws Exception {
2567 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2568 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2569 workflowResourceIds.setServiceInstanceId("siId123");
2571 L3Network network = new L3Network();
2572 network.setNetworkId("id123");
2573 network.setNetworkName("name123");
2574 network.setModelCustomizationId("9999999");
2575 Optional<L3Network> opNetwork = Optional.of(network);
2577 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2579 this.expectedException.expect(DuplicateNameException.class);
2580 this.expectedException.expectMessage(containsString(
2581 "l3Network with name (name123), same parent and different customization id (9999999) already exists. The name must be unique."));
2583 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2587 public void validateNetworkResourceIdInAAINotGloballyUniqueTest() throws Exception {
2588 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2589 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2590 workflowResourceIds.setServiceInstanceId("siId123");
2592 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2593 .thenReturn(Optional.empty());
2594 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(true);
2596 this.expectedException.expect(DuplicateNameException.class);
2597 this.expectedException.expectMessage(containsString(
2598 "l3Network with name (name123) id (siId123) and different parent relationship already exists. The name must be unique."));
2600 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2604 public void validateVnfResourceIdInAAITest() throws Exception {
2605 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2606 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2607 workflowResourceIds.setServiceInstanceId("siId123");
2608 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2609 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2610 workflowResourceIds);
2611 assertEquals("generatedId123", id);
2615 public void validateVnfResourceIdInAAISameModelCustomizationIdTest() throws Exception {
2616 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2617 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2618 workflowResourceIds.setServiceInstanceId("siId123");
2620 GenericVnf vnf = new GenericVnf();
2621 vnf.setVnfId("id123");
2622 vnf.setVnfName("vnfName123");
2623 vnf.setModelCustomizationId("1234567");
2624 Optional<GenericVnf> opVnf = Optional.of(vnf);
2626 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2627 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2628 workflowResourceIds);
2629 assertEquals("id123", id);
2633 public void validateVnfResourceIdInAAIDiffModelCustomizationIdTest() throws Exception {
2634 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2635 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2636 workflowResourceIds.setServiceInstanceId("siId123");
2638 GenericVnf vnf = new GenericVnf();
2639 vnf.setVnfId("id123");
2640 vnf.setVnfName("vnfName123");
2641 vnf.setModelCustomizationId("9999999");
2642 Optional<GenericVnf> opVnf = Optional.of(vnf);
2644 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2646 this.expectedException.expect(DuplicateNameException.class);
2647 this.expectedException.expectMessage(containsString(
2648 "generic-vnf with name (vnfName123), same parent and different customization id (9999999) already exists. The name must be unique."));
2650 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2654 public void validateVnfResourceIdInAAINotGloballyUniqueTest() throws Exception {
2655 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2656 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2657 workflowResourceIds.setServiceInstanceId("siId123");
2660 GenericVnf vnf = new GenericVnf();
2661 vnf.setVnfId("id123");
2662 vnf.setVnfName("vnfName123");
2663 GenericVnfs genericVnfs = new GenericVnfs();
2664 genericVnfs.getGenericVnf().add(vnf);
2666 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2667 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName123")).thenReturn(genericVnfs);
2669 this.expectedException.expect(DuplicateNameException.class);
2670 this.expectedException.expectMessage(containsString(
2671 "generic-vnf with name (vnfName123) id (id123) and different parent relationship already exists. The name must be unique."));
2673 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2677 public void validateVfModuleResourceIdTest() throws Exception {
2678 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2679 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2680 workflowResourceIds.setVnfId("vnfId123");
2682 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2683 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(false);
2685 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2686 workflowResourceIds);
2687 assertEquals("generatedId123", id);
2691 public void validateVfModuleResourceIdSameModelCustIdTest() throws Exception {
2692 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2693 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2694 workflowResourceIds.setVnfId("vnfId123");
2696 VfModules vfModules = new VfModules();
2697 VfModule vfModule = new VfModule();
2698 vfModule.setVfModuleId("id123");
2699 vfModule.setVfModuleName("name123");
2700 vfModule.setModelCustomizationId("1234567");
2701 vfModules.getVfModule().add(vfModule);
2703 GenericVnf vnf = new GenericVnf();
2704 vnf.setVnfId("id123");
2705 vnf.setVnfName("vnfName123");
2706 vnf.setVfModules(vfModules);
2708 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2710 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2711 workflowResourceIds);
2712 assertEquals("id123", id);
2716 public void validateVfModuleResourceIdDifferentModelCustIdTest() throws Exception {
2717 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2718 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2719 workflowResourceIds.setVnfId("vnfId123");
2721 VfModules vfModules = new VfModules();
2722 VfModule vfModule = new VfModule();
2723 vfModule.setVfModuleId("id123");
2724 vfModule.setVfModuleName("name123");
2725 vfModule.setModelCustomizationId("9999999");
2726 vfModules.getVfModule().add(vfModule);
2728 GenericVnf vnf = new GenericVnf();
2729 vnf.setVnfId("id123");
2730 vnf.setVnfName("vnfName123");
2731 vnf.setVfModules(vfModules);
2733 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2735 this.expectedException.expect(DuplicateNameException.class);
2736 this.expectedException.expectMessage(containsString(
2737 "vfModule with name (name123), same parent and different customization id (1234567) already exists. The name must be unique."));
2739 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2744 public void validateVfModuleResourceIdNotGloballyUniqueTest() throws Exception {
2745 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2746 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2747 workflowResourceIds.setVnfId("vnfId123");
2749 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2750 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(true);
2752 this.expectedException.expect(DuplicateNameException.class);
2753 this.expectedException
2754 .expectMessage(containsString("vfModule with name name123 already exists. The name must be unique."));
2756 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2760 public void validateVolumeGroupResourceIdInAAITest() throws Exception {
2761 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2762 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2763 workflowResourceIds.setVnfId("vnfId123");
2765 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(Optional.empty());
2766 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(false);
2768 String id = workflowAction.validateVolumeGroupResourceIdInAAI("generatedId123", "name123", reqDetails,
2769 workflowResourceIds);
2770 assertEquals("generatedId123", id);
2774 public void validateVolumeGroupResourceIdInAAISameModelCustIdTest() throws Exception {
2775 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2776 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2777 workflowResourceIds.setServiceInstanceId("siId123");
2778 workflowResourceIds.setVnfId("vnfId123");
2780 VolumeGroup volumeGroup = new VolumeGroup();
2781 volumeGroup.setVolumeGroupId("id123");
2782 volumeGroup.setVolumeGroupName("name123");
2783 volumeGroup.setVfModuleModelCustomizationId("1234567");
2785 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2787 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2788 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2789 reqDetails, workflowResourceIds);
2791 assertEquals("id123", id);
2795 public void validateVolumeGroupResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2796 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2797 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2798 workflowResourceIds.setServiceInstanceId("siId123");
2799 workflowResourceIds.setVnfId("vnfId123");
2801 VolumeGroup volumeGroup = new VolumeGroup();
2802 volumeGroup.setVolumeGroupId("id123");
2803 volumeGroup.setVolumeGroupName("name123");
2804 volumeGroup.setVfModuleModelCustomizationId("9999999");
2806 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2808 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2810 this.expectedException.expect(DuplicateNameException.class);
2811 this.expectedException.expectMessage(
2812 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2814 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2815 workflowResourceIds);
2819 public void validateVolumeGroupResourceIdInAAINotGloballyUniqueTest() throws Exception {
2820 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2821 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2822 workflowResourceIds.setVnfId("vnfId123");
2824 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(Optional.empty());
2825 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(true);
2827 this.expectedException.expect(DuplicateNameException.class);
2828 this.expectedException.expectMessage(
2829 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2831 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2832 workflowResourceIds);
2836 public void validateConfigurationResourceIdInAAITest() throws Exception {
2837 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2838 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2839 workflowResourceIds.setServiceInstanceId("siId123");
2841 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2842 .thenReturn(Optional.empty());
2843 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2845 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2846 workflowResourceIds);
2847 assertEquals("generatedId123", id);
2851 public void validateConfigurationResourceIdInAAISameModelCustIdTest() throws Exception {
2852 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2853 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2854 workflowResourceIds.setServiceInstanceId("siId123");
2856 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2857 configuration.setConfigurationId("id123");
2858 configuration.setConfigurationName("name123");
2859 configuration.setModelCustomizationId("1234567");
2860 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2862 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2863 .thenReturn(opConfiguration);
2864 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2866 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2867 workflowResourceIds);
2868 assertEquals("id123", id);
2872 public void validateConfigurationResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2873 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2874 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2875 workflowResourceIds.setServiceInstanceId("siId123");
2877 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2878 configuration.setConfigurationId("id123");
2879 configuration.setConfigurationName("name123");
2880 configuration.setModelCustomizationId("9999999");
2881 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2883 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2884 .thenReturn(opConfiguration);
2885 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2887 this.expectedException.expect(DuplicateNameException.class);
2888 this.expectedException.expectMessage(containsString(
2889 "configuration with name (name123), same parent and different customization id (id123) already exists. The name must be unique."));
2891 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2892 workflowResourceIds);
2896 public void validateConfigurationResourceIdInAAINotGloballyUniqueTest() throws Exception {
2897 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2898 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2899 workflowResourceIds.setServiceInstanceId("siId123");
2901 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2902 .thenReturn(Optional.empty());
2903 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(true);
2905 this.expectedException.expect(DuplicateNameException.class);
2906 this.expectedException.expectMessage(
2907 containsString("configuration with name name123 already exists. The name must be unique."));
2909 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2910 workflowResourceIds);
2914 public void handleRuntimeExceptionTest() {
2915 execution.setVariable("BPMN_javaExpMsg", "test runtime error message");
2916 execution.setVariable("testProcessKey", "testProcessKeyValue");
2918 workflowAction.handleRuntimeException(execution);
2919 } catch (BpmnError wfe) {
2920 assertEquals("MSOWorkflowException", wfe.getErrorCode());
2926 public void traverseCatalogDbServiceMultipleNetworkTest() throws IOException, VrfBondingServiceException {
2927 execution.setVariable("testProcessKey", "testProcessKeyValue");
2928 Service service = new Service();
2929 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
2930 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
2931 networkCust.setModelCustomizationUUID("123");
2932 networkCustomizations.add(networkCust);
2933 service.setNetworkCustomizations(networkCustomizations);
2934 NetworkCollectionResourceCustomization collectionResourceCustomization =
2935 new NetworkCollectionResourceCustomization();
2936 collectionResourceCustomization.setModelCustomizationUUID("123");
2937 CollectionResource collectionResource = new CollectionResource();
2938 collectionResource.setToscaNodeType("NetworkCollection");
2939 InstanceGroup instanceGroup = new InstanceGroup();
2940 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
2941 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
2942 new CollectionResourceInstanceGroupCustomization();
2943 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
2944 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
2945 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
2946 collectionResource.setInstanceGroup(instanceGroup);
2947 collectionResourceCustomization.setCollectionResource(collectionResource);;
2948 service.setModelUUID("abc");
2949 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2950 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2951 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
2952 doReturn(collectionResourceCustomization).when(catalogDbClient)
2953 .getNetworkCollectionResourceCustomizationByID("123");
2954 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
2955 ObjectMapper mapper = new ObjectMapper();
2956 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
2957 List<Resource> resourceCounter = new ArrayList<>();
2958 thrown.expect(BpmnError.class);
2959 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
2960 workflowAction.traverseCatalogDbService(execution, sIRequest, resourceCounter, aaiResourceIds);
2964 public void sortVfModulesByBaseFirstTest() {
2965 List<Resource> resources = new ArrayList<>();
2966 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2967 resource1.setBaseVfModule(false);
2968 resources.add(resource1);
2969 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2970 resource2.setBaseVfModule(false);
2971 resources.add(resource2);
2972 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
2973 resource3.setBaseVfModule(true);
2974 resources.add(resource3);
2975 List<Resource> result = workflowAction.sortVfModulesByBaseFirst(resources);
2976 assertEquals("333", result.get(0).getResourceId());
2977 assertEquals("222", result.get(1).getResourceId());
2978 assertEquals("111", result.get(2).getResourceId());
2982 public void sortVfModulesByBaseLastTest() {
2983 List<Resource> resources = new ArrayList<>();
2984 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2985 resource1.setBaseVfModule(true);
2986 resources.add(resource1);
2987 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2988 resource2.setBaseVfModule(false);
2989 resources.add(resource2);
2990 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
2991 resource3.setBaseVfModule(false);
2992 resources.add(resource3);
2993 List<Resource> result = workflowAction.sortVfModulesByBaseLast(resources);
2994 assertEquals("333", result.get(0).getResourceId());
2995 assertEquals("222", result.get(1).getResourceId());
2996 assertEquals("111", result.get(2).getResourceId());
3000 public void findCatalogNetworkCollectionTest() {
3001 Service service = new Service();
3002 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
3003 networkCustomization.setModelCustomizationUUID("123");
3004 service.getCollectionResourceCustomizations().add(networkCustomization);
3005 doReturn(networkCustomization).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
3006 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
3007 assertNotNull(customization);
3011 public void findCatalogNetworkCollectionEmptyTest() {
3012 Service service = new Service();
3013 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
3014 networkCustomization.setModelCustomizationUUID("123");
3015 service.getCollectionResourceCustomizations().add(networkCustomization);
3016 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
3017 assertNull(customization);
3021 public void findCatalogNetworkCollectionMoreThanOneTest() {
3022 Service service = new Service();
3023 NetworkCollectionResourceCustomization networkCustomization1 = new NetworkCollectionResourceCustomization();
3024 networkCustomization1.setModelCustomizationUUID("123");
3025 NetworkCollectionResourceCustomization networkCustomization2 = new NetworkCollectionResourceCustomization();
3026 networkCustomization2.setModelCustomizationUUID("321");
3027 service.getCollectionResourceCustomizations().add(networkCustomization1);
3028 service.getCollectionResourceCustomizations().add(networkCustomization2);
3029 doReturn(networkCustomization1).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
3030 doReturn(networkCustomization2).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("321");
3031 workflowAction.findCatalogNetworkCollection(execution, service);
3032 assertEquals("Found multiple Network Collections in the Service model, only one per Service is supported.",
3033 execution.getVariable("WorkflowActionErrorMessage"));
3037 public void verifyLackOfNullPointerExceptionForNullResource() {
3038 ExecuteBuildingBlock result = null;
3040 result = workflowAction.buildExecuteBuildingBlock(new OrchestrationFlow(), null, null, null, null, null,
3041 false, null, null, null, false, null, null, true, null);
3042 } catch (NullPointerException e) {
3043 fail("NullPointerException should not be thrown when 'resource' is null");
3045 assertNotNull(result);
3049 public void traverseAAIServiceTest() {
3050 List<Resource> resourceCounter = new ArrayList<>();
3051 String resourceId = "si0";
3052 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
3054 ServiceInstance serviceInstanceAAI = new ServiceInstance();
3055 serviceInstanceAAI.setServiceInstanceId(resourceId);
3057 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstance = setServiceInstance();
3065 Configuration config = new Configuration();
3066 config.setConfigurationId("testConfigurationId2");
3067 serviceInstance.getConfigurations().add(config);
3069 Relationship relationship1 = new Relationship();
3070 relationship1.setRelatedTo("vnfc");
3071 RelationshipList relationshipList1 = new RelationshipList();
3072 relationshipList1.getRelationship().add(relationship1);
3074 Relationship relationship2 = new Relationship();
3075 relationship2.setRelatedTo("vpn-binding");
3076 RelationshipList relationshipList2 = new RelationshipList();
3077 relationshipList2.getRelationship().add(relationship2);
3079 org.onap.aai.domain.yang.Configuration aaiConfiguration1 = new org.onap.aai.domain.yang.Configuration();
3080 aaiConfiguration1.setConfigurationId("testConfigurationId");
3081 aaiConfiguration1.setRelationshipList(relationshipList1);
3083 org.onap.aai.domain.yang.Configuration aaiConfiguration2 = new org.onap.aai.domain.yang.Configuration();
3084 aaiConfiguration2.setConfigurationId("testConfigurationId2");
3085 aaiConfiguration2.setRelationshipList(relationshipList1);
3088 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById(resourceId);
3089 doReturn(serviceInstance).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
3090 doReturn(Optional.of(aaiConfiguration1)).when(aaiConfigurationResources)
3091 .getConfiguration("testConfigurationId");
3092 doReturn(Optional.of(aaiConfiguration2)).when(aaiConfigurationResources)
3093 .getConfiguration("testConfigurationId2");
3094 workflowAction.traverseAAIService(execution, resourceCounter, resourceId, aaiResourceIds);
3095 assertEquals(8, resourceCounter.size());
3096 assertTrue(resourceCounter.get(2).isBaseVfModule());
3097 assertThat(aaiResourceIds, sameBeanAs(getExpectedResourceIds()));
3098 } catch (Exception e) {
3099 fail("Unexpected exception was thrown.");
3103 private List<Pair<WorkflowType, String>> getExpectedResourceIds() {
3104 List<Pair<WorkflowType, String>> resourceIds = new ArrayList<>();
3105 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VNF, "testVnfId1"));
3106 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VFMODULE, "testVfModuleId1"));
3107 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VOLUMEGROUP, "testVolumeGroupId1"));
3108 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORK, "testNetworkId1"));
3109 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORKCOLLECTION, "testId"));
3110 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId"));
3111 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId2"));
3115 private List<OrchestrationFlow> createFlowList(String... flowNames) {
3116 List<OrchestrationFlow> result = new ArrayList<>();
3117 int sequenceNumber = 1;
3118 for (String flowName : flowNames) {
3119 OrchestrationFlow orchFlow = new OrchestrationFlow();
3120 orchFlow.setFlowName(flowName);
3121 orchFlow.setSequenceNumber(sequenceNumber++);
3122 result.add(orchFlow);
3127 private void assertEqualsBulkFlowName(List<ExecuteBuildingBlock> ebbs, String... flowNames) {
3128 for (int i = 0; i < ebbs.size(); i++) {
3129 assertEquals(ebbs.get(i).getBuildingBlock().getBpmnFlowName(), flowNames[i]);
3133 private void initExecution(String gAction, String bpmnRequest, boolean isAlaCarte) {
3134 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
3135 execution.setVariable("requestAction", gAction);
3136 execution.setVariable("bpmnRequest", bpmnRequest);
3137 execution.setVariable("aLaCarte", isAlaCarte);
3138 execution.setVariable("apiVersion", "7");
3141 private String readBpmnRequestFromFile(String fileName) throws IOException {
3142 return new String(Files.readAllBytes(Paths.get("src/test/resources/__files/" + fileName)));