2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (c) 2019 Samsung
8 * ================================================================================
9 * Modifications Copyright (c) 2020 Nokia
10 * ================================================================================
11 * Licensed under the Apache License, Version 2.0 (the "License");
12 * you may not use this file except in compliance with the License.
13 * You may obtain a copy of the License at
15 * http://www.apache.org/licenses/LICENSE-2.0
17 * Unless required by applicable law or agreed to in writing, software
18 * distributed under the License is distributed on an "AS IS" BASIS,
19 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 * See the License for the specific language governing permissions and
21 * limitations under the License.
22 * ============LICENSE_END=========================================================
25 package org.onap.so.bpmn.infrastructure.workflow.tasks;
27 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
28 import static org.hamcrest.CoreMatchers.containsString;
29 import static org.hamcrest.CoreMatchers.equalTo;
30 import static org.junit.Assert.assertEquals;
31 import static org.junit.Assert.assertFalse;
32 import static org.junit.Assert.assertNotNull;
33 import static org.junit.Assert.assertNull;
34 import static org.junit.Assert.assertThat;
35 import static org.junit.Assert.assertTrue;
36 import static org.junit.Assert.fail;
37 import static org.mockito.ArgumentMatchers.any;
38 import static org.mockito.ArgumentMatchers.anyObject;
39 import static org.mockito.ArgumentMatchers.anyString;
40 import static org.mockito.ArgumentMatchers.eq;
41 import static org.mockito.ArgumentMatchers.isA;
42 import static org.mockito.Mockito.doAnswer;
43 import static org.mockito.Mockito.doReturn;
44 import static org.mockito.Mockito.doThrow;
45 import static org.mockito.Mockito.when;
46 import com.fasterxml.jackson.databind.DeserializationFeature;
47 import com.fasterxml.jackson.databind.ObjectMapper;
48 import java.io.IOException;
49 import java.net.MalformedURLException;
50 import java.nio.file.Files;
51 import java.nio.file.Paths;
52 import java.util.ArrayList;
53 import java.util.Arrays;
54 import java.util.HashMap;
55 import java.util.List;
57 import java.util.Optional;
58 import java.util.UUID;
59 import org.camunda.bpm.engine.delegate.BpmnError;
60 import org.camunda.bpm.engine.delegate.DelegateExecution;
61 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
62 import org.javatuples.Pair;
63 import org.junit.Before;
64 import org.junit.Ignore;
65 import org.junit.Rule;
66 import org.junit.Test;
67 import org.junit.rules.ExpectedException;
68 import org.mockito.InjectMocks;
69 import org.mockito.Mock;
70 import org.mockito.Spy;
71 import org.onap.aai.domain.yang.GenericVnf;
72 import org.onap.aai.domain.yang.GenericVnfs;
73 import org.onap.aai.domain.yang.L3Network;
74 import org.onap.aai.domain.yang.Relationship;
75 import org.onap.aai.domain.yang.RelationshipList;
76 import org.onap.aai.domain.yang.ServiceInstance;
77 import org.onap.aai.domain.yang.ServiceInstances;
78 import org.onap.aai.domain.yang.VfModule;
79 import org.onap.aai.domain.yang.VfModules;
80 import org.onap.aai.domain.yang.VolumeGroup;
81 import org.onap.aaiclient.client.aai.AAIObjectType;
82 import org.onap.aaiclient.client.aai.entities.AAIResultWrapper;
83 import org.onap.aaiclient.client.aai.entities.Relationships;
84 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
85 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
86 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder;
87 import org.onap.so.bpmn.BaseTaskTest;
88 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
89 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
90 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
91 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
92 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
93 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.DuplicateNameException;
94 import org.onap.so.client.orchestration.AAIEntityNotFoundException;
95 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
96 import org.onap.so.db.catalog.beans.CollectionResource;
97 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
98 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
99 import org.onap.so.db.catalog.beans.ConfigurationResource;
100 import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
101 import org.onap.so.db.catalog.beans.CvnfcCustomization;
102 import org.onap.so.db.catalog.beans.HeatEnvironment;
103 import org.onap.so.db.catalog.beans.HeatTemplate;
104 import org.onap.so.db.catalog.beans.InstanceGroup;
105 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
106 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
107 import org.onap.so.db.catalog.beans.Service;
108 import org.onap.so.db.catalog.beans.VfModuleCustomization;
109 import org.onap.so.db.catalog.beans.macro.NorthBoundRequest;
110 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
111 import org.onap.so.serviceinstancebeans.ModelInfo;
112 import org.onap.so.serviceinstancebeans.RequestDetails;
113 import org.onap.so.serviceinstancebeans.RequestParameters;
114 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
115 import org.onap.so.serviceinstancebeans.SubscriberInfo;
116 import org.springframework.core.env.Environment;
118 public class WorkflowActionTest extends BaseTaskTest {
120 private static final String MACRO_ACTIVATE_DELETE_UNASSIGN_JSON = "Macro/ServiceMacroActivateDeleteUnassign.json";
121 private static final String MACRO_ASSIGN_JSON = "Macro/ServiceMacroAssign.json";
122 private static final String MACRO_ASSIGN_NO_CLOUD_JSON = "Macro/ServiceMacroAssignNoCloud.json";
123 private static final String VF_MODULE_CREATE_WITH_FABRIC_JSON = "VfModuleCreateWithFabric.json";
124 private static final String VF_MODULE_REPLACE_REBUILD_VOLUME_GROUPS_JSON =
125 "VfModuleReplaceRebuildVolumeGroups.json";
126 private static final String MACRO_CREATE_NETWORK_COLLECTION_JSON = "Macro/CreateNetworkCollection.json";
127 private static final String MACRO_VNF_MACRO_REPLACE_JSON = "Macro/VnfMacroReplace.json";
130 protected Environment environment;
132 protected WorkflowAction workflowAction;
133 private DelegateExecution execution;
137 protected WorkflowAction SPY_workflowAction;
140 public ExpectedException thrown = ExpectedException.none();
142 private String RESOURCE_PATH = "src/test/resources/__files/";
144 private List<OrchestrationFlow> replaceVfModuleOrchFlows =
145 createFlowList("DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
146 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
147 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
148 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
149 private List<OrchestrationFlow> replaceRetainAssignmentsVfModuleOrchFlows = createFlowList("DeactivateVfModuleBB",
150 "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "UnassignVolumeGroupBB",
151 "AssignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
152 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
153 private List<OrchestrationFlow> replaceVfModuleWithFabricOrchFlows = createFlowList("DeleteFabricConfigurationBB",
154 "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB",
155 "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB", "AssignVfModuleBB",
156 "CreateVfModuleBB", "ActivateVfModuleBB", "AddFabricConfigurationBB", "CreateVolumeGroupBB",
157 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
160 public void before() throws Exception {
161 execution = new DelegateExecutionFake();
162 org.onap.aai.domain.yang.ServiceInstance servInstance = new org.onap.aai.domain.yang.ServiceInstance();
163 servInstance.setServiceInstanceId("TEST");
164 when(bbSetupUtils.getAAIServiceInstanceByName(anyString(), anyObject())).thenReturn(servInstance);
165 workflowAction.setBbInputSetupUtils(bbSetupUtils);
166 workflowAction.setBbInputSetup(bbInputSetup);
173 public void selectExecutionListALaCarteNetworkCreateTest() throws Exception {
174 String gAction = "createInstance";
175 String resource = "Network";
176 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
177 initExecution(gAction, bpmnRequest, true);
178 execution.setVariable("requestUri", "v6/networks/123");
180 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
181 List<OrchestrationFlow> orchFlows =
182 createFlowList("AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
183 northBoundRequest.setOrchestrationFlowList(orchFlows);
185 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
186 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
187 workflowAction.selectExecutionList(execution);
188 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
189 assertEqualsBulkFlowName(ebbs, "AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
193 public void selectExecutionListALaCarteNetworkDeleteTest() throws Exception {
194 String gAction = "deleteInstance";
195 String resource = "Network";
196 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
197 initExecution(gAction, bpmnRequest, true);
198 execution.setVariable("requestUri", "v6/networks/123");
200 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
201 List<OrchestrationFlow> orchFlows =
202 createFlowList("DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
203 northBoundRequest.setOrchestrationFlowList(orchFlows);
205 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
206 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
207 workflowAction.selectExecutionList(execution);
208 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
209 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
213 public void selectExecutionListALaCarteServiceCreateTest() throws Exception {
214 String gAction = "createInstance";
215 String resource = "Service";
216 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
217 initExecution(gAction, bpmnRequest, true);
218 execution.setVariable("requestUri", "v6/serviceInstances/123");
221 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
222 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "ActivateServiceInstanceBB");
223 northBoundRequest.setOrchestrationFlowList(orchFlows);
225 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
226 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
227 workflowAction.selectExecutionList(execution);
228 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
229 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
233 public void selectExecutionListDuplicateNameExceptionTest() throws Exception {
234 String gAction = "createInstance";
235 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
236 initExecution(gAction, bpmnRequest, true);
237 execution.setVariable("requestUri", "v6/serviceInstances");
239 doThrow(new DuplicateNameException(
240 "serviceInstance with name (instanceName) and different version id (3c40d244-808e-42ca-b09a-256d83d19d0a) already exists. The name must be unique."))
241 .when(SPY_workflowAction).validateResourceIdInAAI(anyString(), eq(WorkflowType.SERVICE),
242 eq("test"), any(RequestDetails.class), any(WorkflowResourceIds.class));
244 SPY_workflowAction.selectExecutionList(execution);
245 assertEquals(execution.getVariable("WorkflowActionErrorMessage"),
246 "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.");
250 * SERVICE MACRO TESTS
253 public void selectExecutionListServiceMacroAssignTest() throws Exception {
254 String gAction = "assignInstance";
255 String resource = "Service";
256 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
257 initExecution(gAction, bpmnRequest, false);
258 execution.setVariable("requestUri", "v6/serviceInstances/123");
260 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
261 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
262 "AssignVolumeGroupBB", "AssignVfModuleBB");
263 northBoundRequest.setOrchestrationFlowList(orchFlows);
265 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
266 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
267 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
268 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
269 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
270 HeatTemplate volumeHeatTemplate = new HeatTemplate();
271 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
272 vfModuleCustomization.setVfModule(vfModule);
274 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
275 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
276 HeatEnvironment heatEnvironment = new HeatEnvironment();
277 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
278 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
279 HeatTemplate moduleHeatTemplate = new HeatTemplate();
280 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
281 vfModuleCustomization2.setVfModule(vfModule2);
283 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
284 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
286 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
287 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
288 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
289 .thenReturn(vfModuleCustomization);
290 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
291 .thenReturn(vfModuleCustomization2);
292 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
293 .thenReturn(vfModuleCustomization3);
294 workflowAction.selectExecutionList(execution);
295 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
296 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
297 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
301 public void selectExecutionListServiceMacroAssignNoCloudTest() throws Exception {
302 String gAction = "assignInstance";
303 String resource = "Service";
304 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_NO_CLOUD_JSON);
305 initExecution(gAction, bpmnRequest, false);
306 execution.setVariable("requestUri", "v6/serviceInstances/123");
308 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
309 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
310 "AssignVolumeGroupBB", "AssignVfModuleBB");
311 northBoundRequest.setOrchestrationFlowList(orchFlows);
313 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
314 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
315 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
316 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
317 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
318 HeatTemplate volumeHeatTemplate = new HeatTemplate();
319 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
320 vfModuleCustomization.setVfModule(vfModule);
322 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
323 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
324 HeatEnvironment heatEnvironment = new HeatEnvironment();
325 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
326 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
327 HeatTemplate moduleHeatTemplate = new HeatTemplate();
328 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
329 vfModuleCustomization2.setVfModule(vfModule2);
331 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
332 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
334 when(environment.getProperty("org.onap.so.cloud-owner")).thenReturn("att-aic");
335 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
336 false, "att-aic")).thenReturn(northBoundRequest);
337 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
338 .thenReturn(vfModuleCustomization);
339 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
340 .thenReturn(vfModuleCustomization2);
341 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
342 .thenReturn(vfModuleCustomization3);
343 workflowAction.selectExecutionList(execution);
344 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
345 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
346 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
350 public void selectExecutionListServiceMacroActivateTest() throws Exception {
351 String gAction = "activateInstance";
352 String resource = "Service";
353 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
354 initExecution(gAction, bpmnRequest, false);
355 execution.setVariable("requestUri", "v6/serviceInstances/si0");
357 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
358 List<OrchestrationFlow> orchFlows =
359 createFlowList("CreateNetworkBB", "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
360 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "ActivateServiceInstanceBB");
361 northBoundRequest.setOrchestrationFlowList(orchFlows);
363 ServiceInstance serviceInstanceAAI = new ServiceInstance();
364 serviceInstanceAAI.setServiceInstanceId("si0");
365 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
366 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
367 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
368 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
369 vnf.setVnfId("vnf0");
371 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
372 vnf.getVfModules().add(vfModule);
373 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
374 vnf.getVfModules().add(vfModule2);
376 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
377 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
378 volumeGroup.setVolumeGroupId("volumeGroup0");
379 vnf.getVolumeGroups().add(volumeGroup);
381 serviceInstanceMSO.getVnfs().add(vnf);
383 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("si0");
384 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
385 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
386 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
387 workflowAction.selectExecutionList(execution);
388 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
389 assertEqualsBulkFlowName(ebbs, "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
390 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
391 "ActivateServiceInstanceBB");
392 assertEquals("volumeGroup0", ebbs.get(0).getWorkflowResourceIds().getVolumeGroupId());
393 assertEquals("volumeGroup0", ebbs.get(1).getWorkflowResourceIds().getVolumeGroupId());
394 assertEquals("testVfModuleId1", ebbs.get(2).getWorkflowResourceIds().getVfModuleId());
395 assertEquals("testVfModuleId2", ebbs.get(3).getWorkflowResourceIds().getVfModuleId());
396 assertEquals("testVfModuleId1", ebbs.get(4).getWorkflowResourceIds().getVfModuleId());
397 assertEquals("testVfModuleId2", ebbs.get(5).getWorkflowResourceIds().getVfModuleId());
398 assertEquals("vnf0", ebbs.get(6).getWorkflowResourceIds().getVnfId());
399 assertEquals("si0", ebbs.get(7).getWorkflowResourceIds().getServiceInstanceId());
403 public void selectExecutionListServiceMacroDeactivateTest() throws Exception {
404 String gAction = "deactivateInstance";
405 String resource = "Service";
406 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
407 initExecution(gAction, bpmnRequest, false);
408 execution.setVariable("requestUri", "v6/serviceInstances/123");
410 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
411 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateServiceInstanceBB");
412 northBoundRequest.setOrchestrationFlowList(orchFlows);
414 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
415 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
416 workflowAction.selectExecutionList(execution);
417 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
418 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(), "DeactivateServiceInstanceBB");
422 public void selectExecutionListServiceMacroEmptyServiceTest() throws Exception {
423 String gAction = "createInstance";
424 String resource = "Service";
425 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
426 initExecution(gAction, bpmnRequest, false);
427 execution.setVariable("requestUri", "v6/serviceInstances/123");
429 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
430 northBoundRequest.setIsToplevelflow(true);
431 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
432 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
433 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
434 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
435 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
436 northBoundRequest.setOrchestrationFlowList(orchFlows);
438 Service service = new Service();
439 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
440 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
441 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
442 workflowAction.selectExecutionList(execution);
443 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
444 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
448 public void selectExecutionListServiceMacroCreateJustNetworkTest() throws Exception {
449 String gAction = "createInstance";
450 String resource = "Service";
451 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
452 initExecution(gAction, bpmnRequest, false);
453 execution.setVariable("requestUri", "v6/serviceInstances/123");
455 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
456 northBoundRequest.setIsToplevelflow(true);
457 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
458 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
459 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
460 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
461 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
462 northBoundRequest.setOrchestrationFlowList(orchFlows);
464 Service service = new Service();
465 NetworkResourceCustomization networkCustomization = new NetworkResourceCustomization();
466 networkCustomization.setModelCustomizationUUID("1234");
467 service.getNetworkCustomizations().add(networkCustomization);
468 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
469 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
470 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
471 workflowAction.selectExecutionList(execution);
472 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
473 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignNetworkBB", "CreateNetworkBB",
474 "ActivateNetworkBB", "ActivateServiceInstanceBB");
478 public void selectExecutionListServiceMacroCreateWithNetworkCollectionTest() throws Exception {
479 String gAction = "createInstance";
480 String resource = "Service";
481 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
482 initExecution(gAction, bpmnRequest, false);
483 execution.setVariable("requestUri", "v6/serviceInstances/123");
485 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
486 northBoundRequest.setIsToplevelflow(true);
487 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
488 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
489 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
490 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
491 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
492 northBoundRequest.setOrchestrationFlowList(orchFlows);
494 Service service = new Service();
495 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
496 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
497 networkCust.setModelCustomizationUUID("123");
498 networkCustomizations.add(networkCust);
499 service.setNetworkCustomizations(networkCustomizations);
500 NetworkCollectionResourceCustomization collectionResourceCustomization =
501 new NetworkCollectionResourceCustomization();
502 collectionResourceCustomization.setModelCustomizationUUID("123");
504 CollectionResource collectionResource = new CollectionResource();
505 collectionResource.setToscaNodeType("NetworkCollection");
506 InstanceGroup instanceGroup = new InstanceGroup();
507 instanceGroup.setToscaNodeType("NetworkCollectionResource");
508 instanceGroup.setCollectionNetworkResourceCustomizations(new ArrayList<>());
509 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
510 new CollectionNetworkResourceCustomization();
511 collectionNetworkResourceCust.setModelCustomizationUUID("123");
512 collectionNetworkResourceCust.setNetworkResourceCustomization(collectionResourceCustomization);
513 instanceGroup.getCollectionNetworkResourceCustomizations().add(collectionNetworkResourceCust);
514 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
515 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
516 new CollectionResourceInstanceGroupCustomization();
517 collectionInstanceGroupCustomization.setModelCustomizationUUID("123");
518 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
519 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
520 collectionInstanceGroupCustomization.setInstanceGroup(instanceGroup);
521 collectionInstanceGroupCustomization.setCollectionResourceCust(collectionResourceCustomization);
522 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
523 collectionResource.setInstanceGroup(instanceGroup);
524 collectionResourceCustomization.setCollectionResource(collectionResource);;
525 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
526 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
527 doReturn(collectionResourceCustomization).when(catalogDbClient)
528 .getNetworkCollectionResourceCustomizationByID("123");
529 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
530 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
531 workflowAction.selectExecutionList(execution);
532 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
533 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "CreateNetworkCollectionBB", "AssignNetworkBB",
534 "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
535 "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB",
536 "ActivateServiceInstanceBB");
537 assertEquals("Network id not empty", !ebbs.get(2).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
538 assertEquals("Network id not empty", !ebbs.get(3).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
539 assertEquals("Network id not empty", !ebbs.get(4).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
540 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
541 ebbs.get(2).getWorkflowResourceIds().getNetworkId() == ebbs.get(3).getWorkflowResourceIds()
543 && ebbs.get(3).getWorkflowResourceIds().getNetworkId() == ebbs.get(4).getWorkflowResourceIds()
546 assertEquals("Network id not empty", !ebbs.get(5).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
547 assertEquals("Network id not empty", !ebbs.get(6).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
548 assertEquals("Network id not empty", !ebbs.get(7).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
549 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
550 ebbs.get(5).getWorkflowResourceIds().getNetworkId() == ebbs.get(6).getWorkflowResourceIds()
552 && ebbs.get(6).getWorkflowResourceIds().getNetworkId() == ebbs.get(7).getWorkflowResourceIds()
555 assertEquals("Network id not empty", !ebbs.get(8).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
556 assertEquals("Network id not empty", !ebbs.get(9).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
557 assertEquals("Network id not empty", !ebbs.get(10).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
558 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
559 ebbs.get(8).getWorkflowResourceIds().getNetworkId() == ebbs.get(9).getWorkflowResourceIds()
561 && ebbs.get(9).getWorkflowResourceIds().getNetworkId() == ebbs.get(10).getWorkflowResourceIds()
567 public void selectExecutionListServiceMacroCreateWithUserParams() throws Exception {
568 String gAction = "createInstance";
569 String resource = "Service";
570 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
571 initExecution(gAction, bpmnRequest, false);
572 execution.setVariable("requestUri", "v6/serviceInstances/123");
574 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
575 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
576 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
577 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
578 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
579 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
580 northBoundRequest.setOrchestrationFlowList(orchFlows);
582 Service service = new Service();
583 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
585 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
586 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
587 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
588 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
589 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
590 HeatTemplate volumeHeatTemplate = new HeatTemplate();
591 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
592 vfModuleCustomization.setVfModule(vfModule);
594 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
595 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
596 HeatEnvironment heatEnvironment = new HeatEnvironment();
597 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
598 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
599 HeatTemplate moduleHeatTemplate = new HeatTemplate();
600 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
601 vfModuleCustomization2.setVfModule(vfModule2);
603 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
604 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
606 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
607 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
608 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
609 .thenReturn(vfModuleCustomization);
610 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
611 .thenReturn(vfModuleCustomization2);
612 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
613 .thenReturn(vfModuleCustomization3);
614 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
615 workflowAction.selectExecutionList(execution);
616 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
617 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
618 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB", "CreateVolumeGroupBB",
619 "ActivateVolumeGroupBB", "CreateVfModuleBB", "CreateVfModuleBB", "CreateVfModuleBB",
620 "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
621 "ActivateServiceInstanceBB");
622 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
623 int randomUUIDLength = UUID.randomUUID().toString().length();
624 assertEquals(randomUUIDLength, ebbs.get(1).getWorkflowResourceIds().getVnfId().length());
625 assertEquals(randomUUIDLength, ebbs.get(2).getWorkflowResourceIds().getVolumeGroupId().length());
626 assertEquals(randomUUIDLength, ebbs.get(3).getWorkflowResourceIds().getVfModuleId().length());
627 assertEquals(randomUUIDLength, ebbs.get(4).getWorkflowResourceIds().getVfModuleId().length());
628 assertEquals(randomUUIDLength, ebbs.get(5).getWorkflowResourceIds().getVfModuleId().length());
629 assertEquals(randomUUIDLength, ebbs.get(6).getWorkflowResourceIds().getVolumeGroupId().length());
630 assertEquals(randomUUIDLength, ebbs.get(7).getWorkflowResourceIds().getVolumeGroupId().length());
631 assertEquals(randomUUIDLength, ebbs.get(8).getWorkflowResourceIds().getVfModuleId().length());
632 assertEquals(randomUUIDLength, ebbs.get(9).getWorkflowResourceIds().getVfModuleId().length());
633 assertEquals(randomUUIDLength, ebbs.get(10).getWorkflowResourceIds().getVfModuleId().length());
634 assertEquals(randomUUIDLength, ebbs.get(11).getWorkflowResourceIds().getVfModuleId().length());
635 assertEquals(randomUUIDLength, ebbs.get(12).getWorkflowResourceIds().getVfModuleId().length());
636 assertEquals(randomUUIDLength, ebbs.get(13).getWorkflowResourceIds().getVfModuleId().length());
637 assertEquals(randomUUIDLength, ebbs.get(14).getWorkflowResourceIds().getVnfId().length());
638 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
639 assertEquals(true, execution.getVariable("homing"));
643 public void selectExecutionListServiceMacroDeleteTest() throws Exception {
644 String gAction = "deleteInstance";
645 String resource = "Service";
646 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
647 initExecution(gAction, bpmnRequest, false);
648 execution.setVariable("requestUri", "v6/serviceInstances/123");
650 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
651 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
652 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivatePnfBB",
653 "DeactivateNetworkBB", "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB",
654 "UnassignVfModuleBB", "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB",
655 "UnassignServiceInstanceBB");
656 northBoundRequest.setOrchestrationFlowList(orchFlows);
658 ServiceInstance serviceInstanceAAI = new ServiceInstance();
659 serviceInstanceAAI.setServiceInstanceId("aaisi123");
660 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
661 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
662 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
663 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
664 org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf pnf =
665 new org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf();
666 vnf.setVnfId("vnfId123");
667 pnf.setPnfId("pnfId123");
669 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
670 vnf.getVfModules().add(vfModule);
671 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
672 vnf.getVfModules().add(vfModule2);
674 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
675 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
676 volumeGroup.setVolumeGroupId("vg123");
677 vnf.getVolumeGroups().add(volumeGroup);
679 serviceInstanceMSO.getVnfs().add(vnf);
680 serviceInstanceMSO.getPnfs().add(pnf);
682 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
683 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
684 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
685 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
686 workflowAction.selectExecutionList(execution);
687 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
688 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
689 "DeleteVfModuleBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB",
690 "DeactivatePnfBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB", "UnassignVfModuleBB",
691 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignServiceInstanceBB");
695 public void selectExecutionListServiceMacroDeleteWithPnfTest() throws Exception {
696 String gAction = "deleteInstance";
697 String resource = "Service";
698 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
699 initExecution(gAction, bpmnRequest, false);
700 execution.setVariable("requestUri", "v6/serviceInstances/123");
702 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
703 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
704 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivatePnfBB",
705 "DeactivateNetworkBB", "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB",
706 "UnassignVfModuleBB", "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB",
707 "UnassignServiceInstanceBB");
708 northBoundRequest.setOrchestrationFlowList(orchFlows);
710 ServiceInstance serviceInstanceAAI = new ServiceInstance();
711 serviceInstanceAAI.setServiceInstanceId("aaisi123");
712 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
713 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
714 org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf pnf =
715 new org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf();
716 pnf.setPnfId("pnfId123");
718 serviceInstanceMSO.getPnfs().add(pnf);
720 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
721 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
722 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
723 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
724 workflowAction.selectExecutionList(execution);
725 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
726 assertEqualsBulkFlowName(ebbs, "DeactivatePnfBB", "DeactivateServiceInstanceBB", "UnassignServiceInstanceBB");
730 public void selectExecutionListServiceMacroUnassignTest() throws Exception {
731 String gAction = "unassignInstance";
732 String resource = "Service";
733 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
734 initExecution(gAction, bpmnRequest, false);
735 execution.setVariable("requestUri", "v6/serviceInstances/123");
737 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
738 List<OrchestrationFlow> orchFlows = createFlowList("UnassignVfModuleBB", "UnassignVolumeGroupBB",
739 "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
740 northBoundRequest.setOrchestrationFlowList(orchFlows);
742 ServiceInstance serviceInstanceAAI = new ServiceInstance();
743 serviceInstanceAAI.setServiceInstanceId("aaisi123");
744 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
745 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
746 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
747 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
748 vnf.setVnfId("vnfId123");
750 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
751 vnf.getVfModules().add(vfModule);
752 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
753 vnf.getVfModules().add(vfModule2);
755 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
756 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
757 volumeGroup.setVolumeGroupId("vg123");
758 vnf.getVolumeGroups().add(volumeGroup);
760 serviceInstanceMSO.getVnfs().add(vnf);
762 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
763 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
764 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
765 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
766 workflowAction.selectExecutionList(execution);
767 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
768 assertEqualsBulkFlowName(ebbs, "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
769 "UnassignVnfBB", "UnassignServiceInstanceBB");
773 public void selectExecutionListServiceMacroDeleteNetworkCollectionTest() throws Exception {
774 String gAction = "deleteInstance";
775 String resource = "Service";
776 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
777 initExecution(gAction, bpmnRequest, false);
778 execution.setVariable("requestUri", "v6/serviceInstances/123");
780 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
781 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
782 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
783 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
784 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
785 northBoundRequest.setOrchestrationFlowList(orchFlows);
787 ServiceInstance serviceInstanceAAI = new ServiceInstance();
788 serviceInstanceAAI.setServiceInstanceId("aaisi123");
789 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
790 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
792 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network =
793 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
794 network.setNetworkId("123");
795 serviceInstanceMSO.getNetworks().add(network);
796 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network2 =
797 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
798 network2.setNetworkId("321");
799 serviceInstanceMSO.getNetworks().add(network2);
801 Collection collection = new Collection();
802 serviceInstanceMSO.setCollection(collection);
804 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
805 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
806 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
807 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
808 workflowAction.selectExecutionList(execution);
809 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
810 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
811 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeleteNetworkCollectionBB",
812 "DeactivateServiceInstanceBB", "UnassignServiceInstanceBB");
816 public void selectExecutionListVnfMacroRecreateTest() throws Exception {
817 String gAction = "recreateInstance";
818 String resource = "Vnf";
819 String bpmnRequest = readBpmnRequestFromFile(MACRO_VNF_MACRO_REPLACE_JSON);
820 initExecution(gAction, bpmnRequest, false);
821 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/recreate");
822 execution.setVariable("serviceInstanceId", "123");
823 execution.setVariable("vnfId", "1234");
825 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
826 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
827 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
828 "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB",
829 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
830 "AAIUnsetVnfInMaintBB");
831 northBoundRequest.setOrchestrationFlowList(orchFlows);
833 ServiceInstance serviceInstanceAAI = new ServiceInstance();
834 serviceInstanceAAI.setServiceInstanceId("123");
835 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
836 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
837 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
838 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
839 vnf.setVnfId("1234");
841 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
842 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
843 vfModule.setVfModuleId("vfModule1");
844 vnf.getVfModules().add(vfModule);
845 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
846 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
847 vfModule2.setVfModuleId("vfModule2");
848 vnf.getVfModules().add(vfModule2);
850 serviceInstanceMSO.getVnfs().add(vnf);
852 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
853 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
854 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
855 false, "cloud-owner")).thenReturn(northBoundRequest);
856 workflowAction.selectExecutionList(execution);
857 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
858 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateVfModuleBB",
859 "DeactivateVfModuleBB", "DeleteVfModuleBB", "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB",
860 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
861 "AAIUnsetVnfInMaintBB");
865 public void selectExecutionListVnfMacroReplaceTest() throws Exception {
866 String gAction = "replaceInstance";
867 String resource = "Vnf";
868 String bpmnRequest = readBpmnRequestFromFile(MACRO_VNF_MACRO_REPLACE_JSON);
869 initExecution(gAction, bpmnRequest, false);
870 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/replace");
871 execution.setVariable("serviceInstanceId", "123");
872 execution.setVariable("vnfId", "1234");
874 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
875 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
876 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
877 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
878 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB",
879 "ChangeModelVnfBB", "ActivateVnfBB", "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB",
880 "AAIUnsetVnfInMaintBB");
881 northBoundRequest.setOrchestrationFlowList(orchFlows);
883 ServiceInstance serviceInstanceAAI = new ServiceInstance();
884 serviceInstanceAAI.setServiceInstanceId("123");
885 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
886 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
887 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
888 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
889 vnf.setVnfId("1234");
890 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
891 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
892 vfModule.setVfModuleId("vfModule1");
893 vnf.getVfModules().add(vfModule);
894 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
895 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
896 vfModule2.setVfModuleId("vfModule2");
897 vnf.getVfModules().add(vfModule2);
898 serviceInstanceMSO.getVnfs().add(vnf);
899 VfModule vfModuleAAI = new VfModule();
900 vfModuleAAI.setVfModuleId("vfModule2");
901 RelationshipList relationshipList = new RelationshipList();
902 Relationship relationship = new Relationship();
903 relationshipList.getRelationship().add(relationship);
904 vfModuleAAI.setRelationshipList(relationshipList);
905 Relationships relationships = new Relationships("abc");
906 Configuration config = new Configuration();
907 config.setConfigurationId("configId");
908 Optional<Configuration> configOp = Optional.of(config);
909 Optional<Relationships> relationshipsOp = Optional.of(relationships);
911 doReturn(relationshipsOp).when(workflowActionUtils).extractRelationshipsVnfc(isA(Relationships.class));
912 doReturn(configOp).when(workflowActionUtils).extractRelationshipsConfiguration(isA(Relationships.class));
913 doReturn(vfModuleAAI).when(bbSetupUtils).getAAIVfModule("1234", "vfModule2");
914 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
915 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
916 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
917 false, "cloud-owner")).thenReturn(northBoundRequest);
918 workflowAction.selectExecutionList(execution);
919 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
920 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateFabricConfigurationBB",
921 "UnassignFabricConfigurationBB", "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
922 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "ChangeModelVfModuleBB",
923 "CreateVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB",
924 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ChangeModelVnfBB", "ActivateVnfBB",
925 "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
926 for (ExecuteBuildingBlock executeBuildingBlock : ebbs) {
927 assertEquals("123", executeBuildingBlock.getWorkflowResourceIds().getServiceInstanceId());
933 public void selectExecutionListNetworkCollectionMacroCreate() throws Exception {
934 String gAction = "createInstance";
935 String resource = "NetworkCollection";
936 String bpmnRequest = readBpmnRequestFromFile(MACRO_CREATE_NETWORK_COLLECTION_JSON);
937 initExecution(gAction, bpmnRequest, false);
938 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
940 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
941 List<OrchestrationFlow> orchFlows = createFlowList("CreateNetworkCollectionBB", "AssignNetworkBB",
942 "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB");
943 northBoundRequest.setOrchestrationFlowList(orchFlows);
945 Service service = new Service();
946 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
947 CollectionResource collectionResource = new CollectionResource();
948 collectionResource.setToscaNodeType("Data NetworkCollection Data");
949 collectionResourceCustomization.setCollectionResource(collectionResource);
950 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
952 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
953 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
954 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
955 workflowAction.selectExecutionList(execution);
956 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
957 assertEqualsBulkFlowName(ebbs, "CreateNetworkCollectionBB", "AssignNetworkBB", "CreateNetworkBB",
958 "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
959 "ActivateNetworkCollectionBB");
964 public void selectExecutionListNetworkCollectionMacroDelete() throws Exception {
965 String gAction = "deleteInstance";
966 String resource = "NetworkCollection";
967 String bpmnRequest = readBpmnRequestFromFile(MACRO_CREATE_NETWORK_COLLECTION_JSON);
968 initExecution(gAction, bpmnRequest, false);
969 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
971 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
972 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateNetworkBB", "DeleteNetworkBB",
973 "UnassignNetworkBB", "DeactivateNetworkCollectionBB", "DeleteNetworkCollectionBB");
974 northBoundRequest.setOrchestrationFlowList(orchFlows);
976 Service service = new Service();
977 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
978 CollectionResource collectionResource = new CollectionResource();
979 collectionResource.setToscaNodeType("Data NetworkCollection Data");
980 collectionResourceCustomization.setCollectionResource(collectionResource);
981 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
983 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
984 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
985 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
986 workflowAction.selectExecutionList(execution);
987 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
988 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
989 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeactivateNetworkCollectionBB",
990 "DeleteNetworkCollectionBB");
994 public void selectExecutionListALaCarteVfModuleNoFabricCreateTest() throws Exception {
995 String gAction = "createInstance";
996 String resource = "VfModule";
997 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
998 initExecution(gAction, bpmnRequest, true);
999 execution.setVariable("requestUri",
1000 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1002 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1003 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1004 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1005 northBoundRequest.setOrchestrationFlowList(orchFlows);
1007 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1008 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1009 workflowAction.selectExecutionList(execution);
1010 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1011 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB");
1015 public void selectExecutionListALaCarteVfModuleFabricCreateTest() throws Exception {
1016 String gAction = "createInstance";
1017 String resource = "VfModule";
1018 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1019 initExecution(gAction, bpmnRequest, true);
1020 execution.setVariable("requestUri",
1021 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1023 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1024 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1025 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1026 northBoundRequest.setOrchestrationFlowList(orchFlows);
1028 List<CvnfcCustomization> cvnfcCustomizations = new ArrayList<CvnfcCustomization>();
1029 CvnfcCustomization cvnfcCustomization = new CvnfcCustomization();
1030 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1031 new CvnfcConfigurationCustomization();
1032 ConfigurationResource configurationResource = new ConfigurationResource();
1033 configurationResource.setToscaNodeType("FabricConfiguration");
1034 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1035 vnfVfmoduleCvnfcConfigurationCustomization.setModelInstanceName("modelInstanceName1");
1036 vnfVfmoduleCvnfcConfigurationCustomization.setCvnfcCustomization(cvnfcCustomization);
1037 List<CvnfcConfigurationCustomization> custSet = new ArrayList<CvnfcConfigurationCustomization>();
1038 custSet.add(vnfVfmoduleCvnfcConfigurationCustomization);
1039 cvnfcCustomization.setCvnfcConfigurationCustomization(custSet);
1040 cvnfcCustomization.setDescription("description");
1041 cvnfcCustomizations.add(cvnfcCustomization);
1043 CvnfcCustomization cvnfcCustomization2 = new CvnfcCustomization();
1044 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization2 =
1045 new CvnfcConfigurationCustomization();
1046 ConfigurationResource configurationResource2 = new ConfigurationResource();
1047 configurationResource2.setToscaNodeType("FabricConfiguration");
1048 vnfVfmoduleCvnfcConfigurationCustomization2.setConfigurationResource(configurationResource2);
1049 vnfVfmoduleCvnfcConfigurationCustomization2.setModelInstanceName("modelInstanceName2");
1050 vnfVfmoduleCvnfcConfigurationCustomization2.setCvnfcCustomization(cvnfcCustomization2);
1051 List<CvnfcConfigurationCustomization> custSet2 = new ArrayList<CvnfcConfigurationCustomization>();
1052 custSet2.add(vnfVfmoduleCvnfcConfigurationCustomization2);
1053 cvnfcCustomization2.setCvnfcConfigurationCustomization(custSet2);
1054 cvnfcCustomization2.setDescription("description2");
1055 cvnfcCustomizations.add(cvnfcCustomization2);
1057 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1058 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1059 // when(catalogDbClient.getCvnfcCustomizationByVnfCustomizationUUIDAndVfModuleCustomizationUUID("fc25201d-36d6-43a3-8d39-fdae88e526ae",
1060 // "9a6d01fd-19a7-490a-9800-460830a12e0b")).thenReturn(cvnfcCustomizations);
1061 workflowAction.selectExecutionList(execution);
1062 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1063 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1064 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "AssignFabricConfigurationBB",
1065 "ActivateFabricConfigurationBB");
1069 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceTest() throws Exception {
1070 String gAction = "replaceInstance";
1071 String resource = "VfModule";
1072 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1073 initExecution(gAction, bpmnRequest, true);
1074 execution.setVariable("requestUri",
1075 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1077 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1078 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1079 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1080 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1081 workflowAction.selectExecutionList(execution);
1082 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1084 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1085 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1086 "ChangeModelServiceInstanceBB");
1090 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1091 String gAction = "replaceInstanceRetainAssignments";
1092 String resource = "VfModule";
1093 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1094 initExecution(gAction, bpmnRequest, true);
1095 execution.setVariable("requestUri",
1096 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1098 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1099 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1100 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1101 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1102 workflowAction.selectExecutionList(execution);
1103 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1105 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1106 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1110 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceTest() throws Exception {
1111 String gAction = "replaceInstance";
1112 String resource = "VfModule";
1113 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1114 initExecution(gAction, bpmnRequest, true);
1115 execution.setVariable("requestUri",
1116 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1117 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1118 execution.setVariable("vfModuleId", "1234");
1120 VolumeGroup volumeGroup = new VolumeGroup();
1121 volumeGroup.setVolumeGroupId("volumeGroupId");
1122 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1123 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1124 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1125 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1126 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1127 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1128 workflowAction.selectExecutionList(execution);
1129 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1131 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1132 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVfModuleBB",
1133 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1137 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceRetainAssignmentsTest()
1139 String gAction = "replaceInstanceRetainAssignments";
1140 String resource = "VfModule";
1141 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1142 initExecution(gAction, bpmnRequest, true);
1143 execution.setVariable("requestUri",
1144 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1145 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1146 execution.setVariable("vfModuleId", "1234");
1148 VolumeGroup volumeGroup = new VolumeGroup();
1149 volumeGroup.setVolumeGroupId("volumeGroupId");
1150 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1151 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1153 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1154 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1155 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1156 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1157 workflowAction.selectExecutionList(execution);
1158 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1160 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1161 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
1162 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1166 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceTest() throws Exception {
1167 String gAction = "replaceInstance";
1168 String resource = "VfModule";
1169 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1170 initExecution(gAction, bpmnRequest, true);
1171 execution.setVariable("requestUri",
1172 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1173 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1174 execution.setVariable("vfModuleId", "1234");
1176 VolumeGroup volumeGroup = new VolumeGroup();
1177 volumeGroup.setVolumeGroupId("volumeGroupId");
1178 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1179 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1181 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1182 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1183 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1184 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1185 vfModuleCustomization.setVfModule(vfModule);
1186 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1187 .thenReturn(vfModuleCustomization);
1189 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1190 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1191 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1192 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1193 workflowAction.selectExecutionList(execution);
1194 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1196 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1197 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1198 "ChangeModelServiceInstanceBB");
1202 public void selectExecutionListALaCarteVfModuleWithFabricKeepVolumeGroupReplaceTest() throws Exception {
1203 String gAction = "replaceInstance";
1204 String resource = "VfModule";
1205 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1206 initExecution(gAction, bpmnRequest, true);
1207 execution.setVariable("requestUri",
1208 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1209 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1210 execution.setVariable("vfModuleId", "1234");
1212 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1213 vnf.setVnfId("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1214 vnf.setModelCustomizationId("modelCustomizationId");
1215 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
1217 org.onap.aai.domain.yang.VfModule vfModuleFromAAI = new org.onap.aai.domain.yang.VfModule();
1218 vfModuleFromAAI.setModelCustomizationId("modelCustomizationId");
1219 vfModuleFromAAI.setVfModuleId("1234");
1220 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModuleFromAAI);
1222 VolumeGroup volumeGroup = new VolumeGroup();
1223 volumeGroup.setVolumeGroupId("volumeGroupId");
1224 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1225 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1227 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1228 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1229 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1230 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1231 vfModuleCustomization.setVfModule(vfModule);
1232 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1233 .thenReturn(vfModuleCustomization);
1234 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1235 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1236 vnfc.setModelInvariantId("modelInvariantId");
1237 vnfc.setVnfcName("testVnfcName");
1239 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(), any(), any());
1241 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1242 configuration.setConfigurationId("configurationId");
1243 configuration.setModelCustomizationId("modelCustimizationId");
1244 configuration.setConfigurationName("testConfigurationName");
1245 doReturn(configuration).when(SPY_workflowAction).getRelatedResourcesInVnfc(any(), any(), any());
1247 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1248 northBoundRequest.setOrchestrationFlowList(replaceVfModuleWithFabricOrchFlows);
1249 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1250 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1251 SPY_workflowAction.selectExecutionList(execution);
1252 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1254 assertEqualsBulkFlowName(ebbs, "DeleteFabricConfigurationBB", "DeactivateVfModuleBB", "DeleteVfModuleATTBB",
1255 "UnassignVFModuleBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1256 "AddFabricConfigurationBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1260 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1261 String gAction = "replaceInstanceRetainAssignments";
1262 String resource = "VfModule";
1263 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1264 initExecution(gAction, bpmnRequest, true);
1265 execution.setVariable("requestUri",
1266 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1267 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1268 execution.setVariable("vfModuleId", "1234");
1270 VolumeGroup volumeGroup = new VolumeGroup();
1271 volumeGroup.setVolumeGroupId("volumeGroupId");
1272 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1273 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1275 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1276 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1277 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1278 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1279 vfModuleCustomization.setVfModule(vfModule);
1280 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1281 .thenReturn(vfModuleCustomization);
1283 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1284 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1285 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1286 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1287 workflowAction.selectExecutionList(execution);
1288 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1290 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1291 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1295 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceTest() throws Exception {
1296 String gAction = "replaceInstance";
1297 String resource = "VfModule";
1298 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1299 initExecution(gAction, bpmnRequest, true);
1300 execution.setVariable("requestUri",
1301 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1302 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1303 execution.setVariable("vfModuleId", "1234");
1305 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1306 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1307 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1308 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1309 vfModuleCustomization.setVfModule(vfModule);
1310 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1311 .thenReturn(vfModuleCustomization);
1313 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1314 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1315 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1316 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1317 workflowAction.selectExecutionList(execution);
1318 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1320 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1321 "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1322 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1326 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceRetainAssignmentsTest()
1328 String gAction = "replaceInstanceRetainAssignments";
1329 String resource = "VfModule";
1330 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1331 initExecution(gAction, bpmnRequest, true);
1332 execution.setVariable("requestUri",
1333 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1334 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1335 execution.setVariable("vfModuleId", "1234");
1337 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1338 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1339 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1340 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1341 vfModuleCustomization.setVfModule(vfModule);
1342 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1343 .thenReturn(vfModuleCustomization);
1345 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1346 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1347 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1348 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1349 workflowAction.selectExecutionList(execution);
1350 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1352 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "AssignVolumeGroupBB",
1353 "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
1354 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1358 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceTest() throws Exception {
1359 String gAction = "replaceInstance";
1360 String resource = "VfModule";
1361 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_REPLACE_REBUILD_VOLUME_GROUPS_JSON);
1362 initExecution(gAction, bpmnRequest, true);
1363 execution.setVariable("requestUri",
1364 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1365 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1366 execution.setVariable("vfModuleId", "1234");
1368 VolumeGroup volumeGroup = new VolumeGroup();
1369 volumeGroup.setVolumeGroupId("volumeGroupId");
1370 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1371 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1373 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1374 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1375 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1376 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1377 vfModuleCustomization.setVfModule(vfModule);
1378 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1379 .thenReturn(vfModuleCustomization);
1381 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1382 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1383 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1384 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1385 workflowAction.selectExecutionList(execution);
1386 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1388 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1389 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
1390 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
1391 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1395 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1396 String gAction = "replaceInstanceRetainAssignments";
1397 String resource = "VfModule";
1398 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_REPLACE_REBUILD_VOLUME_GROUPS_JSON);
1399 initExecution(gAction, bpmnRequest, true);
1400 execution.setVariable("requestUri",
1401 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1402 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1403 execution.setVariable("vfModuleId", "1234");
1405 VolumeGroup volumeGroup = new VolumeGroup();
1406 volumeGroup.setVolumeGroupId("volumeGroupId");
1407 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1408 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1410 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1411 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1412 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1413 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1414 vfModuleCustomization.setVfModule(vfModule);
1415 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1416 .thenReturn(vfModuleCustomization);
1418 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1419 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1420 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1421 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1422 workflowAction.selectExecutionList(execution);
1423 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1425 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1426 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB", "ChangeModelVfModuleBB",
1427 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1428 "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1433 public void selectExecutionListALaCarteVfModuleFabricDeleteTest() throws Exception {
1434 String gAction = "deleteInstance";
1435 String resource = "VfModule";
1436 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1437 initExecution(gAction, bpmnRequest, true);
1438 execution.setVariable("requestUri",
1439 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1441 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1442 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1443 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1444 northBoundRequest.setOrchestrationFlowList(orchFlows);
1446 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1447 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1449 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1450 vnf.setVnfId("vnf0");
1451 vnf.setModelCustomizationId("modelCustomizationId");
1452 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1454 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1455 vfModule.setModelCustomizationId("modelCustomizationId");
1456 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1458 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1459 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1460 vnfc.setModelInvariantId("modelInvariantId");
1461 vnfc.setVnfcName("testVnfcName");
1463 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1466 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1467 configuration.setConfigurationId("configurationId");
1468 configuration.setModelCustomizationId("modelCustimizationId");
1469 configuration.setConfigurationName("testConfigurationName");
1470 doReturn(configuration).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1473 SPY_workflowAction.selectExecutionList(execution);
1474 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1475 assertEqualsBulkFlowName(ebbs, "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB",
1476 "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1480 public void getConfigBuildingBlocksNoVfModuleFabricDeleteTest() throws Exception {
1481 String gAction = "deleteInstance";
1482 ObjectMapper mapper = new ObjectMapper();
1483 WorkflowType resourceType = WorkflowType.VFMODULE;
1484 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1485 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1486 execution.setVariable("requestAction", gAction);
1487 execution.setVariable("bpmnRequest", bpmnRequest);
1488 execution.setVariable("vnfId", "1234");
1489 execution.setVariable("vfModuleId", "vfModuleId1234");
1490 execution.setVariable("requestUri",
1491 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1492 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1493 RequestDetails requestDetails = sIRequest.getRequestDetails();
1494 String requestAction = "deleteInstance";
1495 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1496 boolean aLaCarte = true;
1497 String apiVersion = "7";
1498 String vnfType = "vnfType";
1499 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1500 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1501 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1502 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1504 thrown.expect(AAIEntityNotFoundException.class);
1505 thrown.expectMessage(containsString(
1506 "No matching VfModule is found in Generic-Vnf in AAI for vnfId: 1234 and vfModuleId : vfModuleId1234"));
1508 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1509 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1511 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1512 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1513 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1514 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1516 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1517 vnf.setVnfId("vnf0");
1518 vnf.setModelCustomizationId("modelCustomizationId");
1519 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1521 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1522 vfModule.setModelCustomizationId("modelCustomizationId");
1523 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(null);
1525 SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1529 public void getConfigBuildingBlocksTest() throws Exception {
1530 String gAction = "deleteInstance";
1531 ObjectMapper mapper = new ObjectMapper();
1532 mapper.disable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES);
1534 WorkflowType resourceType = WorkflowType.VFMODULE;
1535 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1536 execution.setVariable("requestAction", gAction);
1537 String bpmnRequest =
1538 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1539 execution.setVariable("bpmnRequest", bpmnRequest);
1540 execution.setVariable("vnfId", "1234");
1541 execution.setVariable("vfModuleId", "vfModuleId1234");
1542 execution.setVariable("requestUri",
1543 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1544 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1545 RequestDetails requestDetails = sIRequest.getRequestDetails();
1546 String requestAction = "deleteInstance";
1547 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1548 boolean aLaCarte = true;
1549 String apiVersion = "7";
1550 String vnfType = "vnfType";
1551 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1552 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1553 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1554 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1556 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1557 "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
1559 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1560 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1561 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1562 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1564 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1565 vnf.setVnfId("vnf0");
1566 vnf.setModelCustomizationId("modelCustomizationId");
1567 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
1569 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1570 vfModule.setModelCustomizationId("modelCustomizationId");
1572 org.onap.aai.domain.yang.Configuration config1 = new org.onap.aai.domain.yang.Configuration();
1573 config1.setConfigurationId("config1");
1574 org.onap.aai.domain.yang.Configuration config2 = new org.onap.aai.domain.yang.Configuration();
1575 config2.setConfigurationId("config2");
1577 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1578 org.onap.aai.domain.yang.Vnfc vnfc1 = new org.onap.aai.domain.yang.Vnfc();
1579 vnfc1.setVnfcName("zauk53avetd02svm001");
1580 org.onap.aai.domain.yang.Vnfc vnfc2 = new org.onap.aai.domain.yang.Vnfc();
1581 vnfc2.setVnfcName("zauk53avetd02tvm001");
1585 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModule);
1586 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(),
1587 eq(org.onap.aai.domain.yang.Vnfc.class), eq(AAIObjectType.VNFC));
1588 doReturn(config1).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc1),
1589 eq(org.onap.aai.domain.yang.Configuration.class), eq(AAIObjectType.CONFIGURATION));
1590 doReturn(config2).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc2),
1591 eq(org.onap.aai.domain.yang.Configuration.class), eq(AAIObjectType.CONFIGURATION));
1593 List<ExecuteBuildingBlock> results = SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1595 assertFalse(results.isEmpty());
1596 assertEquals(2, results.size());
1597 assertEquals("config1", results.get(0).getWorkflowResourceIds().getConfigurationId());
1598 assertEquals("config2", results.get(1).getWorkflowResourceIds().getConfigurationId());
1599 assertEquals("zauk53avetd02svm001", results.get(0).getConfigurationResourceKeys().getVnfcName());
1600 assertEquals("zauk53avetd02tvm001", results.get(1).getConfigurationResourceKeys().getVnfcName());
1604 public void selectExecutionListALaCarteVfModuleNoFabricDeleteTest() throws Exception {
1605 String gAction = "deleteInstance";
1606 String resource = "VfModule";
1607 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1608 initExecution(gAction, bpmnRequest, true);
1609 execution.setVariable("requestUri",
1610 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1612 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1613 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1614 "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
1615 northBoundRequest.setOrchestrationFlowList(orchFlows);
1617 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1618 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1620 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1621 vnf.setVnfId("vnf0");
1622 vnf.setModelCustomizationId("modelCustomizationId");
1623 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1625 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1626 vfModule.setModelCustomizationId("modelCustomizationId");
1627 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1629 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1631 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1634 SPY_workflowAction.selectExecutionList(execution);
1635 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1636 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1640 public void selectExecutionListMacroResumeTest() throws Exception {
1641 String gAction = "createInstance";
1642 String resource = "Service";
1643 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
1644 initExecution(gAction, bpmnRequest, false);
1645 execution.setVariable("requestUri", "v6/serviceInstances/123");
1647 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1648 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1649 northBoundRequest.setOrchestrationFlowList(orchFlows);
1651 Service service = new Service();
1652 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
1654 ServiceInstance si = new ServiceInstance();
1656 when(bbSetupUtils.getAAIServiceInstanceById("123")).thenReturn(si);
1657 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1659 String flowsToExecuteString =
1660 "[{\"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\"}}]";
1661 ObjectMapper om = new ObjectMapper();
1662 List<ExecuteBuildingBlock> flowsToExecute = null;
1664 ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
1665 flowsToExecute = Arrays.asList(asArray);
1666 } catch (Exception e) {
1667 e.printStackTrace();
1670 when(bbSetupUtils.loadOriginalFlowExecutionPath(anyString())).thenReturn(flowsToExecute);
1672 workflowAction.selectExecutionList(execution);
1673 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1674 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB");
1678 public void getRelatedResourcesInVfModuleTest() throws Exception {
1679 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1680 vnfc.setModelInvariantId("modelInvariantId");
1681 vnfc.setVnfcName("testVnfcName");
1683 String vfncPayload =
1684 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/vnfcResponse.json")));
1685 AAIResultWrapper vfncWrapper = new AAIResultWrapper(vfncPayload);
1687 String configurationPayload =
1688 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/configurationResponse.json")));
1689 AAIResultWrapper configurationWrapper = new AAIResultWrapper(configurationPayload);
1690 List<AAIResultWrapper> configurationResultWrappers = new ArrayList<AAIResultWrapper>();
1691 configurationResultWrappers.add(configurationWrapper);
1693 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VNFC, vnfc.getVnfcName());
1694 when(bbSetupUtils.getAAIResourceDepthOne(uri)).thenReturn(vfncWrapper);
1696 doReturn(configurationResultWrappers).when(SPY_workflowAction).getResultWrappersFromRelationships(anyObject(),
1698 org.onap.aai.domain.yang.Configuration configuration = SPY_workflowAction.getRelatedResourcesInVnfc(vnfc,
1699 org.onap.aai.domain.yang.Configuration.class, AAIObjectType.CONFIGURATION);
1700 assertEquals("testConfigurationId", configuration.getConfigurationId());
1704 * WorkflowActionBB Tests
1708 public void pluralTest() {
1709 List<String> items = Arrays.asList("serviceInstances, Service", "vnfs, Vnf", "vfModules, VfModule",
1710 "networks, Network", "invalidNames, invalidNames");
1711 items.forEach(item -> {
1712 String[] split = item.split(",");
1713 String type = split[0].trim();
1714 String expected = split[1].trim();
1715 assertThat(workflowAction.convertTypeFromPlural(type), equalTo(expected));
1720 public void sortExecutionPathByObjectForVlanTaggingCreateTest() throws Exception {
1721 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1723 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("0");
1724 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1725 executeFlows.add(ebb);
1727 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("1");
1728 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1729 executeFlows.add(ebb2);
1731 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("0");
1732 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1733 executeFlows.add(ebb3);
1735 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("1");
1736 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1737 executeFlows.add(ebb4);
1739 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("0");
1740 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1741 executeFlows.add(ebb5);
1743 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("1");
1744 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1745 executeFlows.add(ebb6);
1747 List<ExecuteBuildingBlock> sorted =
1748 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "createInstance");
1749 assertEqualsBulkFlowName(sorted, "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB",
1750 "CreateNetworkBB", "ActivateNetworkBB");
1754 public void sortExecutionPathByObjectForVlanTaggingDeleteTest() throws Exception {
1755 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1757 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("0");
1758 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1759 executeFlows.add(ebb);
1761 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("1");
1762 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1763 executeFlows.add(ebb2);
1765 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("0");
1766 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1767 executeFlows.add(ebb3);
1769 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("1");
1770 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1771 executeFlows.add(ebb4);
1773 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("0");
1774 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1775 executeFlows.add(ebb5);
1777 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("1");
1778 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1779 executeFlows.add(ebb6);
1781 List<ExecuteBuildingBlock> sorted =
1782 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "deleteInstance");
1783 assertEqualsBulkFlowName(sorted, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1784 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB");
1788 public void queryNorthBoundRequestCatalogDbNestedTest() throws MalformedURLException {
1789 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1790 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
1791 "VNF-Macro-Replace", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
1792 northBoundRequest.setOrchestrationFlowList(orchFlows);
1793 List<OrchestrationFlow> macroFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1794 "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB");
1796 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner("replaceInstance",
1797 "Vnf", false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1798 when(catalogDbClient.getOrchestrationFlowByAction("VNF-Macro-Replace")).thenReturn(macroFlows);
1799 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "replaceInstance",
1800 WorkflowType.VNF, false, "my-custom-cloud-owner");
1801 assertEquals(flows.get(0).getFlowName(), "AAICheckVnfInMaintBB");
1802 assertEquals(flows.get(1).getFlowName(), "AAISetVnfInMaintBB");
1803 assertEquals(flows.get(2).getFlowName(), "DeactivateVfModuleBB");
1804 assertEquals(flows.get(3).getFlowName(), "DeleteVfModuleBB");
1805 assertEquals(flows.get(4).getFlowName(), "DeactivateVnfBB");
1806 assertEquals(flows.get(5).getFlowName(), "CreateVfModuleBB");
1807 assertEquals(flows.get(6).getFlowName(), "ActivateVfModuleBB");
1808 assertEquals(flows.get(7).getFlowName(), "ActivateVnfBB");
1809 assertEquals(flows.get(8).getFlowName(), "SDNOVnfHealthCheckBB");
1810 assertEquals(flows.get(9).getFlowName(), "AAIUnsetVnfInMaintBB");
1814 public void queryNorthBoundRequestCatalogDbTransportTest() throws MalformedURLException {
1815 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1816 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1817 northBoundRequest.setOrchestrationFlowList(orchFlows);
1818 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwnerAndServiceType(
1819 "createInstance", "Service", true, "my-custom-cloud-owner", "TRANSPORT")).thenReturn(northBoundRequest);
1821 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "createInstance",
1822 WorkflowType.SERVICE, true, "my-custom-cloud-owner", "TRANSPORT");
1823 assertEquals(flows.get(0).getFlowName(), "AssignServiceInstanceBB");
1827 public void extractResourceIdAndTypeFromUriTest() {
1828 String uri = "/v6/serviceInstances/123";
1829 String uri2 = "/v6/serviceInstances/123/vnfs/1234";
1830 String uri3 = "/v6/serviceInstances";
1831 String uri4 = "/v6/serviceInstances/assign";
1832 String uri5 = "'/v6/serviceInstances/123/vnfs";
1833 String uri6 = "/v6/serviceInstances/123/vnfs/1234/someAction";
1834 String uri7 = "/v6/serviceInstances/123/vnfs/1234/vfModules/5678/replace";
1835 String uri8 = "/v6/serviceInstances/123/vnfs/1234/vfModules/scaleOut";
1836 Resource expected1 = new Resource(WorkflowType.SERVICE, "123", true);
1837 Resource expected2 = new Resource(WorkflowType.VNF, "1234", false);
1838 Resource expected3 = new Resource(WorkflowType.VNF, "1234", false);
1839 Resource expected4 = new Resource(WorkflowType.VFMODULE, "5678", false);
1840 Resource result = workflowAction.extractResourceIdAndTypeFromUri(uri);
1841 assertEquals(expected1.getResourceId(), result.getResourceId());
1842 assertEquals(expected1.getResourceType(), result.getResourceType());
1843 result = workflowAction.extractResourceIdAndTypeFromUri(uri2);
1844 assertEquals(expected2.getResourceId(), result.getResourceId());
1845 assertEquals(expected2.getResourceType(), result.getResourceType());
1846 result = workflowAction.extractResourceIdAndTypeFromUri(uri3);
1847 assertEquals("Service", result.getResourceType().toString());
1848 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1849 result = workflowAction.extractResourceIdAndTypeFromUri(uri4);
1850 assertEquals("Service", result.getResourceType().toString());
1851 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1852 result = workflowAction.extractResourceIdAndTypeFromUri(uri5);
1853 assertEquals("Vnf", result.getResourceType().toString());
1854 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1855 result = workflowAction.extractResourceIdAndTypeFromUri(uri6);
1856 assertEquals(expected3.getResourceId(), result.getResourceId());
1857 assertEquals(expected3.getResourceType(), result.getResourceType());
1858 result = workflowAction.extractResourceIdAndTypeFromUri(uri7);
1859 assertEquals(expected4.getResourceId(), result.getResourceId());
1860 assertEquals(expected4.getResourceType(), result.getResourceType());
1861 result = workflowAction.extractResourceIdAndTypeFromUri(uri8);
1862 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1863 assertEquals("VfModule", result.getResourceType().toString());
1868 public void extractResourceIdAndTypeFromUriInvalidTypeTest() {
1869 this.expectedException.expect(IllegalArgumentException.class);
1870 this.expectedException.expectMessage(containsString("Uri could not be parsed. No type found."));
1871 workflowAction.extractResourceIdAndTypeFromUri("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace");
1875 public void extractResourceIdAndTypeFromUriInvalidUriTest() {
1876 this.expectedException.expect(IllegalArgumentException.class);
1877 this.expectedException.expectMessage(containsString("Uri could not be parsed:"));
1878 workflowAction.extractResourceIdAndTypeFromUri("something that doesn't match anything");
1882 public void extractResourceIdAndTypeFromUriResumeTest() {
1883 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1884 "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");
1885 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1889 public void extractResourceIdAndTypeFromUriReplaceResumeTest() {
1890 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1891 "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");
1892 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1896 public void extractResourceIdAndTypeFromUriDeActiveResumeTest() {
1897 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1898 "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");
1899 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1903 public void extractResourceIdAndTypeFromUriResumeIdOnly() {
1904 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1905 "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");
1906 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1910 public void isUriResumeTest() {
1911 assertTrue(workflowAction.isUriResume(
1912 "http://localhost:9100/onap/so/infra/orchestrationRequests/v7/requests/2f8ab587-ef6a-4456-b7b2-d73f9363dabd/resume"));
1913 assertTrue(workflowAction.isUriResume(
1914 " 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"));
1916 assertFalse(workflowAction.isUriResume("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace"));
1920 public void isRequestMacroServiceResumeTest() {
1921 ServiceInstance si = new ServiceInstance();
1922 when(bbSetupUtils.getAAIServiceInstanceById(anyString())).thenReturn(si);
1923 assertFalse(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", ""));
1924 assertTrue(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", "123"));
1928 public void populateResourceIdsFromApiHandlerTest() {
1929 execution.setVariable("serviceInstanceId", "123");
1930 execution.setVariable("vnfId", "888");
1931 WorkflowResourceIds x = workflowAction.populateResourceIdsFromApiHandler(execution);
1932 assertEquals("123", x.getServiceInstanceId());
1933 assertEquals("888", x.getVnfId());
1934 assertNull(x.getVolumeGroupId());
1937 private RequestDetails setupRequestDetails(String globalSubscriberId, String subscriptionServiceType,
1938 String modelCustomizationId) {
1939 RequestDetails reqDetails = new RequestDetails();
1940 SubscriberInfo subInfo = new SubscriberInfo();
1941 subInfo.setGlobalSubscriberId(globalSubscriberId);
1942 reqDetails.setSubscriberInfo(subInfo);
1943 RequestParameters reqParams = new RequestParameters();
1944 reqParams.setSubscriptionServiceType(subscriptionServiceType);
1945 reqDetails.setRequestParameters(reqParams);
1946 ModelInfo modelInfo = new ModelInfo();
1947 modelInfo.setModelCustomizationId(modelCustomizationId);
1948 reqDetails.setModelInfo(modelInfo);
1953 public void validateResourceIdInAAIVnfTest() throws Exception {
1954 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
1955 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1956 workflowResourceIds.setServiceInstanceId("siId123");
1958 GenericVnf vnf = new GenericVnf();
1959 vnf.setVnfId("id123");
1960 vnf.setVnfName("vnfName123");
1961 vnf.setModelCustomizationId("1234567");
1962 Optional<GenericVnf> opVnf = Optional.of(vnf);
1963 GenericVnf vnf2 = new GenericVnf();
1964 vnf2.setVnfId("id123");
1965 vnf2.setVnfName("vnfName222");
1966 vnf2.setModelCustomizationId("222");
1967 Optional<GenericVnf> opVnf2 = Optional.of(vnf2);
1968 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
1969 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName222")).thenReturn(opVnf2);
1970 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
1971 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName123", reqDetails,
1972 workflowResourceIds);
1973 assertEquals("id123", id);
1974 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "111111", reqDetails,
1975 workflowResourceIds);
1976 assertEquals("generatedId123", id2);
1978 this.expectedException.expect(DuplicateNameException.class);
1979 this.expectedException.expectMessage(containsString(
1980 "generic-vnf with name (vnfName222), same parent and different customization id (222) already exists. The name must be unique."));
1981 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName222", reqDetails,
1982 workflowResourceIds);
1986 public void validateResourceIdInAAIVnfNotGloballyUniqueTest() throws Exception {
1987 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
1988 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1989 workflowResourceIds.setServiceInstanceId("siId123");
1992 GenericVnfs genericVnfs = new GenericVnfs();
1993 GenericVnf vnf3 = new GenericVnf();
1994 vnf3.setVnfId("id123");
1995 vnf3.setVnfName("vnfName333");
1996 genericVnfs.getGenericVnf().add(vnf3);
1997 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName333")).thenReturn(Optional.empty());
1998 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName333")).thenReturn(genericVnfs);
2000 this.expectedException.expect(DuplicateNameException.class);
2001 this.expectedException.expectMessage(containsString(
2002 "generic-vnf with name (vnfName333) id (id123) and different parent relationship already exists. The name must be unique."));
2003 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName333", reqDetails,
2004 workflowResourceIds);
2008 public void validateResourceIdInAAINetworkTest() throws Exception {
2009 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2010 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2011 workflowResourceIds.setServiceInstanceId("siId123");
2014 L3Network network = new L3Network();
2015 network.setNetworkId("id123");
2016 network.setNetworkName("name123");
2017 network.setModelCustomizationId("1234567");
2018 workflowResourceIds.setServiceInstanceId("siId123");
2019 Optional<L3Network> opNetwork = Optional.of(network);
2020 L3Network network2 = new L3Network();
2021 network2.setNetworkId("id123");
2022 network2.setNetworkName("networkName222");
2023 network2.setModelCustomizationId("222");
2024 Optional<L3Network> opNetwork2 = Optional.of(network2);
2025 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2026 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "networkName222"))
2027 .thenReturn(opNetwork2);
2028 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2029 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "name123",
2030 reqDetails, workflowResourceIds);
2031 assertEquals("id123", id);
2032 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "111111",
2033 reqDetails, workflowResourceIds);
2034 assertEquals("generatedId123", id2);
2036 this.expectedException.expect(DuplicateNameException.class);
2037 this.expectedException.expectMessage(containsString(
2038 "l3Network with name (networkName222), same parent and different customization id (222) already exists. The name must be unique."));
2039 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName222", reqDetails,
2040 workflowResourceIds);
2044 public void validateNetworkResourceNameExistsInAAITest() throws Exception {
2045 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2046 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2047 workflowResourceIds.setServiceInstanceId("siId123");
2050 L3Network network = new L3Network();
2051 network.setNetworkId("id123");
2052 network.setNetworkName("name123");
2053 network.setModelCustomizationId("1234567");
2054 workflowResourceIds.setServiceInstanceId("siId123");
2056 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("networkName333", "111111"))
2057 .thenReturn(Optional.empty());
2058 when(bbSetupUtils.existsAAINetworksGloballyByName("networkName333")).thenReturn(true);
2060 this.expectedException.expect(DuplicateNameException.class);
2061 this.expectedException.expectMessage(containsString(
2062 "l3Network with name (networkName333) id (siId123) and different parent relationship already exists. The name must be unique."));
2063 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName333", reqDetails,
2064 workflowResourceIds);
2068 public void validateResourceIdInAAIVfModuleTest() throws Exception {
2069 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2070 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2071 workflowResourceIds.setServiceInstanceId("siId123");
2073 GenericVnf vnf = new GenericVnf();
2074 vnf.setVnfId("id123");
2075 vnf.setVnfName("vnfName123");
2076 vnf.setModelCustomizationId("222");
2079 VfModules vfModules = new VfModules();
2080 VfModule vfModule = new VfModule();
2081 vfModule.setVfModuleId("id123");
2082 vfModule.setVfModuleName("name123");
2083 vfModule.setModelCustomizationId("1234567");
2084 vfModules.getVfModule().add(vfModule);
2085 vnf.setVfModules(vfModules);
2086 workflowResourceIds.setVnfId("id123");
2087 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2088 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "name123",
2089 reqDetails, workflowResourceIds);
2090 assertEquals("id123", id);
2092 GenericVnf vnf1 = new GenericVnf();
2093 VfModules vfModules2 = new VfModules();
2094 VfModule vfModule2 = new VfModule();
2095 vfModule2.setVfModuleId("id123");
2096 vfModule2.setVfModuleName("vFModName222");
2097 vfModule2.setModelCustomizationId("222");
2098 vfModules2.getVfModule().add(vfModule2);
2099 vnf1.setVfModules(vfModules2);
2100 workflowResourceIds.setVnfId("id111");
2101 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2102 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "111111",
2103 reqDetails, workflowResourceIds);
2104 assertEquals("generatedId123", id2);
2106 this.expectedException.expect(DuplicateNameException.class);
2107 this.expectedException.expectMessage(containsString(
2108 "vfModule with name (vFModName222), same parent and different customization id (1234567) already exists. The name must be unique."));
2109 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName222", reqDetails,
2110 workflowResourceIds);
2114 public void validateResourceIdInAAIVfModuleNotGloballyUniqueTest() throws Exception {
2115 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2116 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2117 workflowResourceIds.setVnfId("id111");
2119 GenericVnf vnf1 = new GenericVnf();
2120 workflowResourceIds.setVnfId("id111");
2121 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2123 when(bbSetupUtils.existsAAIVfModuleGloballyByName("vFModName333")).thenReturn(true);
2124 this.expectedException.expect(DuplicateNameException.class);
2125 this.expectedException.expectMessage(
2126 containsString("vfModule with name vFModName333 already exists. The name must be unique."));
2127 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName333", reqDetails,
2128 workflowResourceIds);
2132 public void validateResourceIdInAAIVolumeGroupTest() throws Exception {
2133 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2134 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2135 workflowResourceIds.setServiceInstanceId("siId123");
2137 GenericVnf vnf = new GenericVnf();
2138 vnf.setVnfId("id123");
2139 vnf.setVnfName("vnfName123");
2140 vnf.setModelCustomizationId("1234567");
2142 GenericVnf vnf2 = new GenericVnf();
2143 vnf2.setVnfId("id123");
2144 vnf2.setVnfName("vnfName123");
2145 vnf2.setModelCustomizationId("222");
2148 VolumeGroup volumeGroup = new VolumeGroup();
2149 volumeGroup.setVolumeGroupId("id123");
2150 volumeGroup.setVolumeGroupName("name123");
2151 volumeGroup.setVfModuleModelCustomizationId("1234567");
2152 workflowResourceIds.setVnfId("id123");
2153 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2155 workflowResourceIds.setVnfId("id123");
2157 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2158 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(opVolumeGroup);
2159 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2160 reqDetails, workflowResourceIds);
2161 assertEquals("id123", id);
2163 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf2);
2164 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "111111"))
2165 .thenReturn(opVolumeGroup);
2167 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "111111")).thenReturn(Optional.empty());
2168 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "111111",
2169 reqDetails, workflowResourceIds);
2170 assertEquals("generatedId123", id2);
2174 public void validatesourceIdInAAIVolumeGroupNotGloballyUniqueTest() throws Exception {
2175 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2176 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2177 workflowResourceIds.setVnfId("id123");
2178 GenericVnf vnf = new GenericVnf();
2179 vnf.setVnfId("id123");
2180 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2181 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "testVolumeGroup")).thenReturn(Optional.empty());
2183 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("testVolumeGroup")).thenReturn(true);
2184 this.expectedException.expect(DuplicateNameException.class);
2185 this.expectedException.expectMessage(
2186 containsString("volumeGroup with name testVolumeGroup already exists. The name must be unique."));
2187 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "testVolumeGroup",
2188 reqDetails, workflowResourceIds);
2192 public void validateResourceIdInAAIConfigurationTest() throws Exception {
2193 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2194 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2195 workflowResourceIds.setServiceInstanceId("siId123");
2198 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2199 configuration.setConfigurationId("id123");
2200 configuration.setConfigurationName("name123");
2201 configuration.setModelCustomizationId("1234567");
2202 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2204 org.onap.aai.domain.yang.Configuration configuration2 = new org.onap.aai.domain.yang.Configuration();
2205 configuration2.setConfigurationId("id123");
2206 configuration2.setConfigurationName("name123");
2207 configuration2.setModelCustomizationId("222");
2208 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration2 = Optional.of(configuration2);
2210 workflowResourceIds.setVnfId("id123");
2212 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2213 .thenReturn(opConfiguration);
2214 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name123",
2215 reqDetails, workflowResourceIds);
2216 assertEquals("id123", id);
2218 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "111111"))
2219 .thenReturn(Optional.empty());
2220 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "111111",
2221 reqDetails, workflowResourceIds);
2222 assertEquals("generatedId123", id2);
2224 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name222"))
2225 .thenReturn(opConfiguration2);
2226 this.expectedException.expect(DuplicateNameException.class);
2227 this.expectedException.expectMessage(containsString(
2228 "configuration with name (name222), same parent and different customization id (id123) already exists. The name must be unique."));
2229 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name222", reqDetails,
2230 workflowResourceIds);
2234 public void validateResourceIdInAAIConfigurationNotGloballyUniqueTest() throws Exception {
2235 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2236 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2237 workflowResourceIds.setServiceInstanceId("siId123");
2239 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "testConfig"))
2240 .thenReturn(Optional.empty());
2241 when(bbSetupUtils.existsAAIConfigurationGloballyByName("testConfig")).thenReturn(true);
2242 this.expectedException.expect(DuplicateNameException.class);
2243 this.expectedException.expectMessage(
2244 containsString("configuration with name testConfig already exists. The name must be unique."));
2245 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "testConfig", reqDetails,
2246 workflowResourceIds);
2250 public void validateResourceIdInAAISITest() throws Exception {
2251 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2252 workflowResourceIds.setServiceInstanceId("siId123");
2253 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2254 reqDetails.getModelInfo().setModelVersionId("1234567");
2256 ServiceInstance si = new ServiceInstance();
2257 si.setServiceInstanceId("siId123");
2258 si.setModelVersionId("1234567");
2259 ServiceInstances serviceInstances = new ServiceInstances();
2260 serviceInstances.getServiceInstance().add(si);
2261 Optional<ServiceInstance> siOp = Optional.of(si);
2262 ServiceInstance si2 = new ServiceInstance();
2263 si2.setServiceInstanceId("siId222");
2264 si2.setModelVersionId("22222");
2265 si2.setServiceInstanceName("siName222");
2266 Optional<ServiceInstance> siOp2 = Optional.of(si2);
2267 ServiceInstances serviceInstances2 = new ServiceInstances();
2268 serviceInstances2.getServiceInstance().add(si2);
2270 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2271 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName222")).thenReturn(siOp2);
2272 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "111111"))
2273 .thenReturn(Optional.empty());
2275 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2276 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123",
2277 reqDetails, workflowResourceIds);
2278 assertEquals("siId123", id);
2279 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "111111",
2280 reqDetails, workflowResourceIds);
2281 assertEquals("generatedId123", id2);
2283 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName222")).thenReturn(serviceInstances2);
2284 this.expectedException.expect(DuplicateNameException.class);
2285 this.expectedException.expectMessage(containsString(
2286 "serviceInstance with name (siName222) and different version id (1234567) already exists. The name must be unique."));
2287 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName222", reqDetails,
2288 workflowResourceIds);
2292 public void validateResourceIdInAAIMultipleSITest() throws Exception {
2293 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2294 workflowResourceIds.setServiceInstanceId("siId123");
2295 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2296 reqDetails.getModelInfo().setModelVersionId("1234567");
2298 ServiceInstance si = new ServiceInstance();
2299 si.setServiceInstanceId("siId123");
2300 si.setModelVersionId("1234567");
2301 ServiceInstances serviceInstances = new ServiceInstances();
2302 serviceInstances.getServiceInstance().add(si);
2304 ServiceInstance si2 = new ServiceInstance();
2305 si2.setServiceInstanceId("siId222");
2306 si2.setModelVersionId("22222");
2307 si2.setServiceInstanceName("siName222");
2308 serviceInstances.getServiceInstance().add(si2);
2310 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2311 .thenReturn(Optional.empty());
2313 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2315 this.expectedException.expect(DuplicateNameException.class);
2316 this.expectedException.expectMessage(containsString(
2317 "serviceInstance with name (siName123) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2318 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2319 workflowResourceIds);
2323 public void validateResourceIdInAAISIExistsTest() throws Exception {
2324 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2325 workflowResourceIds.setServiceInstanceId("siId123");
2326 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2327 reqDetails.getModelInfo().setModelVersionId("1234567");
2329 ServiceInstance si = new ServiceInstance();
2330 si.setServiceInstanceId("siId123");
2331 si.setModelVersionId("1234567");
2332 ServiceInstances serviceInstances = new ServiceInstances();
2333 serviceInstances.getServiceInstance().add(si);
2335 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2336 .thenReturn(Optional.empty());
2338 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2340 Map<String, String> uriKeys = new HashMap<>();
2341 uriKeys.put(AAIFluentTypeBuilder.Types.CUSTOMER.getUriParams().globalCustomerId, "globalCustomerId");
2342 uriKeys.put(AAIFluentTypeBuilder.Types.SERVICE_SUBSCRIPTION.getUriParams().serviceType, "serviceType");
2344 when(bbSetupUtils.getURIKeysFromServiceInstance("siId123")).thenReturn(uriKeys);
2346 this.expectedException.expect(DuplicateNameException.class);
2347 this.expectedException.expectMessage(containsString(
2348 "serviceInstance with name (siName123) and global-customer-id (globalCustomerId), service-type (serviceType), model-version-id (1234567) already exists. The name must be unique."));
2349 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2350 workflowResourceIds);
2354 public void validateServiceResourceIdInAAINoDupTest() throws Exception {
2355 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2356 reqDetails.getModelInfo().setModelVersionId("1234567");
2357 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123"))
2358 .thenReturn(Optional.empty());
2359 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(null);
2360 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2361 assertEquals("generatedId123", id);
2365 public void validateServiceResourceIdInAAISameModelVersionId() throws Exception {
2366 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2367 reqDetails.getModelInfo().setModelVersionId("1234567");
2369 ServiceInstance si = new ServiceInstance();
2370 si.setServiceInstanceId("siId123");
2371 si.setModelVersionId("1234567");
2372 Optional<ServiceInstance> siOp = Optional.of(si);
2374 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2375 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2376 assertEquals("siId123", id);
2380 public void validateServiceResourceIdInAAIDifferentModelVersionId() throws Exception {
2381 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2382 reqDetails.getModelInfo().setModelVersionId("1234567");
2384 ServiceInstance si = new ServiceInstance();
2385 si.setServiceInstanceId("siId123");
2386 si.setModelVersionId("9999999");
2387 ServiceInstances serviceInstances = new ServiceInstances();
2388 serviceInstances.getServiceInstance().add(si);
2389 Optional<ServiceInstance> siOp = Optional.of(si);
2391 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2393 this.expectedException.expect(DuplicateNameException.class);
2394 this.expectedException.expectMessage(containsString(
2395 "serviceInstance with name (siName123) and different version id (1234567) already exists. The name must be unique."));
2397 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2398 assertEquals("siId123", id);
2402 public void validateServiceResourceIdInAAIDuplicateNameTest() throws Exception {
2404 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2405 reqDetails.getModelInfo().setModelVersionId("1234567");
2407 ServiceInstance si = new ServiceInstance();
2408 si.setServiceInstanceId("siId123");
2409 si.setModelVersionId("1234567");
2411 ServiceInstances serviceInstances = new ServiceInstances();
2412 serviceInstances.getServiceInstance().add(si);
2414 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2415 .thenReturn(Optional.empty());
2416 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2418 this.expectedException.expect(DuplicateNameException.class);
2419 this.expectedException.expectMessage(containsString(
2420 "serviceInstance with name (siName) and global-customer-id (null), service-type (null), model-version-id (1234567) already exists. The name must be unique."));
2422 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2426 public void validateServiceResourceIdInAAIDuplicateNameMultipleTest() throws Exception {
2428 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2429 reqDetails.getModelInfo().setModelVersionId("1234567");
2431 ServiceInstance si = new ServiceInstance();
2432 si.setServiceInstanceId("siId123");
2433 si.setModelVersionId("1234567");
2435 ServiceInstance si2 = new ServiceInstance();
2436 si2.setServiceInstanceId("siId222");
2437 si2.setModelVersionId("22222");
2438 si2.setServiceInstanceName("siName222");
2440 ServiceInstances serviceInstances = new ServiceInstances();
2441 serviceInstances.getServiceInstance().add(si);
2442 serviceInstances.getServiceInstance().add(si2);
2444 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2445 .thenReturn(Optional.empty());
2446 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2448 this.expectedException.expect(DuplicateNameException.class);
2449 this.expectedException.expectMessage(containsString(
2450 "serviceInstance with name (siName) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2452 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2456 public void validateNetworkResourceIdInAAITest() throws Exception {
2457 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2458 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2459 workflowResourceIds.setServiceInstanceId("siId123");
2461 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2462 .thenReturn(Optional.empty());
2463 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(false);
2465 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2466 workflowResourceIds);
2467 assertEquals("generatedId123", id);
2471 public void validateNetworkResourceIdInAAISameModelCustIdTest() throws Exception {
2472 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2473 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2474 workflowResourceIds.setServiceInstanceId("siId123");
2476 L3Network network = new L3Network();
2477 network.setNetworkId("id123");
2478 network.setNetworkName("name123");
2479 network.setModelCustomizationId("1234567");
2480 Optional<L3Network> opNetwork = Optional.of(network);
2482 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2484 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2485 workflowResourceIds);
2486 assertEquals("id123", id);
2490 public void validateNetworkResourceIdInAAIDuplicateNameTest() throws Exception {
2491 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2492 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2493 workflowResourceIds.setServiceInstanceId("siId123");
2495 L3Network network = new L3Network();
2496 network.setNetworkId("id123");
2497 network.setNetworkName("name123");
2498 network.setModelCustomizationId("9999999");
2499 Optional<L3Network> opNetwork = Optional.of(network);
2501 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2503 this.expectedException.expect(DuplicateNameException.class);
2504 this.expectedException.expectMessage(containsString(
2505 "l3Network with name (name123), same parent and different customization id (9999999) already exists. The name must be unique."));
2507 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2511 public void validateNetworkResourceIdInAAINotGloballyUniqueTest() throws Exception {
2512 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2513 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2514 workflowResourceIds.setServiceInstanceId("siId123");
2516 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2517 .thenReturn(Optional.empty());
2518 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(true);
2520 this.expectedException.expect(DuplicateNameException.class);
2521 this.expectedException.expectMessage(containsString(
2522 "l3Network with name (name123) id (siId123) and different parent relationship already exists. The name must be unique."));
2524 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2528 public void validateVnfResourceIdInAAITest() throws Exception {
2529 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2530 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2531 workflowResourceIds.setServiceInstanceId("siId123");
2532 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2533 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2534 workflowResourceIds);
2535 assertEquals("generatedId123", id);
2539 public void validateVnfResourceIdInAAISameModelCustomizationIdTest() throws Exception {
2540 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2541 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2542 workflowResourceIds.setServiceInstanceId("siId123");
2544 GenericVnf vnf = new GenericVnf();
2545 vnf.setVnfId("id123");
2546 vnf.setVnfName("vnfName123");
2547 vnf.setModelCustomizationId("1234567");
2548 Optional<GenericVnf> opVnf = Optional.of(vnf);
2550 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2551 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2552 workflowResourceIds);
2553 assertEquals("id123", id);
2557 public void validateVnfResourceIdInAAIDiffModelCustomizationIdTest() throws Exception {
2558 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2559 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2560 workflowResourceIds.setServiceInstanceId("siId123");
2562 GenericVnf vnf = new GenericVnf();
2563 vnf.setVnfId("id123");
2564 vnf.setVnfName("vnfName123");
2565 vnf.setModelCustomizationId("9999999");
2566 Optional<GenericVnf> opVnf = Optional.of(vnf);
2568 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2570 this.expectedException.expect(DuplicateNameException.class);
2571 this.expectedException.expectMessage(containsString(
2572 "generic-vnf with name (vnfName123), same parent and different customization id (9999999) already exists. The name must be unique."));
2574 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2578 public void validateVnfResourceIdInAAINotGloballyUniqueTest() throws Exception {
2579 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2580 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2581 workflowResourceIds.setServiceInstanceId("siId123");
2584 GenericVnf vnf = new GenericVnf();
2585 vnf.setVnfId("id123");
2586 vnf.setVnfName("vnfName123");
2587 GenericVnfs genericVnfs = new GenericVnfs();
2588 genericVnfs.getGenericVnf().add(vnf);
2590 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2591 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName123")).thenReturn(genericVnfs);
2593 this.expectedException.expect(DuplicateNameException.class);
2594 this.expectedException.expectMessage(containsString(
2595 "generic-vnf with name (vnfName123) id (id123) and different parent relationship already exists. The name must be unique."));
2597 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2601 public void validateVfModuleResourceIdTest() throws Exception {
2602 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2603 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2604 workflowResourceIds.setVnfId("vnfId123");
2606 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2607 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(false);
2609 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2610 workflowResourceIds);
2611 assertEquals("generatedId123", id);
2615 public void validateVfModuleResourceIdSameModelCustIdTest() throws Exception {
2616 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2617 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2618 workflowResourceIds.setVnfId("vnfId123");
2620 VfModules vfModules = new VfModules();
2621 VfModule vfModule = new VfModule();
2622 vfModule.setVfModuleId("id123");
2623 vfModule.setVfModuleName("name123");
2624 vfModule.setModelCustomizationId("1234567");
2625 vfModules.getVfModule().add(vfModule);
2627 GenericVnf vnf = new GenericVnf();
2628 vnf.setVnfId("id123");
2629 vnf.setVnfName("vnfName123");
2630 vnf.setVfModules(vfModules);
2632 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2634 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2635 workflowResourceIds);
2636 assertEquals("id123", id);
2640 public void validateVfModuleResourceIdDifferentModelCustIdTest() throws Exception {
2641 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2642 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2643 workflowResourceIds.setVnfId("vnfId123");
2645 VfModules vfModules = new VfModules();
2646 VfModule vfModule = new VfModule();
2647 vfModule.setVfModuleId("id123");
2648 vfModule.setVfModuleName("name123");
2649 vfModule.setModelCustomizationId("9999999");
2650 vfModules.getVfModule().add(vfModule);
2652 GenericVnf vnf = new GenericVnf();
2653 vnf.setVnfId("id123");
2654 vnf.setVnfName("vnfName123");
2655 vnf.setVfModules(vfModules);
2657 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2659 this.expectedException.expect(DuplicateNameException.class);
2660 this.expectedException.expectMessage(containsString(
2661 "vfModule with name (name123), same parent and different customization id (1234567) already exists. The name must be unique."));
2663 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2668 public void validateVfModuleResourceIdNotGloballyUniqueTest() throws Exception {
2669 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2670 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2671 workflowResourceIds.setVnfId("vnfId123");
2673 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2674 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(true);
2676 this.expectedException.expect(DuplicateNameException.class);
2677 this.expectedException
2678 .expectMessage(containsString("vfModule with name name123 already exists. The name must be unique."));
2680 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2684 public void validateVolumeGroupResourceIdInAAITest() throws Exception {
2685 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2686 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2687 workflowResourceIds.setVnfId("vnfId123");
2689 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(Optional.empty());
2690 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(false);
2692 String id = workflowAction.validateVolumeGroupResourceIdInAAI("generatedId123", "name123", reqDetails,
2693 workflowResourceIds);
2694 assertEquals("generatedId123", id);
2698 public void validateVolumeGroupResourceIdInAAISameModelCustIdTest() throws Exception {
2699 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2700 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2701 workflowResourceIds.setServiceInstanceId("siId123");
2702 workflowResourceIds.setVnfId("vnfId123");
2704 VolumeGroup volumeGroup = new VolumeGroup();
2705 volumeGroup.setVolumeGroupId("id123");
2706 volumeGroup.setVolumeGroupName("name123");
2707 volumeGroup.setVfModuleModelCustomizationId("1234567");
2709 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2711 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2712 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2713 reqDetails, workflowResourceIds);
2715 assertEquals("id123", id);
2719 public void validateVolumeGroupResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2720 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2721 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2722 workflowResourceIds.setServiceInstanceId("siId123");
2723 workflowResourceIds.setVnfId("vnfId123");
2725 VolumeGroup volumeGroup = new VolumeGroup();
2726 volumeGroup.setVolumeGroupId("id123");
2727 volumeGroup.setVolumeGroupName("name123");
2728 volumeGroup.setVfModuleModelCustomizationId("9999999");
2730 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2732 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2734 this.expectedException.expect(DuplicateNameException.class);
2735 this.expectedException.expectMessage(
2736 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2738 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2739 workflowResourceIds);
2743 public void validateVolumeGroupResourceIdInAAINotGloballyUniqueTest() throws Exception {
2744 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2745 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2746 workflowResourceIds.setVnfId("vnfId123");
2748 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(Optional.empty());
2749 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(true);
2751 this.expectedException.expect(DuplicateNameException.class);
2752 this.expectedException.expectMessage(
2753 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2755 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2756 workflowResourceIds);
2760 public void validateConfigurationResourceIdInAAITest() throws Exception {
2761 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2762 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2763 workflowResourceIds.setServiceInstanceId("siId123");
2765 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2766 .thenReturn(Optional.empty());
2767 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2769 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2770 workflowResourceIds);
2771 assertEquals("generatedId123", id);
2775 public void validateConfigurationResourceIdInAAISameModelCustIdTest() throws Exception {
2776 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2777 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2778 workflowResourceIds.setServiceInstanceId("siId123");
2780 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2781 configuration.setConfigurationId("id123");
2782 configuration.setConfigurationName("name123");
2783 configuration.setModelCustomizationId("1234567");
2784 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2786 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2787 .thenReturn(opConfiguration);
2788 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2790 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2791 workflowResourceIds);
2792 assertEquals("id123", id);
2796 public void validateConfigurationResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2797 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2798 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2799 workflowResourceIds.setServiceInstanceId("siId123");
2801 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2802 configuration.setConfigurationId("id123");
2803 configuration.setConfigurationName("name123");
2804 configuration.setModelCustomizationId("9999999");
2805 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2807 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2808 .thenReturn(opConfiguration);
2809 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2811 this.expectedException.expect(DuplicateNameException.class);
2812 this.expectedException.expectMessage(containsString(
2813 "configuration with name (name123), same parent and different customization id (id123) already exists. The name must be unique."));
2815 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2816 workflowResourceIds);
2820 public void validateConfigurationResourceIdInAAINotGloballyUniqueTest() throws Exception {
2821 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2822 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2823 workflowResourceIds.setServiceInstanceId("siId123");
2825 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2826 .thenReturn(Optional.empty());
2827 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(true);
2829 this.expectedException.expect(DuplicateNameException.class);
2830 this.expectedException.expectMessage(
2831 containsString("configuration with name name123 already exists. The name must be unique."));
2833 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2834 workflowResourceIds);
2838 public void handleRuntimeExceptionTest() {
2839 execution.setVariable("BPMN_javaExpMsg", "test runtime error message");
2840 execution.setVariable("testProcessKey", "testProcessKeyValue");
2842 workflowAction.handleRuntimeException(execution);
2843 } catch (BpmnError wfe) {
2844 assertEquals("MSOWorkflowException", wfe.getErrorCode());
2850 public void traverseCatalogDbServiceMultipleNetworkTest() throws IOException, VrfBondingServiceException {
2851 execution.setVariable("testProcessKey", "testProcessKeyValue");
2852 Service service = new Service();
2853 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
2854 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
2855 networkCust.setModelCustomizationUUID("123");
2856 networkCustomizations.add(networkCust);
2857 service.setNetworkCustomizations(networkCustomizations);
2858 NetworkCollectionResourceCustomization collectionResourceCustomization =
2859 new NetworkCollectionResourceCustomization();
2860 collectionResourceCustomization.setModelCustomizationUUID("123");
2861 CollectionResource collectionResource = new CollectionResource();
2862 collectionResource.setToscaNodeType("NetworkCollection");
2863 InstanceGroup instanceGroup = new InstanceGroup();
2864 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
2865 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
2866 new CollectionResourceInstanceGroupCustomization();
2867 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
2868 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
2869 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
2870 collectionResource.setInstanceGroup(instanceGroup);
2871 collectionResourceCustomization.setCollectionResource(collectionResource);;
2872 service.setModelUUID("abc");
2873 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2874 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2875 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
2876 doReturn(collectionResourceCustomization).when(catalogDbClient)
2877 .getNetworkCollectionResourceCustomizationByID("123");
2878 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
2879 ObjectMapper mapper = new ObjectMapper();
2880 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
2881 List<Resource> resourceCounter = new ArrayList<>();
2882 thrown.expect(BpmnError.class);
2883 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
2884 workflowAction.traverseCatalogDbService(execution, sIRequest, resourceCounter, aaiResourceIds);
2888 public void sortVfModulesByBaseFirstTest() {
2889 List<Resource> resources = new ArrayList<>();
2890 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2891 resource1.setBaseVfModule(false);
2892 resources.add(resource1);
2893 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2894 resource2.setBaseVfModule(false);
2895 resources.add(resource2);
2896 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
2897 resource3.setBaseVfModule(true);
2898 resources.add(resource3);
2899 List<Resource> result = workflowAction.sortVfModulesByBaseFirst(resources);
2900 assertEquals("333", result.get(0).getResourceId());
2901 assertEquals("222", result.get(1).getResourceId());
2902 assertEquals("111", result.get(2).getResourceId());
2906 public void sortVfModulesByBaseLastTest() {
2907 List<Resource> resources = new ArrayList<>();
2908 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2909 resource1.setBaseVfModule(true);
2910 resources.add(resource1);
2911 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2912 resource2.setBaseVfModule(false);
2913 resources.add(resource2);
2914 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
2915 resource3.setBaseVfModule(false);
2916 resources.add(resource3);
2917 List<Resource> result = workflowAction.sortVfModulesByBaseLast(resources);
2918 assertEquals("333", result.get(0).getResourceId());
2919 assertEquals("222", result.get(1).getResourceId());
2920 assertEquals("111", result.get(2).getResourceId());
2924 public void findCatalogNetworkCollectionTest() {
2925 Service service = new Service();
2926 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
2927 networkCustomization.setModelCustomizationUUID("123");
2928 service.getCollectionResourceCustomizations().add(networkCustomization);
2929 doReturn(networkCustomization).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
2930 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
2931 assertNotNull(customization);
2935 public void findCatalogNetworkCollectionEmptyTest() {
2936 Service service = new Service();
2937 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
2938 networkCustomization.setModelCustomizationUUID("123");
2939 service.getCollectionResourceCustomizations().add(networkCustomization);
2940 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
2941 assertNull(customization);
2945 public void findCatalogNetworkCollectionMoreThanOneTest() {
2946 Service service = new Service();
2947 NetworkCollectionResourceCustomization networkCustomization1 = new NetworkCollectionResourceCustomization();
2948 networkCustomization1.setModelCustomizationUUID("123");
2949 NetworkCollectionResourceCustomization networkCustomization2 = new NetworkCollectionResourceCustomization();
2950 networkCustomization2.setModelCustomizationUUID("321");
2951 service.getCollectionResourceCustomizations().add(networkCustomization1);
2952 service.getCollectionResourceCustomizations().add(networkCustomization2);
2953 doReturn(networkCustomization1).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
2954 doReturn(networkCustomization2).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("321");
2955 workflowAction.findCatalogNetworkCollection(execution, service);
2956 assertEquals("Found multiple Network Collections in the Service model, only one per Service is supported.",
2957 execution.getVariable("WorkflowActionErrorMessage"));
2961 public void verifyLackOfNullPointerExceptionForNullResource() {
2962 ExecuteBuildingBlock result = null;
2964 result = workflowAction.buildExecuteBuildingBlock(new OrchestrationFlow(), null, null, null, null, null,
2965 false, null, null, null, false, null, null, true, null);
2966 } catch (NullPointerException e) {
2967 fail("NullPointerException should not be thrown when 'resource' is null");
2969 assertNotNull(result);
2973 public void traverseAAIServiceTest() {
2974 List<Resource> resourceCounter = new ArrayList<>();
2975 String resourceId = "si0";
2976 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
2978 ServiceInstance serviceInstanceAAI = new ServiceInstance();
2979 serviceInstanceAAI.setServiceInstanceId(resourceId);
2981 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstance = setServiceInstance();
2989 Configuration config = new Configuration();
2990 config.setConfigurationId("testConfigurationId2");
2991 serviceInstance.getConfigurations().add(config);
2993 Relationship relationship1 = new Relationship();
2994 relationship1.setRelatedTo("vnfc");
2995 RelationshipList relationshipList1 = new RelationshipList();
2996 relationshipList1.getRelationship().add(relationship1);
2998 Relationship relationship2 = new Relationship();
2999 relationship2.setRelatedTo("vpn-binding");
3000 RelationshipList relationshipList2 = new RelationshipList();
3001 relationshipList2.getRelationship().add(relationship2);
3003 org.onap.aai.domain.yang.Configuration aaiConfiguration1 = new org.onap.aai.domain.yang.Configuration();
3004 aaiConfiguration1.setConfigurationId("testConfigurationId");
3005 aaiConfiguration1.setRelationshipList(relationshipList1);
3007 org.onap.aai.domain.yang.Configuration aaiConfiguration2 = new org.onap.aai.domain.yang.Configuration();
3008 aaiConfiguration2.setConfigurationId("testConfigurationId2");
3009 aaiConfiguration2.setRelationshipList(relationshipList1);
3012 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById(resourceId);
3013 doReturn(serviceInstance).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
3014 doReturn(Optional.of(aaiConfiguration1)).when(aaiConfigurationResources)
3015 .getConfiguration("testConfigurationId");
3016 doReturn(Optional.of(aaiConfiguration2)).when(aaiConfigurationResources)
3017 .getConfiguration("testConfigurationId2");
3018 workflowAction.traverseAAIService(execution, resourceCounter, resourceId, aaiResourceIds);
3019 assertEquals(8, resourceCounter.size());
3020 assertTrue(resourceCounter.get(2).isBaseVfModule());
3021 assertThat(aaiResourceIds, sameBeanAs(getExpectedResourceIds()));
3022 } catch (Exception e) {
3023 fail("Unexpected exception was thrown.");
3027 private List<Pair<WorkflowType, String>> getExpectedResourceIds() {
3028 List<Pair<WorkflowType, String>> resourceIds = new ArrayList<>();
3029 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VNF, "testVnfId1"));
3030 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VFMODULE, "testVfModuleId1"));
3031 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VOLUMEGROUP, "testVolumeGroupId1"));
3032 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORK, "testNetworkId1"));
3033 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORKCOLLECTION, "testId"));
3034 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId"));
3035 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId2"));
3039 private List<OrchestrationFlow> createFlowList(String... flowNames) {
3040 List<OrchestrationFlow> result = new ArrayList<>();
3041 for (String flowName : flowNames) {
3042 OrchestrationFlow orchFlow = new OrchestrationFlow();
3043 orchFlow.setFlowName(flowName);
3044 result.add(orchFlow);
3049 private void assertEqualsBulkFlowName(List<ExecuteBuildingBlock> ebbs, String... flowNames) {
3050 for (int i = 0; i < ebbs.size(); i++) {
3051 assertEquals(ebbs.get(i).getBuildingBlock().getBpmnFlowName(), flowNames[i]);
3055 private void initExecution(String gAction, String bpmnRequest, boolean isAlaCarte) {
3056 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
3057 execution.setVariable("requestAction", gAction);
3058 execution.setVariable("bpmnRequest", bpmnRequest);
3059 execution.setVariable("aLaCarte", isAlaCarte);
3060 execution.setVariable("apiVersion", "7");
3063 private String readBpmnRequestFromFile(String fileName) throws IOException {
3064 return new String(Files.readAllBytes(Paths.get("src/test/resources/__files/" + fileName)));