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 getConfigBuildingBlocksNullConfigurationTest() throws Exception {
1605 String gAction = "deleteInstance";
1606 ObjectMapper mapper = new ObjectMapper();
1607 mapper.disable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES);
1609 WorkflowType resourceType = WorkflowType.VFMODULE;
1610 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1611 execution.setVariable("requestAction", gAction);
1612 String bpmnRequest =
1613 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1614 execution.setVariable("bpmnRequest", bpmnRequest);
1615 execution.setVariable("vnfId", "1234");
1616 execution.setVariable("vfModuleId", "vfModuleId1234");
1617 execution.setVariable("requestUri",
1618 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1619 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1620 RequestDetails requestDetails = sIRequest.getRequestDetails();
1621 String requestAction = "deleteInstance";
1622 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1623 boolean aLaCarte = true;
1624 String apiVersion = "7";
1625 String vnfType = "vnfType";
1626 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1627 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1628 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1629 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1631 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1632 "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
1634 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1635 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1636 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1637 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1639 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1640 vnf.setVnfId("vnf0");
1641 vnf.setModelCustomizationId("modelCustomizationId");
1642 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
1644 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1645 vfModule.setModelCustomizationId("modelCustomizationId");
1647 /* this is a test case where configuration for vnfc is null */
1648 org.onap.aai.domain.yang.Configuration config1 = null;
1649 org.onap.aai.domain.yang.Configuration config2 = new org.onap.aai.domain.yang.Configuration();
1650 config2.setConfigurationId("config2");
1652 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1653 org.onap.aai.domain.yang.Vnfc vnfc1 = new org.onap.aai.domain.yang.Vnfc();
1654 vnfc1.setVnfcName("zauk53avetd02svm001");
1655 org.onap.aai.domain.yang.Vnfc vnfc2 = new org.onap.aai.domain.yang.Vnfc();
1656 vnfc2.setVnfcName("zauk53avetd02tvm001");
1660 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModule);
1661 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(),
1662 eq(org.onap.aai.domain.yang.Vnfc.class), eq(AAIObjectType.VNFC));
1663 doReturn(config1).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc1),
1664 eq(org.onap.aai.domain.yang.Configuration.class), eq(AAIObjectType.CONFIGURATION));
1665 doReturn(config2).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc2),
1666 eq(org.onap.aai.domain.yang.Configuration.class), eq(AAIObjectType.CONFIGURATION));
1668 List<ExecuteBuildingBlock> results = SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1670 assertFalse(results.isEmpty());
1671 assertEquals(1, results.size());
1672 assertEquals("config2", results.get(0).getWorkflowResourceIds().getConfigurationId());
1673 assertEquals("zauk53avetd02tvm001", results.get(0).getConfigurationResourceKeys().getVnfcName());
1677 public void selectExecutionListALaCarteVfModuleNoFabricDeleteTest() throws Exception {
1678 String gAction = "deleteInstance";
1679 String resource = "VfModule";
1680 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1681 initExecution(gAction, bpmnRequest, true);
1682 execution.setVariable("requestUri",
1683 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1685 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1686 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1687 "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
1688 northBoundRequest.setOrchestrationFlowList(orchFlows);
1690 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1691 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1693 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1694 vnf.setVnfId("vnf0");
1695 vnf.setModelCustomizationId("modelCustomizationId");
1696 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1698 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1699 vfModule.setModelCustomizationId("modelCustomizationId");
1700 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1702 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1704 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1707 SPY_workflowAction.selectExecutionList(execution);
1708 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1709 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1713 public void selectExecutionListMacroResumeTest() throws Exception {
1714 String gAction = "createInstance";
1715 String resource = "Service";
1716 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
1717 initExecution(gAction, bpmnRequest, false);
1718 execution.setVariable("requestUri", "v6/serviceInstances/123");
1720 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1721 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1722 northBoundRequest.setOrchestrationFlowList(orchFlows);
1724 Service service = new Service();
1725 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
1727 ServiceInstance si = new ServiceInstance();
1729 when(bbSetupUtils.getAAIServiceInstanceById("123")).thenReturn(si);
1730 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1732 String flowsToExecuteString =
1733 "[{\"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\"}}]";
1734 ObjectMapper om = new ObjectMapper();
1735 List<ExecuteBuildingBlock> flowsToExecute = null;
1737 ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
1738 flowsToExecute = Arrays.asList(asArray);
1739 } catch (Exception e) {
1740 e.printStackTrace();
1743 when(bbSetupUtils.loadOriginalFlowExecutionPath(anyString())).thenReturn(flowsToExecute);
1745 workflowAction.selectExecutionList(execution);
1746 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1747 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB");
1751 public void getRelatedResourcesInVfModuleTest() throws Exception {
1752 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1753 vnfc.setModelInvariantId("modelInvariantId");
1754 vnfc.setVnfcName("testVnfcName");
1756 String vfncPayload =
1757 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/vnfcResponse.json")));
1758 AAIResultWrapper vfncWrapper = new AAIResultWrapper(vfncPayload);
1760 String configurationPayload =
1761 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/configurationResponse.json")));
1762 AAIResultWrapper configurationWrapper = new AAIResultWrapper(configurationPayload);
1763 List<AAIResultWrapper> configurationResultWrappers = new ArrayList<AAIResultWrapper>();
1764 configurationResultWrappers.add(configurationWrapper);
1766 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VNFC, vnfc.getVnfcName());
1767 when(bbSetupUtils.getAAIResourceDepthOne(uri)).thenReturn(vfncWrapper);
1769 doReturn(configurationResultWrappers).when(SPY_workflowAction).getResultWrappersFromRelationships(anyObject(),
1771 org.onap.aai.domain.yang.Configuration configuration = SPY_workflowAction.getRelatedResourcesInVnfc(vnfc,
1772 org.onap.aai.domain.yang.Configuration.class, AAIObjectType.CONFIGURATION);
1773 assertEquals("testConfigurationId", configuration.getConfigurationId());
1777 * WorkflowActionBB Tests
1781 public void pluralTest() {
1782 List<String> items = Arrays.asList("serviceInstances, Service", "vnfs, Vnf", "vfModules, VfModule",
1783 "networks, Network", "invalidNames, invalidNames");
1784 items.forEach(item -> {
1785 String[] split = item.split(",");
1786 String type = split[0].trim();
1787 String expected = split[1].trim();
1788 assertThat(workflowAction.convertTypeFromPlural(type), equalTo(expected));
1793 public void sortExecutionPathByObjectForVlanTaggingCreateTest() throws Exception {
1794 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1796 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("0");
1797 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1798 executeFlows.add(ebb);
1800 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("1");
1801 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1802 executeFlows.add(ebb2);
1804 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("0");
1805 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1806 executeFlows.add(ebb3);
1808 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("1");
1809 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1810 executeFlows.add(ebb4);
1812 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("0");
1813 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1814 executeFlows.add(ebb5);
1816 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("1");
1817 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1818 executeFlows.add(ebb6);
1820 List<ExecuteBuildingBlock> sorted =
1821 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "createInstance");
1822 assertEqualsBulkFlowName(sorted, "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB",
1823 "CreateNetworkBB", "ActivateNetworkBB");
1827 public void sortExecutionPathByObjectForVlanTaggingDeleteTest() throws Exception {
1828 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1830 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("0");
1831 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1832 executeFlows.add(ebb);
1834 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("1");
1835 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1836 executeFlows.add(ebb2);
1838 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("0");
1839 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1840 executeFlows.add(ebb3);
1842 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("1");
1843 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1844 executeFlows.add(ebb4);
1846 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("0");
1847 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1848 executeFlows.add(ebb5);
1850 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("1");
1851 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1852 executeFlows.add(ebb6);
1854 List<ExecuteBuildingBlock> sorted =
1855 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "deleteInstance");
1856 assertEqualsBulkFlowName(sorted, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1857 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB");
1861 public void queryNorthBoundRequestCatalogDbNestedTest() throws MalformedURLException {
1862 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1863 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
1864 "VNF-Macro-Replace", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
1865 northBoundRequest.setOrchestrationFlowList(orchFlows);
1866 List<OrchestrationFlow> macroFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1867 "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB");
1869 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner("replaceInstance",
1870 "Vnf", false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1871 when(catalogDbClient.getOrchestrationFlowByAction("VNF-Macro-Replace")).thenReturn(macroFlows);
1872 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "replaceInstance",
1873 WorkflowType.VNF, false, "my-custom-cloud-owner");
1874 assertEquals(flows.get(0).getFlowName(), "AAICheckVnfInMaintBB");
1875 assertEquals(flows.get(1).getFlowName(), "AAISetVnfInMaintBB");
1876 assertEquals(flows.get(2).getFlowName(), "DeactivateVfModuleBB");
1877 assertEquals(flows.get(3).getFlowName(), "DeleteVfModuleBB");
1878 assertEquals(flows.get(4).getFlowName(), "DeactivateVnfBB");
1879 assertEquals(flows.get(5).getFlowName(), "CreateVfModuleBB");
1880 assertEquals(flows.get(6).getFlowName(), "ActivateVfModuleBB");
1881 assertEquals(flows.get(7).getFlowName(), "ActivateVnfBB");
1882 assertEquals(flows.get(8).getFlowName(), "SDNOVnfHealthCheckBB");
1883 assertEquals(flows.get(9).getFlowName(), "AAIUnsetVnfInMaintBB");
1887 public void queryNorthBoundRequestCatalogDbTransportTest() throws MalformedURLException {
1888 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1889 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1890 northBoundRequest.setOrchestrationFlowList(orchFlows);
1891 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwnerAndServiceType(
1892 "createInstance", "Service", true, "my-custom-cloud-owner", "TRANSPORT")).thenReturn(northBoundRequest);
1894 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "createInstance",
1895 WorkflowType.SERVICE, true, "my-custom-cloud-owner", "TRANSPORT");
1896 assertEquals(flows.get(0).getFlowName(), "AssignServiceInstanceBB");
1900 public void extractResourceIdAndTypeFromUriTest() {
1901 String uri = "/v6/serviceInstances/123";
1902 String uri2 = "/v6/serviceInstances/123/vnfs/1234";
1903 String uri3 = "/v6/serviceInstances";
1904 String uri4 = "/v6/serviceInstances/assign";
1905 String uri5 = "'/v6/serviceInstances/123/vnfs";
1906 String uri6 = "/v6/serviceInstances/123/vnfs/1234/someAction";
1907 String uri7 = "/v6/serviceInstances/123/vnfs/1234/vfModules/5678/replace";
1908 String uri8 = "/v6/serviceInstances/123/vnfs/1234/vfModules/scaleOut";
1909 Resource expected1 = new Resource(WorkflowType.SERVICE, "123", true);
1910 Resource expected2 = new Resource(WorkflowType.VNF, "1234", false);
1911 Resource expected3 = new Resource(WorkflowType.VNF, "1234", false);
1912 Resource expected4 = new Resource(WorkflowType.VFMODULE, "5678", false);
1913 Resource result = workflowAction.extractResourceIdAndTypeFromUri(uri);
1914 assertEquals(expected1.getResourceId(), result.getResourceId());
1915 assertEquals(expected1.getResourceType(), result.getResourceType());
1916 result = workflowAction.extractResourceIdAndTypeFromUri(uri2);
1917 assertEquals(expected2.getResourceId(), result.getResourceId());
1918 assertEquals(expected2.getResourceType(), result.getResourceType());
1919 result = workflowAction.extractResourceIdAndTypeFromUri(uri3);
1920 assertEquals("Service", result.getResourceType().toString());
1921 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1922 result = workflowAction.extractResourceIdAndTypeFromUri(uri4);
1923 assertEquals("Service", result.getResourceType().toString());
1924 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1925 result = workflowAction.extractResourceIdAndTypeFromUri(uri5);
1926 assertEquals("Vnf", result.getResourceType().toString());
1927 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1928 result = workflowAction.extractResourceIdAndTypeFromUri(uri6);
1929 assertEquals(expected3.getResourceId(), result.getResourceId());
1930 assertEquals(expected3.getResourceType(), result.getResourceType());
1931 result = workflowAction.extractResourceIdAndTypeFromUri(uri7);
1932 assertEquals(expected4.getResourceId(), result.getResourceId());
1933 assertEquals(expected4.getResourceType(), result.getResourceType());
1934 result = workflowAction.extractResourceIdAndTypeFromUri(uri8);
1935 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1936 assertEquals("VfModule", result.getResourceType().toString());
1941 public void extractResourceIdAndTypeFromUriInvalidTypeTest() {
1942 this.expectedException.expect(IllegalArgumentException.class);
1943 this.expectedException.expectMessage(containsString("Uri could not be parsed. No type found."));
1944 workflowAction.extractResourceIdAndTypeFromUri("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace");
1948 public void extractResourceIdAndTypeFromUriInvalidUriTest() {
1949 this.expectedException.expect(IllegalArgumentException.class);
1950 this.expectedException.expectMessage(containsString("Uri could not be parsed:"));
1951 workflowAction.extractResourceIdAndTypeFromUri("something that doesn't match anything");
1955 public void extractResourceIdAndTypeFromUriResumeTest() {
1956 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1957 "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");
1958 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1962 public void extractResourceIdAndTypeFromUriReplaceResumeTest() {
1963 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1964 "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");
1965 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1969 public void extractResourceIdAndTypeFromUriDeActiveResumeTest() {
1970 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1971 "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");
1972 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1976 public void extractResourceIdAndTypeFromUriResumeIdOnly() {
1977 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1978 "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");
1979 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1983 public void isUriResumeTest() {
1984 assertTrue(workflowAction.isUriResume(
1985 "http://localhost:9100/onap/so/infra/orchestrationRequests/v7/requests/2f8ab587-ef6a-4456-b7b2-d73f9363dabd/resume"));
1986 assertTrue(workflowAction.isUriResume(
1987 " 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"));
1989 assertFalse(workflowAction.isUriResume("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace"));
1993 public void isRequestMacroServiceResumeTest() {
1994 ServiceInstance si = new ServiceInstance();
1995 when(bbSetupUtils.getAAIServiceInstanceById(anyString())).thenReturn(si);
1996 assertFalse(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", ""));
1997 assertTrue(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", "123"));
2001 public void populateResourceIdsFromApiHandlerTest() {
2002 execution.setVariable("serviceInstanceId", "123");
2003 execution.setVariable("vnfId", "888");
2004 WorkflowResourceIds x = workflowAction.populateResourceIdsFromApiHandler(execution);
2005 assertEquals("123", x.getServiceInstanceId());
2006 assertEquals("888", x.getVnfId());
2007 assertNull(x.getVolumeGroupId());
2010 private RequestDetails setupRequestDetails(String globalSubscriberId, String subscriptionServiceType,
2011 String modelCustomizationId) {
2012 RequestDetails reqDetails = new RequestDetails();
2013 SubscriberInfo subInfo = new SubscriberInfo();
2014 subInfo.setGlobalSubscriberId(globalSubscriberId);
2015 reqDetails.setSubscriberInfo(subInfo);
2016 RequestParameters reqParams = new RequestParameters();
2017 reqParams.setSubscriptionServiceType(subscriptionServiceType);
2018 reqDetails.setRequestParameters(reqParams);
2019 ModelInfo modelInfo = new ModelInfo();
2020 modelInfo.setModelCustomizationId(modelCustomizationId);
2021 reqDetails.setModelInfo(modelInfo);
2026 public void validateResourceIdInAAIVnfTest() throws Exception {
2027 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2028 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2029 workflowResourceIds.setServiceInstanceId("siId123");
2031 GenericVnf vnf = new GenericVnf();
2032 vnf.setVnfId("id123");
2033 vnf.setVnfName("vnfName123");
2034 vnf.setModelCustomizationId("1234567");
2035 Optional<GenericVnf> opVnf = Optional.of(vnf);
2036 GenericVnf vnf2 = new GenericVnf();
2037 vnf2.setVnfId("id123");
2038 vnf2.setVnfName("vnfName222");
2039 vnf2.setModelCustomizationId("222");
2040 Optional<GenericVnf> opVnf2 = Optional.of(vnf2);
2041 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2042 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName222")).thenReturn(opVnf2);
2043 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2044 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName123", reqDetails,
2045 workflowResourceIds);
2046 assertEquals("id123", id);
2047 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "111111", reqDetails,
2048 workflowResourceIds);
2049 assertEquals("generatedId123", id2);
2051 this.expectedException.expect(DuplicateNameException.class);
2052 this.expectedException.expectMessage(containsString(
2053 "generic-vnf with name (vnfName222), same parent and different customization id (222) already exists. The name must be unique."));
2054 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName222", reqDetails,
2055 workflowResourceIds);
2059 public void validateResourceIdInAAIVnfNotGloballyUniqueTest() throws Exception {
2060 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2061 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2062 workflowResourceIds.setServiceInstanceId("siId123");
2065 GenericVnfs genericVnfs = new GenericVnfs();
2066 GenericVnf vnf3 = new GenericVnf();
2067 vnf3.setVnfId("id123");
2068 vnf3.setVnfName("vnfName333");
2069 genericVnfs.getGenericVnf().add(vnf3);
2070 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName333")).thenReturn(Optional.empty());
2071 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName333")).thenReturn(genericVnfs);
2073 this.expectedException.expect(DuplicateNameException.class);
2074 this.expectedException.expectMessage(containsString(
2075 "generic-vnf with name (vnfName333) id (id123) and different parent relationship already exists. The name must be unique."));
2076 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName333", reqDetails,
2077 workflowResourceIds);
2081 public void validateResourceIdInAAINetworkTest() throws Exception {
2082 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2083 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2084 workflowResourceIds.setServiceInstanceId("siId123");
2087 L3Network network = new L3Network();
2088 network.setNetworkId("id123");
2089 network.setNetworkName("name123");
2090 network.setModelCustomizationId("1234567");
2091 workflowResourceIds.setServiceInstanceId("siId123");
2092 Optional<L3Network> opNetwork = Optional.of(network);
2093 L3Network network2 = new L3Network();
2094 network2.setNetworkId("id123");
2095 network2.setNetworkName("networkName222");
2096 network2.setModelCustomizationId("222");
2097 Optional<L3Network> opNetwork2 = Optional.of(network2);
2098 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2099 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "networkName222"))
2100 .thenReturn(opNetwork2);
2101 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2102 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "name123",
2103 reqDetails, workflowResourceIds);
2104 assertEquals("id123", id);
2105 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "111111",
2106 reqDetails, workflowResourceIds);
2107 assertEquals("generatedId123", id2);
2109 this.expectedException.expect(DuplicateNameException.class);
2110 this.expectedException.expectMessage(containsString(
2111 "l3Network with name (networkName222), same parent and different customization id (222) already exists. The name must be unique."));
2112 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName222", reqDetails,
2113 workflowResourceIds);
2117 public void validateNetworkResourceNameExistsInAAITest() throws Exception {
2118 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2119 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2120 workflowResourceIds.setServiceInstanceId("siId123");
2123 L3Network network = new L3Network();
2124 network.setNetworkId("id123");
2125 network.setNetworkName("name123");
2126 network.setModelCustomizationId("1234567");
2127 workflowResourceIds.setServiceInstanceId("siId123");
2129 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("networkName333", "111111"))
2130 .thenReturn(Optional.empty());
2131 when(bbSetupUtils.existsAAINetworksGloballyByName("networkName333")).thenReturn(true);
2133 this.expectedException.expect(DuplicateNameException.class);
2134 this.expectedException.expectMessage(containsString(
2135 "l3Network with name (networkName333) id (siId123) and different parent relationship already exists. The name must be unique."));
2136 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName333", reqDetails,
2137 workflowResourceIds);
2141 public void validateResourceIdInAAIVfModuleTest() throws Exception {
2142 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2143 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2144 workflowResourceIds.setServiceInstanceId("siId123");
2146 GenericVnf vnf = new GenericVnf();
2147 vnf.setVnfId("id123");
2148 vnf.setVnfName("vnfName123");
2149 vnf.setModelCustomizationId("222");
2152 VfModules vfModules = new VfModules();
2153 VfModule vfModule = new VfModule();
2154 vfModule.setVfModuleId("id123");
2155 vfModule.setVfModuleName("name123");
2156 vfModule.setModelCustomizationId("1234567");
2157 vfModules.getVfModule().add(vfModule);
2158 vnf.setVfModules(vfModules);
2159 workflowResourceIds.setVnfId("id123");
2160 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2161 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "name123",
2162 reqDetails, workflowResourceIds);
2163 assertEquals("id123", id);
2165 GenericVnf vnf1 = new GenericVnf();
2166 VfModules vfModules2 = new VfModules();
2167 VfModule vfModule2 = new VfModule();
2168 vfModule2.setVfModuleId("id123");
2169 vfModule2.setVfModuleName("vFModName222");
2170 vfModule2.setModelCustomizationId("222");
2171 vfModules2.getVfModule().add(vfModule2);
2172 vnf1.setVfModules(vfModules2);
2173 workflowResourceIds.setVnfId("id111");
2174 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2175 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "111111",
2176 reqDetails, workflowResourceIds);
2177 assertEquals("generatedId123", id2);
2179 this.expectedException.expect(DuplicateNameException.class);
2180 this.expectedException.expectMessage(containsString(
2181 "vfModule with name (vFModName222), same parent and different customization id (1234567) already exists. The name must be unique."));
2182 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName222", reqDetails,
2183 workflowResourceIds);
2187 public void validateResourceIdInAAIVfModuleNotGloballyUniqueTest() throws Exception {
2188 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2189 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2190 workflowResourceIds.setVnfId("id111");
2192 GenericVnf vnf1 = new GenericVnf();
2193 workflowResourceIds.setVnfId("id111");
2194 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2196 when(bbSetupUtils.existsAAIVfModuleGloballyByName("vFModName333")).thenReturn(true);
2197 this.expectedException.expect(DuplicateNameException.class);
2198 this.expectedException.expectMessage(
2199 containsString("vfModule with name vFModName333 already exists. The name must be unique."));
2200 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName333", reqDetails,
2201 workflowResourceIds);
2205 public void validateResourceIdInAAIVolumeGroupTest() throws Exception {
2206 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2207 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2208 workflowResourceIds.setServiceInstanceId("siId123");
2210 GenericVnf vnf = new GenericVnf();
2211 vnf.setVnfId("id123");
2212 vnf.setVnfName("vnfName123");
2213 vnf.setModelCustomizationId("1234567");
2215 GenericVnf vnf2 = new GenericVnf();
2216 vnf2.setVnfId("id123");
2217 vnf2.setVnfName("vnfName123");
2218 vnf2.setModelCustomizationId("222");
2221 VolumeGroup volumeGroup = new VolumeGroup();
2222 volumeGroup.setVolumeGroupId("id123");
2223 volumeGroup.setVolumeGroupName("name123");
2224 volumeGroup.setVfModuleModelCustomizationId("1234567");
2225 workflowResourceIds.setVnfId("id123");
2226 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2228 workflowResourceIds.setVnfId("id123");
2230 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2231 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(opVolumeGroup);
2232 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2233 reqDetails, workflowResourceIds);
2234 assertEquals("id123", id);
2236 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf2);
2237 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "111111"))
2238 .thenReturn(opVolumeGroup);
2240 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "111111")).thenReturn(Optional.empty());
2241 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "111111",
2242 reqDetails, workflowResourceIds);
2243 assertEquals("generatedId123", id2);
2247 public void validatesourceIdInAAIVolumeGroupNotGloballyUniqueTest() throws Exception {
2248 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2249 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2250 workflowResourceIds.setVnfId("id123");
2251 GenericVnf vnf = new GenericVnf();
2252 vnf.setVnfId("id123");
2253 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2254 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "testVolumeGroup")).thenReturn(Optional.empty());
2256 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("testVolumeGroup")).thenReturn(true);
2257 this.expectedException.expect(DuplicateNameException.class);
2258 this.expectedException.expectMessage(
2259 containsString("volumeGroup with name testVolumeGroup already exists. The name must be unique."));
2260 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "testVolumeGroup",
2261 reqDetails, workflowResourceIds);
2265 public void validateResourceIdInAAIConfigurationTest() throws Exception {
2266 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2267 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2268 workflowResourceIds.setServiceInstanceId("siId123");
2271 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2272 configuration.setConfigurationId("id123");
2273 configuration.setConfigurationName("name123");
2274 configuration.setModelCustomizationId("1234567");
2275 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2277 org.onap.aai.domain.yang.Configuration configuration2 = new org.onap.aai.domain.yang.Configuration();
2278 configuration2.setConfigurationId("id123");
2279 configuration2.setConfigurationName("name123");
2280 configuration2.setModelCustomizationId("222");
2281 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration2 = Optional.of(configuration2);
2283 workflowResourceIds.setVnfId("id123");
2285 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2286 .thenReturn(opConfiguration);
2287 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name123",
2288 reqDetails, workflowResourceIds);
2289 assertEquals("id123", id);
2291 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "111111"))
2292 .thenReturn(Optional.empty());
2293 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "111111",
2294 reqDetails, workflowResourceIds);
2295 assertEquals("generatedId123", id2);
2297 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name222"))
2298 .thenReturn(opConfiguration2);
2299 this.expectedException.expect(DuplicateNameException.class);
2300 this.expectedException.expectMessage(containsString(
2301 "configuration with name (name222), same parent and different customization id (id123) already exists. The name must be unique."));
2302 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name222", reqDetails,
2303 workflowResourceIds);
2307 public void validateResourceIdInAAIConfigurationNotGloballyUniqueTest() throws Exception {
2308 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2309 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2310 workflowResourceIds.setServiceInstanceId("siId123");
2312 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "testConfig"))
2313 .thenReturn(Optional.empty());
2314 when(bbSetupUtils.existsAAIConfigurationGloballyByName("testConfig")).thenReturn(true);
2315 this.expectedException.expect(DuplicateNameException.class);
2316 this.expectedException.expectMessage(
2317 containsString("configuration with name testConfig already exists. The name must be unique."));
2318 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "testConfig", reqDetails,
2319 workflowResourceIds);
2323 public void validateResourceIdInAAISITest() 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);
2334 Optional<ServiceInstance> siOp = Optional.of(si);
2335 ServiceInstance si2 = new ServiceInstance();
2336 si2.setServiceInstanceId("siId222");
2337 si2.setModelVersionId("22222");
2338 si2.setServiceInstanceName("siName222");
2339 Optional<ServiceInstance> siOp2 = Optional.of(si2);
2340 ServiceInstances serviceInstances2 = new ServiceInstances();
2341 serviceInstances2.getServiceInstance().add(si2);
2343 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2344 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName222")).thenReturn(siOp2);
2345 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "111111"))
2346 .thenReturn(Optional.empty());
2348 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2349 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123",
2350 reqDetails, workflowResourceIds);
2351 assertEquals("siId123", id);
2352 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "111111",
2353 reqDetails, workflowResourceIds);
2354 assertEquals("generatedId123", id2);
2356 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName222")).thenReturn(serviceInstances2);
2357 this.expectedException.expect(DuplicateNameException.class);
2358 this.expectedException.expectMessage(containsString(
2359 "serviceInstance with name (siName222) and different version id (1234567) already exists. The name must be unique."));
2360 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName222", reqDetails,
2361 workflowResourceIds);
2365 public void validateResourceIdInAAIMultipleSITest() throws Exception {
2366 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2367 workflowResourceIds.setServiceInstanceId("siId123");
2368 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2369 reqDetails.getModelInfo().setModelVersionId("1234567");
2371 ServiceInstance si = new ServiceInstance();
2372 si.setServiceInstanceId("siId123");
2373 si.setModelVersionId("1234567");
2374 ServiceInstances serviceInstances = new ServiceInstances();
2375 serviceInstances.getServiceInstance().add(si);
2377 ServiceInstance si2 = new ServiceInstance();
2378 si2.setServiceInstanceId("siId222");
2379 si2.setModelVersionId("22222");
2380 si2.setServiceInstanceName("siName222");
2381 serviceInstances.getServiceInstance().add(si2);
2383 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2384 .thenReturn(Optional.empty());
2386 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2388 this.expectedException.expect(DuplicateNameException.class);
2389 this.expectedException.expectMessage(containsString(
2390 "serviceInstance with name (siName123) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2391 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2392 workflowResourceIds);
2396 public void validateResourceIdInAAISIExistsTest() throws Exception {
2397 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2398 workflowResourceIds.setServiceInstanceId("siId123");
2399 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2400 reqDetails.getModelInfo().setModelVersionId("1234567");
2402 ServiceInstance si = new ServiceInstance();
2403 si.setServiceInstanceId("siId123");
2404 si.setModelVersionId("1234567");
2405 ServiceInstances serviceInstances = new ServiceInstances();
2406 serviceInstances.getServiceInstance().add(si);
2408 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2409 .thenReturn(Optional.empty());
2411 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2413 Map<String, String> uriKeys = new HashMap<>();
2414 uriKeys.put(AAIFluentTypeBuilder.Types.CUSTOMER.getUriParams().globalCustomerId, "globalCustomerId");
2415 uriKeys.put(AAIFluentTypeBuilder.Types.SERVICE_SUBSCRIPTION.getUriParams().serviceType, "serviceType");
2417 when(bbSetupUtils.getURIKeysFromServiceInstance("siId123")).thenReturn(uriKeys);
2419 this.expectedException.expect(DuplicateNameException.class);
2420 this.expectedException.expectMessage(containsString(
2421 "serviceInstance with name (siName123) and global-customer-id (globalCustomerId), service-type (serviceType), model-version-id (1234567) already exists. The name must be unique."));
2422 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2423 workflowResourceIds);
2427 public void validateServiceResourceIdInAAINoDupTest() throws Exception {
2428 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2429 reqDetails.getModelInfo().setModelVersionId("1234567");
2430 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123"))
2431 .thenReturn(Optional.empty());
2432 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(null);
2433 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2434 assertEquals("generatedId123", id);
2438 public void validateServiceResourceIdInAAISameModelVersionId() throws Exception {
2439 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2440 reqDetails.getModelInfo().setModelVersionId("1234567");
2442 ServiceInstance si = new ServiceInstance();
2443 si.setServiceInstanceId("siId123");
2444 si.setModelVersionId("1234567");
2445 Optional<ServiceInstance> siOp = Optional.of(si);
2447 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2448 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2449 assertEquals("siId123", id);
2453 public void validateServiceResourceIdInAAIDifferentModelVersionId() throws Exception {
2454 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2455 reqDetails.getModelInfo().setModelVersionId("1234567");
2457 ServiceInstance si = new ServiceInstance();
2458 si.setServiceInstanceId("siId123");
2459 si.setModelVersionId("9999999");
2460 ServiceInstances serviceInstances = new ServiceInstances();
2461 serviceInstances.getServiceInstance().add(si);
2462 Optional<ServiceInstance> siOp = Optional.of(si);
2464 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2466 this.expectedException.expect(DuplicateNameException.class);
2467 this.expectedException.expectMessage(containsString(
2468 "serviceInstance with name (siName123) and different version id (1234567) already exists. The name must be unique."));
2470 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2471 assertEquals("siId123", id);
2475 public void validateServiceResourceIdInAAIDuplicateNameTest() throws Exception {
2477 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2478 reqDetails.getModelInfo().setModelVersionId("1234567");
2480 ServiceInstance si = new ServiceInstance();
2481 si.setServiceInstanceId("siId123");
2482 si.setModelVersionId("1234567");
2484 ServiceInstances serviceInstances = new ServiceInstances();
2485 serviceInstances.getServiceInstance().add(si);
2487 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2488 .thenReturn(Optional.empty());
2489 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2491 this.expectedException.expect(DuplicateNameException.class);
2492 this.expectedException.expectMessage(containsString(
2493 "serviceInstance with name (siName) and global-customer-id (null), service-type (null), model-version-id (1234567) already exists. The name must be unique."));
2495 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2499 public void validateServiceResourceIdInAAIDuplicateNameMultipleTest() throws Exception {
2501 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2502 reqDetails.getModelInfo().setModelVersionId("1234567");
2504 ServiceInstance si = new ServiceInstance();
2505 si.setServiceInstanceId("siId123");
2506 si.setModelVersionId("1234567");
2508 ServiceInstance si2 = new ServiceInstance();
2509 si2.setServiceInstanceId("siId222");
2510 si2.setModelVersionId("22222");
2511 si2.setServiceInstanceName("siName222");
2513 ServiceInstances serviceInstances = new ServiceInstances();
2514 serviceInstances.getServiceInstance().add(si);
2515 serviceInstances.getServiceInstance().add(si2);
2517 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2518 .thenReturn(Optional.empty());
2519 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2521 this.expectedException.expect(DuplicateNameException.class);
2522 this.expectedException.expectMessage(containsString(
2523 "serviceInstance with name (siName) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2525 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2529 public void validateNetworkResourceIdInAAITest() throws Exception {
2530 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2531 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2532 workflowResourceIds.setServiceInstanceId("siId123");
2534 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2535 .thenReturn(Optional.empty());
2536 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(false);
2538 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2539 workflowResourceIds);
2540 assertEquals("generatedId123", id);
2544 public void validateNetworkResourceIdInAAISameModelCustIdTest() throws Exception {
2545 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2546 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2547 workflowResourceIds.setServiceInstanceId("siId123");
2549 L3Network network = new L3Network();
2550 network.setNetworkId("id123");
2551 network.setNetworkName("name123");
2552 network.setModelCustomizationId("1234567");
2553 Optional<L3Network> opNetwork = Optional.of(network);
2555 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2557 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2558 workflowResourceIds);
2559 assertEquals("id123", id);
2563 public void validateNetworkResourceIdInAAIDuplicateNameTest() throws Exception {
2564 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2565 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2566 workflowResourceIds.setServiceInstanceId("siId123");
2568 L3Network network = new L3Network();
2569 network.setNetworkId("id123");
2570 network.setNetworkName("name123");
2571 network.setModelCustomizationId("9999999");
2572 Optional<L3Network> opNetwork = Optional.of(network);
2574 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2576 this.expectedException.expect(DuplicateNameException.class);
2577 this.expectedException.expectMessage(containsString(
2578 "l3Network with name (name123), same parent and different customization id (9999999) already exists. The name must be unique."));
2580 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2584 public void validateNetworkResourceIdInAAINotGloballyUniqueTest() throws Exception {
2585 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2586 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2587 workflowResourceIds.setServiceInstanceId("siId123");
2589 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2590 .thenReturn(Optional.empty());
2591 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(true);
2593 this.expectedException.expect(DuplicateNameException.class);
2594 this.expectedException.expectMessage(containsString(
2595 "l3Network with name (name123) id (siId123) and different parent relationship already exists. The name must be unique."));
2597 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2601 public void validateVnfResourceIdInAAITest() throws Exception {
2602 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2603 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2604 workflowResourceIds.setServiceInstanceId("siId123");
2605 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2606 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2607 workflowResourceIds);
2608 assertEquals("generatedId123", id);
2612 public void validateVnfResourceIdInAAISameModelCustomizationIdTest() throws Exception {
2613 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2614 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2615 workflowResourceIds.setServiceInstanceId("siId123");
2617 GenericVnf vnf = new GenericVnf();
2618 vnf.setVnfId("id123");
2619 vnf.setVnfName("vnfName123");
2620 vnf.setModelCustomizationId("1234567");
2621 Optional<GenericVnf> opVnf = Optional.of(vnf);
2623 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2624 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2625 workflowResourceIds);
2626 assertEquals("id123", id);
2630 public void validateVnfResourceIdInAAIDiffModelCustomizationIdTest() throws Exception {
2631 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2632 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2633 workflowResourceIds.setServiceInstanceId("siId123");
2635 GenericVnf vnf = new GenericVnf();
2636 vnf.setVnfId("id123");
2637 vnf.setVnfName("vnfName123");
2638 vnf.setModelCustomizationId("9999999");
2639 Optional<GenericVnf> opVnf = Optional.of(vnf);
2641 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2643 this.expectedException.expect(DuplicateNameException.class);
2644 this.expectedException.expectMessage(containsString(
2645 "generic-vnf with name (vnfName123), same parent and different customization id (9999999) already exists. The name must be unique."));
2647 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2651 public void validateVnfResourceIdInAAINotGloballyUniqueTest() throws Exception {
2652 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2653 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2654 workflowResourceIds.setServiceInstanceId("siId123");
2657 GenericVnf vnf = new GenericVnf();
2658 vnf.setVnfId("id123");
2659 vnf.setVnfName("vnfName123");
2660 GenericVnfs genericVnfs = new GenericVnfs();
2661 genericVnfs.getGenericVnf().add(vnf);
2663 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2664 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName123")).thenReturn(genericVnfs);
2666 this.expectedException.expect(DuplicateNameException.class);
2667 this.expectedException.expectMessage(containsString(
2668 "generic-vnf with name (vnfName123) id (id123) and different parent relationship already exists. The name must be unique."));
2670 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2674 public void validateVfModuleResourceIdTest() throws Exception {
2675 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2676 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2677 workflowResourceIds.setVnfId("vnfId123");
2679 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2680 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(false);
2682 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2683 workflowResourceIds);
2684 assertEquals("generatedId123", id);
2688 public void validateVfModuleResourceIdSameModelCustIdTest() throws Exception {
2689 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2690 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2691 workflowResourceIds.setVnfId("vnfId123");
2693 VfModules vfModules = new VfModules();
2694 VfModule vfModule = new VfModule();
2695 vfModule.setVfModuleId("id123");
2696 vfModule.setVfModuleName("name123");
2697 vfModule.setModelCustomizationId("1234567");
2698 vfModules.getVfModule().add(vfModule);
2700 GenericVnf vnf = new GenericVnf();
2701 vnf.setVnfId("id123");
2702 vnf.setVnfName("vnfName123");
2703 vnf.setVfModules(vfModules);
2705 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2707 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2708 workflowResourceIds);
2709 assertEquals("id123", id);
2713 public void validateVfModuleResourceIdDifferentModelCustIdTest() throws Exception {
2714 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2715 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2716 workflowResourceIds.setVnfId("vnfId123");
2718 VfModules vfModules = new VfModules();
2719 VfModule vfModule = new VfModule();
2720 vfModule.setVfModuleId("id123");
2721 vfModule.setVfModuleName("name123");
2722 vfModule.setModelCustomizationId("9999999");
2723 vfModules.getVfModule().add(vfModule);
2725 GenericVnf vnf = new GenericVnf();
2726 vnf.setVnfId("id123");
2727 vnf.setVnfName("vnfName123");
2728 vnf.setVfModules(vfModules);
2730 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2732 this.expectedException.expect(DuplicateNameException.class);
2733 this.expectedException.expectMessage(containsString(
2734 "vfModule with name (name123), same parent and different customization id (1234567) already exists. The name must be unique."));
2736 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2741 public void validateVfModuleResourceIdNotGloballyUniqueTest() throws Exception {
2742 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2743 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2744 workflowResourceIds.setVnfId("vnfId123");
2746 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2747 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(true);
2749 this.expectedException.expect(DuplicateNameException.class);
2750 this.expectedException
2751 .expectMessage(containsString("vfModule with name name123 already exists. The name must be unique."));
2753 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2757 public void validateVolumeGroupResourceIdInAAITest() throws Exception {
2758 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2759 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2760 workflowResourceIds.setVnfId("vnfId123");
2762 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(Optional.empty());
2763 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(false);
2765 String id = workflowAction.validateVolumeGroupResourceIdInAAI("generatedId123", "name123", reqDetails,
2766 workflowResourceIds);
2767 assertEquals("generatedId123", id);
2771 public void validateVolumeGroupResourceIdInAAISameModelCustIdTest() throws Exception {
2772 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2773 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2774 workflowResourceIds.setServiceInstanceId("siId123");
2775 workflowResourceIds.setVnfId("vnfId123");
2777 VolumeGroup volumeGroup = new VolumeGroup();
2778 volumeGroup.setVolumeGroupId("id123");
2779 volumeGroup.setVolumeGroupName("name123");
2780 volumeGroup.setVfModuleModelCustomizationId("1234567");
2782 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2784 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2785 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2786 reqDetails, workflowResourceIds);
2788 assertEquals("id123", id);
2792 public void validateVolumeGroupResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2793 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2794 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2795 workflowResourceIds.setServiceInstanceId("siId123");
2796 workflowResourceIds.setVnfId("vnfId123");
2798 VolumeGroup volumeGroup = new VolumeGroup();
2799 volumeGroup.setVolumeGroupId("id123");
2800 volumeGroup.setVolumeGroupName("name123");
2801 volumeGroup.setVfModuleModelCustomizationId("9999999");
2803 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2805 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2807 this.expectedException.expect(DuplicateNameException.class);
2808 this.expectedException.expectMessage(
2809 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2811 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2812 workflowResourceIds);
2816 public void validateVolumeGroupResourceIdInAAINotGloballyUniqueTest() throws Exception {
2817 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2818 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2819 workflowResourceIds.setVnfId("vnfId123");
2821 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(Optional.empty());
2822 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(true);
2824 this.expectedException.expect(DuplicateNameException.class);
2825 this.expectedException.expectMessage(
2826 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2828 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2829 workflowResourceIds);
2833 public void validateConfigurationResourceIdInAAITest() throws Exception {
2834 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2835 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2836 workflowResourceIds.setServiceInstanceId("siId123");
2838 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2839 .thenReturn(Optional.empty());
2840 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2842 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2843 workflowResourceIds);
2844 assertEquals("generatedId123", id);
2848 public void validateConfigurationResourceIdInAAISameModelCustIdTest() throws Exception {
2849 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2850 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2851 workflowResourceIds.setServiceInstanceId("siId123");
2853 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2854 configuration.setConfigurationId("id123");
2855 configuration.setConfigurationName("name123");
2856 configuration.setModelCustomizationId("1234567");
2857 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2859 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2860 .thenReturn(opConfiguration);
2861 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2863 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2864 workflowResourceIds);
2865 assertEquals("id123", id);
2869 public void validateConfigurationResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2870 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2871 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2872 workflowResourceIds.setServiceInstanceId("siId123");
2874 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2875 configuration.setConfigurationId("id123");
2876 configuration.setConfigurationName("name123");
2877 configuration.setModelCustomizationId("9999999");
2878 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2880 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2881 .thenReturn(opConfiguration);
2882 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2884 this.expectedException.expect(DuplicateNameException.class);
2885 this.expectedException.expectMessage(containsString(
2886 "configuration with name (name123), same parent and different customization id (id123) already exists. The name must be unique."));
2888 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2889 workflowResourceIds);
2893 public void validateConfigurationResourceIdInAAINotGloballyUniqueTest() throws Exception {
2894 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2895 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2896 workflowResourceIds.setServiceInstanceId("siId123");
2898 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2899 .thenReturn(Optional.empty());
2900 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(true);
2902 this.expectedException.expect(DuplicateNameException.class);
2903 this.expectedException.expectMessage(
2904 containsString("configuration with name name123 already exists. The name must be unique."));
2906 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2907 workflowResourceIds);
2911 public void handleRuntimeExceptionTest() {
2912 execution.setVariable("BPMN_javaExpMsg", "test runtime error message");
2913 execution.setVariable("testProcessKey", "testProcessKeyValue");
2915 workflowAction.handleRuntimeException(execution);
2916 } catch (BpmnError wfe) {
2917 assertEquals("MSOWorkflowException", wfe.getErrorCode());
2923 public void traverseCatalogDbServiceMultipleNetworkTest() throws IOException, VrfBondingServiceException {
2924 execution.setVariable("testProcessKey", "testProcessKeyValue");
2925 Service service = new Service();
2926 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
2927 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
2928 networkCust.setModelCustomizationUUID("123");
2929 networkCustomizations.add(networkCust);
2930 service.setNetworkCustomizations(networkCustomizations);
2931 NetworkCollectionResourceCustomization collectionResourceCustomization =
2932 new NetworkCollectionResourceCustomization();
2933 collectionResourceCustomization.setModelCustomizationUUID("123");
2934 CollectionResource collectionResource = new CollectionResource();
2935 collectionResource.setToscaNodeType("NetworkCollection");
2936 InstanceGroup instanceGroup = new InstanceGroup();
2937 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
2938 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
2939 new CollectionResourceInstanceGroupCustomization();
2940 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
2941 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
2942 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
2943 collectionResource.setInstanceGroup(instanceGroup);
2944 collectionResourceCustomization.setCollectionResource(collectionResource);;
2945 service.setModelUUID("abc");
2946 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2947 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2948 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
2949 doReturn(collectionResourceCustomization).when(catalogDbClient)
2950 .getNetworkCollectionResourceCustomizationByID("123");
2951 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
2952 ObjectMapper mapper = new ObjectMapper();
2953 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
2954 List<Resource> resourceCounter = new ArrayList<>();
2955 thrown.expect(BpmnError.class);
2956 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
2957 workflowAction.traverseCatalogDbService(execution, sIRequest, resourceCounter, aaiResourceIds);
2961 public void sortVfModulesByBaseFirstTest() {
2962 List<Resource> resources = new ArrayList<>();
2963 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2964 resource1.setBaseVfModule(false);
2965 resources.add(resource1);
2966 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2967 resource2.setBaseVfModule(false);
2968 resources.add(resource2);
2969 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
2970 resource3.setBaseVfModule(true);
2971 resources.add(resource3);
2972 List<Resource> result = workflowAction.sortVfModulesByBaseFirst(resources);
2973 assertEquals("333", result.get(0).getResourceId());
2974 assertEquals("222", result.get(1).getResourceId());
2975 assertEquals("111", result.get(2).getResourceId());
2979 public void sortVfModulesByBaseLastTest() {
2980 List<Resource> resources = new ArrayList<>();
2981 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2982 resource1.setBaseVfModule(true);
2983 resources.add(resource1);
2984 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2985 resource2.setBaseVfModule(false);
2986 resources.add(resource2);
2987 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
2988 resource3.setBaseVfModule(false);
2989 resources.add(resource3);
2990 List<Resource> result = workflowAction.sortVfModulesByBaseLast(resources);
2991 assertEquals("333", result.get(0).getResourceId());
2992 assertEquals("222", result.get(1).getResourceId());
2993 assertEquals("111", result.get(2).getResourceId());
2997 public void findCatalogNetworkCollectionTest() {
2998 Service service = new Service();
2999 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
3000 networkCustomization.setModelCustomizationUUID("123");
3001 service.getCollectionResourceCustomizations().add(networkCustomization);
3002 doReturn(networkCustomization).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
3003 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
3004 assertNotNull(customization);
3008 public void findCatalogNetworkCollectionEmptyTest() {
3009 Service service = new Service();
3010 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
3011 networkCustomization.setModelCustomizationUUID("123");
3012 service.getCollectionResourceCustomizations().add(networkCustomization);
3013 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
3014 assertNull(customization);
3018 public void findCatalogNetworkCollectionMoreThanOneTest() {
3019 Service service = new Service();
3020 NetworkCollectionResourceCustomization networkCustomization1 = new NetworkCollectionResourceCustomization();
3021 networkCustomization1.setModelCustomizationUUID("123");
3022 NetworkCollectionResourceCustomization networkCustomization2 = new NetworkCollectionResourceCustomization();
3023 networkCustomization2.setModelCustomizationUUID("321");
3024 service.getCollectionResourceCustomizations().add(networkCustomization1);
3025 service.getCollectionResourceCustomizations().add(networkCustomization2);
3026 doReturn(networkCustomization1).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
3027 doReturn(networkCustomization2).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("321");
3028 workflowAction.findCatalogNetworkCollection(execution, service);
3029 assertEquals("Found multiple Network Collections in the Service model, only one per Service is supported.",
3030 execution.getVariable("WorkflowActionErrorMessage"));
3034 public void verifyLackOfNullPointerExceptionForNullResource() {
3035 ExecuteBuildingBlock result = null;
3037 result = workflowAction.buildExecuteBuildingBlock(new OrchestrationFlow(), null, null, null, null, null,
3038 false, null, null, null, false, null, null, true, null);
3039 } catch (NullPointerException e) {
3040 fail("NullPointerException should not be thrown when 'resource' is null");
3042 assertNotNull(result);
3046 public void traverseAAIServiceTest() {
3047 List<Resource> resourceCounter = new ArrayList<>();
3048 String resourceId = "si0";
3049 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
3051 ServiceInstance serviceInstanceAAI = new ServiceInstance();
3052 serviceInstanceAAI.setServiceInstanceId(resourceId);
3054 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstance = setServiceInstance();
3062 Configuration config = new Configuration();
3063 config.setConfigurationId("testConfigurationId2");
3064 serviceInstance.getConfigurations().add(config);
3066 Relationship relationship1 = new Relationship();
3067 relationship1.setRelatedTo("vnfc");
3068 RelationshipList relationshipList1 = new RelationshipList();
3069 relationshipList1.getRelationship().add(relationship1);
3071 Relationship relationship2 = new Relationship();
3072 relationship2.setRelatedTo("vpn-binding");
3073 RelationshipList relationshipList2 = new RelationshipList();
3074 relationshipList2.getRelationship().add(relationship2);
3076 org.onap.aai.domain.yang.Configuration aaiConfiguration1 = new org.onap.aai.domain.yang.Configuration();
3077 aaiConfiguration1.setConfigurationId("testConfigurationId");
3078 aaiConfiguration1.setRelationshipList(relationshipList1);
3080 org.onap.aai.domain.yang.Configuration aaiConfiguration2 = new org.onap.aai.domain.yang.Configuration();
3081 aaiConfiguration2.setConfigurationId("testConfigurationId2");
3082 aaiConfiguration2.setRelationshipList(relationshipList1);
3085 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById(resourceId);
3086 doReturn(serviceInstance).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
3087 doReturn(Optional.of(aaiConfiguration1)).when(aaiConfigurationResources)
3088 .getConfiguration("testConfigurationId");
3089 doReturn(Optional.of(aaiConfiguration2)).when(aaiConfigurationResources)
3090 .getConfiguration("testConfigurationId2");
3091 workflowAction.traverseAAIService(execution, resourceCounter, resourceId, aaiResourceIds);
3092 assertEquals(8, resourceCounter.size());
3093 assertTrue(resourceCounter.get(2).isBaseVfModule());
3094 assertThat(aaiResourceIds, sameBeanAs(getExpectedResourceIds()));
3095 } catch (Exception e) {
3096 fail("Unexpected exception was thrown.");
3100 private List<Pair<WorkflowType, String>> getExpectedResourceIds() {
3101 List<Pair<WorkflowType, String>> resourceIds = new ArrayList<>();
3102 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VNF, "testVnfId1"));
3103 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VFMODULE, "testVfModuleId1"));
3104 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VOLUMEGROUP, "testVolumeGroupId1"));
3105 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORK, "testNetworkId1"));
3106 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORKCOLLECTION, "testId"));
3107 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId"));
3108 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId2"));
3112 private List<OrchestrationFlow> createFlowList(String... flowNames) {
3113 List<OrchestrationFlow> result = new ArrayList<>();
3114 for (String flowName : flowNames) {
3115 OrchestrationFlow orchFlow = new OrchestrationFlow();
3116 orchFlow.setFlowName(flowName);
3117 result.add(orchFlow);
3122 private void assertEqualsBulkFlowName(List<ExecuteBuildingBlock> ebbs, String... flowNames) {
3123 for (int i = 0; i < ebbs.size(); i++) {
3124 assertEquals(ebbs.get(i).getBuildingBlock().getBpmnFlowName(), flowNames[i]);
3128 private void initExecution(String gAction, String bpmnRequest, boolean isAlaCarte) {
3129 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
3130 execution.setVariable("requestAction", gAction);
3131 execution.setVariable("bpmnRequest", bpmnRequest);
3132 execution.setVariable("aLaCarte", isAlaCarte);
3133 execution.setVariable("apiVersion", "7");
3136 private String readBpmnRequestFromFile(String fileName) throws IOException {
3137 return new String(Files.readAllBytes(Paths.get("src/test/resources/__files/" + fileName)));