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.anyList;
39 import static org.mockito.ArgumentMatchers.anyObject;
40 import static org.mockito.ArgumentMatchers.anyString;
41 import static org.mockito.ArgumentMatchers.eq;
42 import static org.mockito.ArgumentMatchers.isA;
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.entities.AAIResultWrapper;
82 import org.onap.aaiclient.client.aai.entities.Relationships;
83 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
84 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
85 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder;
86 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder.Types;
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;
133 protected UserParamsServiceTraversal userParamsServiceTraversal;
136 protected WorkflowAction workflowAction;
137 private DelegateExecution execution;
141 protected WorkflowAction SPY_workflowAction;
144 public ExpectedException thrown = ExpectedException.none();
146 private String RESOURCE_PATH = "src/test/resources/__files/";
148 private List<OrchestrationFlow> replaceVfModuleOrchFlows =
149 createFlowList("DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
150 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
151 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
152 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
153 private List<OrchestrationFlow> replaceRetainAssignmentsVfModuleOrchFlows = createFlowList("DeactivateVfModuleBB",
154 "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "UnassignVolumeGroupBB",
155 "AssignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
156 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
157 private List<OrchestrationFlow> replaceVfModuleWithFabricOrchFlows = createFlowList("DeleteFabricConfigurationBB",
158 "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB",
159 "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB", "AssignVfModuleBB",
160 "CreateVfModuleBB", "ActivateVfModuleBB", "AddFabricConfigurationBB", "CreateVolumeGroupBB",
161 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
164 public void before() throws Exception {
165 execution = new DelegateExecutionFake();
166 org.onap.aai.domain.yang.ServiceInstance servInstance = new org.onap.aai.domain.yang.ServiceInstance();
167 servInstance.setServiceInstanceId("TEST");
168 when(bbSetupUtils.getAAIServiceInstanceByName(anyString(), anyObject())).thenReturn(servInstance);
169 workflowAction.setBbInputSetupUtils(bbSetupUtils);
170 workflowAction.setBbInputSetup(bbInputSetup);
177 public void selectExecutionListALaCarteNetworkCreateTest() throws Exception {
178 String gAction = "createInstance";
179 String resource = "Network";
180 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
181 initExecution(gAction, bpmnRequest, true);
182 execution.setVariable("requestUri", "v6/networks/123");
184 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
185 List<OrchestrationFlow> orchFlows =
186 createFlowList("AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
187 northBoundRequest.setOrchestrationFlowList(orchFlows);
189 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
190 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
191 workflowAction.selectExecutionList(execution);
192 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
193 assertEqualsBulkFlowName(ebbs, "AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
197 public void selectExecutionListALaCarteNetworkDeleteTest() throws Exception {
198 String gAction = "deleteInstance";
199 String resource = "Network";
200 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
201 initExecution(gAction, bpmnRequest, true);
202 execution.setVariable("requestUri", "v6/networks/123");
204 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
205 List<OrchestrationFlow> orchFlows =
206 createFlowList("DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
207 northBoundRequest.setOrchestrationFlowList(orchFlows);
209 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
210 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
211 workflowAction.selectExecutionList(execution);
212 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
213 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
217 public void selectExecutionListALaCarteServiceCreateTest() throws Exception {
218 String gAction = "createInstance";
219 String resource = "Service";
220 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
221 initExecution(gAction, bpmnRequest, true);
222 execution.setVariable("requestUri", "v6/serviceInstances/123");
225 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
226 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "ActivateServiceInstanceBB");
227 northBoundRequest.setOrchestrationFlowList(orchFlows);
229 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
230 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
231 workflowAction.selectExecutionList(execution);
232 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
233 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
237 public void selectExecutionListDuplicateNameExceptionTest() throws Exception {
238 String gAction = "createInstance";
239 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
240 initExecution(gAction, bpmnRequest, true);
241 execution.setVariable("requestUri", "v6/serviceInstances");
243 doThrow(new DuplicateNameException(
244 "serviceInstance with name (instanceName) and different version id (3c40d244-808e-42ca-b09a-256d83d19d0a) already exists. The name must be unique."))
245 .when(SPY_workflowAction).validateResourceIdInAAI(anyString(), eq(WorkflowType.SERVICE),
246 eq("test"), any(RequestDetails.class), any(WorkflowResourceIds.class));
248 SPY_workflowAction.selectExecutionList(execution);
249 assertEquals(execution.getVariable("WorkflowActionErrorMessage"),
250 "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.");
252 // verify default values are present in failure case
253 assertEquals(true, execution.getVariable("isTopLevelFlow"));
254 assertEquals(false, execution.getVariable("sentSyncResponse"));
258 * SERVICE MACRO TESTS
261 public void selectExecutionListServiceMacroAssignTest() throws Exception {
262 String gAction = "assignInstance";
263 String resource = "Service";
264 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
265 initExecution(gAction, bpmnRequest, false);
266 execution.setVariable("requestUri", "v6/serviceInstances/123");
268 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
269 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
270 "AssignVolumeGroupBB", "AssignVfModuleBB");
271 northBoundRequest.setOrchestrationFlowList(orchFlows);
273 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
274 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
275 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
276 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
277 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
278 HeatTemplate volumeHeatTemplate = new HeatTemplate();
279 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
280 vfModuleCustomization.setVfModule(vfModule);
282 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
283 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
284 HeatEnvironment heatEnvironment = new HeatEnvironment();
285 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
286 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
287 HeatTemplate moduleHeatTemplate = new HeatTemplate();
288 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
289 vfModuleCustomization2.setVfModule(vfModule2);
291 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
292 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
294 when(userParamsServiceTraversal.getResourceListFromUserParams(any(), anyList(), anyString(), anyString()))
295 .thenReturn(prepareListWithResources());
296 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
297 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
298 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
299 .thenReturn(vfModuleCustomization);
300 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
301 .thenReturn(vfModuleCustomization2);
302 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
303 .thenReturn(vfModuleCustomization3);
304 workflowAction.selectExecutionList(execution);
305 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
306 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
307 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
311 public void selectExecutionListServiceMacroAssignNoCloudTest() throws Exception {
312 String gAction = "assignInstance";
313 String resource = "Service";
314 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_NO_CLOUD_JSON);
315 initExecution(gAction, bpmnRequest, false);
316 execution.setVariable("requestUri", "v6/serviceInstances/123");
318 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
319 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
320 "AssignVolumeGroupBB", "AssignVfModuleBB");
321 northBoundRequest.setOrchestrationFlowList(orchFlows);
323 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
324 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
325 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
326 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
327 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
328 HeatTemplate volumeHeatTemplate = new HeatTemplate();
329 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
330 vfModuleCustomization.setVfModule(vfModule);
332 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
333 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
334 HeatEnvironment heatEnvironment = new HeatEnvironment();
335 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
336 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
337 HeatTemplate moduleHeatTemplate = new HeatTemplate();
338 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
339 vfModuleCustomization2.setVfModule(vfModule2);
341 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
342 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
344 when(userParamsServiceTraversal.getResourceListFromUserParams(any(), anyList(), anyString(), anyString()))
345 .thenReturn(prepareListWithResources());
346 when(environment.getProperty("org.onap.so.cloud-owner")).thenReturn("att-aic");
347 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
348 false, "att-aic")).thenReturn(northBoundRequest);
349 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
350 .thenReturn(vfModuleCustomization);
351 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
352 .thenReturn(vfModuleCustomization2);
353 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
354 .thenReturn(vfModuleCustomization3);
355 workflowAction.selectExecutionList(execution);
356 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
357 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
358 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
362 public void selectExecutionListServiceMacroActivateTest() throws Exception {
363 String gAction = "activateInstance";
364 String resource = "Service";
365 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
366 initExecution(gAction, bpmnRequest, false);
367 execution.setVariable("requestUri", "v6/serviceInstances/si0");
369 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
370 List<OrchestrationFlow> orchFlows =
371 createFlowList("CreateNetworkBB", "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
372 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "ActivateServiceInstanceBB");
373 northBoundRequest.setOrchestrationFlowList(orchFlows);
375 ServiceInstance serviceInstanceAAI = new ServiceInstance();
376 serviceInstanceAAI.setServiceInstanceId("si0");
377 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
378 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
379 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
380 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
381 vnf.setVnfId("vnf0");
383 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
384 vnf.getVfModules().add(vfModule);
385 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
386 vnf.getVfModules().add(vfModule2);
388 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
389 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
390 volumeGroup.setVolumeGroupId("volumeGroup0");
391 vnf.getVolumeGroups().add(volumeGroup);
393 serviceInstanceMSO.getVnfs().add(vnf);
395 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("si0");
396 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
397 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
398 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
399 workflowAction.selectExecutionList(execution);
400 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
401 assertEqualsBulkFlowName(ebbs, "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
402 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
403 "ActivateServiceInstanceBB");
404 assertEquals("volumeGroup0", ebbs.get(0).getWorkflowResourceIds().getVolumeGroupId());
405 assertEquals("volumeGroup0", ebbs.get(1).getWorkflowResourceIds().getVolumeGroupId());
406 assertEquals("testVfModuleId1", ebbs.get(2).getWorkflowResourceIds().getVfModuleId());
407 assertEquals("testVfModuleId2", ebbs.get(3).getWorkflowResourceIds().getVfModuleId());
408 assertEquals("testVfModuleId1", ebbs.get(4).getWorkflowResourceIds().getVfModuleId());
409 assertEquals("testVfModuleId2", ebbs.get(5).getWorkflowResourceIds().getVfModuleId());
410 assertEquals("vnf0", ebbs.get(6).getWorkflowResourceIds().getVnfId());
411 assertEquals("si0", ebbs.get(7).getWorkflowResourceIds().getServiceInstanceId());
415 public void selectExecutionListServiceMacroDeactivateTest() throws Exception {
416 String gAction = "deactivateInstance";
417 String resource = "Service";
418 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
419 initExecution(gAction, bpmnRequest, false);
420 execution.setVariable("requestUri", "v6/serviceInstances/123");
422 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
423 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateServiceInstanceBB");
424 northBoundRequest.setOrchestrationFlowList(orchFlows);
426 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
427 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
428 workflowAction.selectExecutionList(execution);
429 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
430 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(), "DeactivateServiceInstanceBB");
434 public void selectExecutionListServiceMacroEmptyServiceTest() throws Exception {
435 String gAction = "createInstance";
436 String resource = "Service";
437 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
438 initExecution(gAction, bpmnRequest, false);
439 execution.setVariable("requestUri", "v6/serviceInstances/123");
441 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
442 northBoundRequest.setIsToplevelflow(true);
443 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
444 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
445 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
446 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
447 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
448 northBoundRequest.setOrchestrationFlowList(orchFlows);
450 Service service = new Service();
451 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
452 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
453 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
454 workflowAction.selectExecutionList(execution);
455 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
456 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
460 public void selectExecutionListServiceMacroCreateJustNetworkTest() throws Exception {
461 String gAction = "createInstance";
462 String resource = "Service";
463 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
464 initExecution(gAction, bpmnRequest, false);
465 execution.setVariable("requestUri", "v6/serviceInstances/123");
467 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
468 northBoundRequest.setIsToplevelflow(true);
469 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
470 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
471 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
472 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
473 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
474 northBoundRequest.setOrchestrationFlowList(orchFlows);
476 Service service = new Service();
477 NetworkResourceCustomization networkCustomization = new NetworkResourceCustomization();
478 networkCustomization.setModelCustomizationUUID("1234");
479 service.getNetworkCustomizations().add(networkCustomization);
480 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
481 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
482 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
483 workflowAction.selectExecutionList(execution);
484 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
485 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignNetworkBB", "CreateNetworkBB",
486 "ActivateNetworkBB", "ActivateServiceInstanceBB");
490 public void selectExecutionListServiceMacroCreateWithNetworkCollectionTest() throws Exception {
491 String gAction = "createInstance";
492 String resource = "Service";
493 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
494 initExecution(gAction, bpmnRequest, false);
495 execution.setVariable("requestUri", "v6/serviceInstances/123");
497 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
498 northBoundRequest.setIsToplevelflow(true);
499 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
500 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
501 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
502 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
503 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
504 northBoundRequest.setOrchestrationFlowList(orchFlows);
506 Service service = new Service();
507 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
508 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
509 networkCust.setModelCustomizationUUID("123");
510 networkCustomizations.add(networkCust);
511 service.setNetworkCustomizations(networkCustomizations);
512 NetworkCollectionResourceCustomization collectionResourceCustomization =
513 new NetworkCollectionResourceCustomization();
514 collectionResourceCustomization.setModelCustomizationUUID("123");
516 CollectionResource collectionResource = new CollectionResource();
517 collectionResource.setToscaNodeType("NetworkCollection");
518 InstanceGroup instanceGroup = new InstanceGroup();
519 instanceGroup.setToscaNodeType("NetworkCollectionResource");
520 instanceGroup.setCollectionNetworkResourceCustomizations(new ArrayList<>());
521 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
522 new CollectionNetworkResourceCustomization();
523 collectionNetworkResourceCust.setModelCustomizationUUID("123");
524 collectionNetworkResourceCust.setNetworkResourceCustomization(collectionResourceCustomization);
525 instanceGroup.getCollectionNetworkResourceCustomizations().add(collectionNetworkResourceCust);
526 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
527 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
528 new CollectionResourceInstanceGroupCustomization();
529 collectionInstanceGroupCustomization.setModelCustomizationUUID("123");
530 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
531 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
532 collectionInstanceGroupCustomization.setInstanceGroup(instanceGroup);
533 collectionInstanceGroupCustomization.setCollectionResourceCust(collectionResourceCustomization);
534 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
535 collectionResource.setInstanceGroup(instanceGroup);
536 collectionResourceCustomization.setCollectionResource(collectionResource);;
537 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
538 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
539 doReturn(collectionResourceCustomization).when(catalogDbClient)
540 .getNetworkCollectionResourceCustomizationByID("123");
541 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
542 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
543 workflowAction.selectExecutionList(execution);
544 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
545 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "CreateNetworkCollectionBB", "AssignNetworkBB",
546 "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
547 "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB",
548 "ActivateServiceInstanceBB");
549 assertEquals("Network id not empty", !ebbs.get(2).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
550 assertEquals("Network id not empty", !ebbs.get(3).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
551 assertEquals("Network id not empty", !ebbs.get(4).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
552 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
553 ebbs.get(2).getWorkflowResourceIds().getNetworkId() == ebbs.get(3).getWorkflowResourceIds()
555 && ebbs.get(3).getWorkflowResourceIds().getNetworkId() == ebbs.get(4).getWorkflowResourceIds()
558 assertEquals("Network id not empty", !ebbs.get(5).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
559 assertEquals("Network id not empty", !ebbs.get(6).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
560 assertEquals("Network id not empty", !ebbs.get(7).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
561 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
562 ebbs.get(5).getWorkflowResourceIds().getNetworkId() == ebbs.get(6).getWorkflowResourceIds()
564 && ebbs.get(6).getWorkflowResourceIds().getNetworkId() == ebbs.get(7).getWorkflowResourceIds()
567 assertEquals("Network id not empty", !ebbs.get(8).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
568 assertEquals("Network id not empty", !ebbs.get(9).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
569 assertEquals("Network id not empty", !ebbs.get(10).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
570 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
571 ebbs.get(8).getWorkflowResourceIds().getNetworkId() == ebbs.get(9).getWorkflowResourceIds()
573 && ebbs.get(9).getWorkflowResourceIds().getNetworkId() == ebbs.get(10).getWorkflowResourceIds()
579 public void selectExecutionListServiceMacroCreateWithUserParams() throws Exception {
580 String gAction = "createInstance";
581 String resource = "Service";
582 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
583 initExecution(gAction, bpmnRequest, false);
584 execution.setVariable("requestUri", "v6/serviceInstances/123");
586 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
587 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
588 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
589 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
590 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
591 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
592 northBoundRequest.setOrchestrationFlowList(orchFlows);
594 Service service = new Service();
595 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
597 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
598 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
599 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
600 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
601 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
602 HeatTemplate volumeHeatTemplate = new HeatTemplate();
603 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
604 vfModuleCustomization.setVfModule(vfModule);
606 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
607 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
608 HeatEnvironment heatEnvironment = new HeatEnvironment();
609 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
610 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
611 HeatTemplate moduleHeatTemplate = new HeatTemplate();
612 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
613 vfModuleCustomization2.setVfModule(vfModule2);
615 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
616 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
618 when(userParamsServiceTraversal.getResourceListFromUserParams(any(), anyList(), anyString(), anyString()))
619 .thenReturn(prepareListWithResources());
620 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
621 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
622 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
623 .thenReturn(vfModuleCustomization);
624 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
625 .thenReturn(vfModuleCustomization2);
626 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
627 .thenReturn(vfModuleCustomization3);
628 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
629 workflowAction.selectExecutionList(execution);
630 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
631 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
632 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB", "CreateVolumeGroupBB",
633 "ActivateVolumeGroupBB", "CreateVfModuleBB", "CreateVfModuleBB", "CreateVfModuleBB",
634 "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
635 "ActivateServiceInstanceBB");
637 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
638 int randomUUIDLength = UUID.randomUUID().toString().length();
639 assertEquals(randomUUIDLength, ebbs.get(1).getWorkflowResourceIds().getVnfId().length());
640 assertEquals(randomUUIDLength, ebbs.get(2).getWorkflowResourceIds().getVolumeGroupId().length());
641 assertEquals(randomUUIDLength, ebbs.get(3).getWorkflowResourceIds().getVfModuleId().length());
642 assertEquals(randomUUIDLength, ebbs.get(4).getWorkflowResourceIds().getVfModuleId().length());
643 assertEquals(randomUUIDLength, ebbs.get(5).getWorkflowResourceIds().getVfModuleId().length());
644 assertEquals(randomUUIDLength, ebbs.get(6).getWorkflowResourceIds().getVolumeGroupId().length());
645 assertEquals(randomUUIDLength, ebbs.get(7).getWorkflowResourceIds().getVolumeGroupId().length());
646 assertEquals(randomUUIDLength, ebbs.get(8).getWorkflowResourceIds().getVfModuleId().length());
647 assertEquals(randomUUIDLength, ebbs.get(9).getWorkflowResourceIds().getVfModuleId().length());
648 assertEquals(randomUUIDLength, ebbs.get(10).getWorkflowResourceIds().getVfModuleId().length());
649 assertEquals(randomUUIDLength, ebbs.get(11).getWorkflowResourceIds().getVfModuleId().length());
650 assertEquals(randomUUIDLength, ebbs.get(12).getWorkflowResourceIds().getVfModuleId().length());
651 assertEquals(randomUUIDLength, ebbs.get(13).getWorkflowResourceIds().getVfModuleId().length());
652 assertEquals(randomUUIDLength, ebbs.get(14).getWorkflowResourceIds().getVnfId().length());
653 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
654 assertEquals(true, execution.getVariable("homing"));
658 public void selectExecutionListServiceMacroDeleteTest() throws Exception {
659 String gAction = "deleteInstance";
660 String resource = "Service";
661 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
662 initExecution(gAction, bpmnRequest, false);
663 execution.setVariable("requestUri", "v6/serviceInstances/123");
665 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
666 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
667 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivatePnfBB",
668 "DeactivateNetworkBB", "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB",
669 "UnassignVfModuleBB", "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB",
670 "UnassignServiceInstanceBB");
671 northBoundRequest.setOrchestrationFlowList(orchFlows);
673 ServiceInstance serviceInstanceAAI = new ServiceInstance();
674 serviceInstanceAAI.setServiceInstanceId("aaisi123");
675 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
676 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
677 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
678 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
679 org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf pnf =
680 new org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf();
681 vnf.setVnfId("vnfId123");
682 pnf.setPnfId("pnfId123");
684 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
685 vnf.getVfModules().add(vfModule);
686 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
687 vnf.getVfModules().add(vfModule2);
689 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
690 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
691 volumeGroup.setVolumeGroupId("vg123");
692 vnf.getVolumeGroups().add(volumeGroup);
694 serviceInstanceMSO.getVnfs().add(vnf);
695 serviceInstanceMSO.getPnfs().add(pnf);
697 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
698 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
699 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
700 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
701 workflowAction.selectExecutionList(execution);
702 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
703 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
704 "DeleteVfModuleBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB",
705 "DeactivatePnfBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB", "UnassignVfModuleBB",
706 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignServiceInstanceBB");
710 public void selectExecutionListServiceMacroDeleteWithPnfTest() throws Exception {
711 String gAction = "deleteInstance";
712 String resource = "Service";
713 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
714 initExecution(gAction, bpmnRequest, false);
715 execution.setVariable("requestUri", "v6/serviceInstances/123");
717 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
718 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
719 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivatePnfBB",
720 "DeactivateNetworkBB", "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB",
721 "UnassignVfModuleBB", "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB",
722 "UnassignServiceInstanceBB");
723 northBoundRequest.setOrchestrationFlowList(orchFlows);
725 ServiceInstance serviceInstanceAAI = new ServiceInstance();
726 serviceInstanceAAI.setServiceInstanceId("aaisi123");
727 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
728 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
729 org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf pnf =
730 new org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf();
731 pnf.setPnfId("pnfId123");
733 serviceInstanceMSO.getPnfs().add(pnf);
735 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
736 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
737 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
738 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
739 workflowAction.selectExecutionList(execution);
740 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
741 assertEqualsBulkFlowName(ebbs, "DeactivatePnfBB", "DeactivateServiceInstanceBB", "UnassignServiceInstanceBB");
745 public void selectExecutionListServiceMacroUnassignTest() throws Exception {
746 String gAction = "unassignInstance";
747 String resource = "Service";
748 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
749 initExecution(gAction, bpmnRequest, false);
750 execution.setVariable("requestUri", "v6/serviceInstances/123");
752 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
753 List<OrchestrationFlow> orchFlows = createFlowList("UnassignVfModuleBB", "UnassignVolumeGroupBB",
754 "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
755 northBoundRequest.setOrchestrationFlowList(orchFlows);
757 ServiceInstance serviceInstanceAAI = new ServiceInstance();
758 serviceInstanceAAI.setServiceInstanceId("aaisi123");
759 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
760 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
761 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
762 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
763 vnf.setVnfId("vnfId123");
765 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
766 vnf.getVfModules().add(vfModule);
767 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
768 vnf.getVfModules().add(vfModule2);
770 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
771 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
772 volumeGroup.setVolumeGroupId("vg123");
773 vnf.getVolumeGroups().add(volumeGroup);
775 serviceInstanceMSO.getVnfs().add(vnf);
777 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
778 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
779 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
780 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
781 workflowAction.selectExecutionList(execution);
782 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
783 assertEqualsBulkFlowName(ebbs, "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
784 "UnassignVnfBB", "UnassignServiceInstanceBB");
788 public void selectExecutionListServiceMacroDeleteNetworkCollectionTest() throws Exception {
789 String gAction = "deleteInstance";
790 String resource = "Service";
791 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
792 initExecution(gAction, bpmnRequest, false);
793 execution.setVariable("requestUri", "v6/serviceInstances/123");
795 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
796 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
797 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
798 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
799 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
800 northBoundRequest.setOrchestrationFlowList(orchFlows);
802 ServiceInstance serviceInstanceAAI = new ServiceInstance();
803 serviceInstanceAAI.setServiceInstanceId("aaisi123");
804 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
805 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
807 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network =
808 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
809 network.setNetworkId("123");
810 serviceInstanceMSO.getNetworks().add(network);
811 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network2 =
812 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
813 network2.setNetworkId("321");
814 serviceInstanceMSO.getNetworks().add(network2);
816 Collection collection = new Collection();
817 serviceInstanceMSO.setCollection(collection);
819 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
820 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
821 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
822 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
823 workflowAction.selectExecutionList(execution);
824 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
825 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
826 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeleteNetworkCollectionBB",
827 "DeactivateServiceInstanceBB", "UnassignServiceInstanceBB");
831 public void selectExecutionListVnfMacroRecreateTest() throws Exception {
832 String gAction = "recreateInstance";
833 String resource = "Vnf";
834 String bpmnRequest = readBpmnRequestFromFile(MACRO_VNF_MACRO_REPLACE_JSON);
835 initExecution(gAction, bpmnRequest, false);
836 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/recreate");
837 execution.setVariable("serviceInstanceId", "123");
838 execution.setVariable("vnfId", "1234");
840 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
841 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
842 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
843 "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB",
844 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
845 "AAIUnsetVnfInMaintBB");
846 northBoundRequest.setOrchestrationFlowList(orchFlows);
848 ServiceInstance serviceInstanceAAI = new ServiceInstance();
849 serviceInstanceAAI.setServiceInstanceId("123");
850 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
851 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
852 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
853 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
854 vnf.setVnfId("1234");
856 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
857 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
858 vfModule.setVfModuleId("vfModule1");
859 vnf.getVfModules().add(vfModule);
860 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
861 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
862 vfModule2.setVfModuleId("vfModule2");
863 vnf.getVfModules().add(vfModule2);
865 serviceInstanceMSO.getVnfs().add(vnf);
867 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
868 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
869 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
870 false, "cloud-owner")).thenReturn(northBoundRequest);
871 workflowAction.selectExecutionList(execution);
872 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
873 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateVfModuleBB",
874 "DeactivateVfModuleBB", "DeleteVfModuleBB", "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB",
875 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
876 "AAIUnsetVnfInMaintBB");
880 public void selectExecutionListVnfMacroReplaceTest() throws Exception {
881 String gAction = "replaceInstance";
882 String resource = "Vnf";
883 String bpmnRequest = readBpmnRequestFromFile(MACRO_VNF_MACRO_REPLACE_JSON);
884 initExecution(gAction, bpmnRequest, false);
885 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/replace");
886 execution.setVariable("serviceInstanceId", "123");
887 execution.setVariable("vnfId", "1234");
889 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
890 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
891 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
892 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
893 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB",
894 "ChangeModelVnfBB", "ActivateVnfBB", "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB",
895 "AAIUnsetVnfInMaintBB");
896 northBoundRequest.setOrchestrationFlowList(orchFlows);
898 ServiceInstance serviceInstanceAAI = new ServiceInstance();
899 serviceInstanceAAI.setServiceInstanceId("123");
900 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
901 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
902 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
903 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
904 vnf.setVnfId("1234");
905 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
906 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
907 vfModule.setVfModuleId("vfModule1");
908 vnf.getVfModules().add(vfModule);
909 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
910 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
911 vfModule2.setVfModuleId("vfModule2");
912 vnf.getVfModules().add(vfModule2);
913 serviceInstanceMSO.getVnfs().add(vnf);
914 VfModule vfModuleAAI = new VfModule();
915 vfModuleAAI.setVfModuleId("vfModule2");
916 RelationshipList relationshipList = new RelationshipList();
917 Relationship relationship = new Relationship();
918 relationshipList.getRelationship().add(relationship);
919 vfModuleAAI.setRelationshipList(relationshipList);
920 Relationships relationships = new Relationships("abc");
921 Configuration config = new Configuration();
922 config.setConfigurationId("configId");
923 Optional<Configuration> configOp = Optional.of(config);
924 Optional<Relationships> relationshipsOp = Optional.of(relationships);
926 doReturn(relationshipsOp).when(workflowActionUtils).extractRelationshipsVnfc(isA(Relationships.class));
927 doReturn(configOp).when(workflowActionUtils).extractRelationshipsConfiguration(isA(Relationships.class));
928 doReturn(vfModuleAAI).when(bbSetupUtils).getAAIVfModule("1234", "vfModule2");
929 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
930 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
931 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
932 false, "cloud-owner")).thenReturn(northBoundRequest);
933 workflowAction.selectExecutionList(execution);
934 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
935 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateFabricConfigurationBB",
936 "UnassignFabricConfigurationBB", "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
937 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "ChangeModelVfModuleBB",
938 "CreateVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB",
939 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ChangeModelVnfBB", "ActivateVnfBB",
940 "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
941 for (ExecuteBuildingBlock executeBuildingBlock : ebbs) {
942 assertEquals("123", executeBuildingBlock.getWorkflowResourceIds().getServiceInstanceId());
948 public void selectExecutionListNetworkCollectionMacroCreate() throws Exception {
949 String gAction = "createInstance";
950 String resource = "NetworkCollection";
951 String bpmnRequest = readBpmnRequestFromFile(MACRO_CREATE_NETWORK_COLLECTION_JSON);
952 initExecution(gAction, bpmnRequest, false);
953 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
955 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
956 List<OrchestrationFlow> orchFlows = createFlowList("CreateNetworkCollectionBB", "AssignNetworkBB",
957 "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB");
958 northBoundRequest.setOrchestrationFlowList(orchFlows);
960 Service service = new Service();
961 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
962 CollectionResource collectionResource = new CollectionResource();
963 collectionResource.setToscaNodeType("Data NetworkCollection Data");
964 collectionResourceCustomization.setCollectionResource(collectionResource);
965 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
967 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
968 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
969 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
970 workflowAction.selectExecutionList(execution);
971 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
972 assertEqualsBulkFlowName(ebbs, "CreateNetworkCollectionBB", "AssignNetworkBB", "CreateNetworkBB",
973 "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
974 "ActivateNetworkCollectionBB");
979 public void selectExecutionListNetworkCollectionMacroDelete() throws Exception {
980 String gAction = "deleteInstance";
981 String resource = "NetworkCollection";
982 String bpmnRequest = readBpmnRequestFromFile(MACRO_CREATE_NETWORK_COLLECTION_JSON);
983 initExecution(gAction, bpmnRequest, false);
984 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
986 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
987 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateNetworkBB", "DeleteNetworkBB",
988 "UnassignNetworkBB", "DeactivateNetworkCollectionBB", "DeleteNetworkCollectionBB");
989 northBoundRequest.setOrchestrationFlowList(orchFlows);
991 Service service = new Service();
992 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
993 CollectionResource collectionResource = new CollectionResource();
994 collectionResource.setToscaNodeType("Data NetworkCollection Data");
995 collectionResourceCustomization.setCollectionResource(collectionResource);
996 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
998 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
999 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1000 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1001 workflowAction.selectExecutionList(execution);
1002 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1003 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1004 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeactivateNetworkCollectionBB",
1005 "DeleteNetworkCollectionBB");
1009 public void selectExecutionListALaCarteVfModuleNoFabricCreateTest() throws Exception {
1010 String gAction = "createInstance";
1011 String resource = "VfModule";
1012 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1013 initExecution(gAction, bpmnRequest, true);
1014 execution.setVariable("requestUri",
1015 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1017 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1018 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1019 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1020 northBoundRequest.setOrchestrationFlowList(orchFlows);
1022 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1023 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1024 workflowAction.selectExecutionList(execution);
1025 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1026 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB");
1030 public void selectExecutionListALaCarteVfModuleFabricCreateTest() throws Exception {
1031 String gAction = "createInstance";
1032 String resource = "VfModule";
1033 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1034 initExecution(gAction, bpmnRequest, true);
1035 execution.setVariable("requestUri",
1036 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1038 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1039 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1040 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1041 northBoundRequest.setOrchestrationFlowList(orchFlows);
1043 List<CvnfcCustomization> cvnfcCustomizations = new ArrayList<CvnfcCustomization>();
1044 CvnfcCustomization cvnfcCustomization = new CvnfcCustomization();
1045 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1046 new CvnfcConfigurationCustomization();
1047 ConfigurationResource configurationResource = new ConfigurationResource();
1048 configurationResource.setToscaNodeType("FabricConfiguration");
1049 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1050 vnfVfmoduleCvnfcConfigurationCustomization.setModelInstanceName("modelInstanceName1");
1051 vnfVfmoduleCvnfcConfigurationCustomization.setCvnfcCustomization(cvnfcCustomization);
1052 List<CvnfcConfigurationCustomization> custSet = new ArrayList<CvnfcConfigurationCustomization>();
1053 custSet.add(vnfVfmoduleCvnfcConfigurationCustomization);
1054 cvnfcCustomization.setCvnfcConfigurationCustomization(custSet);
1055 cvnfcCustomization.setDescription("description");
1056 cvnfcCustomizations.add(cvnfcCustomization);
1058 CvnfcCustomization cvnfcCustomization2 = new CvnfcCustomization();
1059 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization2 =
1060 new CvnfcConfigurationCustomization();
1061 ConfigurationResource configurationResource2 = new ConfigurationResource();
1062 configurationResource2.setToscaNodeType("FabricConfiguration");
1063 vnfVfmoduleCvnfcConfigurationCustomization2.setConfigurationResource(configurationResource2);
1064 vnfVfmoduleCvnfcConfigurationCustomization2.setModelInstanceName("modelInstanceName2");
1065 vnfVfmoduleCvnfcConfigurationCustomization2.setCvnfcCustomization(cvnfcCustomization2);
1066 List<CvnfcConfigurationCustomization> custSet2 = new ArrayList<CvnfcConfigurationCustomization>();
1067 custSet2.add(vnfVfmoduleCvnfcConfigurationCustomization2);
1068 cvnfcCustomization2.setCvnfcConfigurationCustomization(custSet2);
1069 cvnfcCustomization2.setDescription("description2");
1070 cvnfcCustomizations.add(cvnfcCustomization2);
1072 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1073 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1074 // when(catalogDbClient.getCvnfcCustomizationByVnfCustomizationUUIDAndVfModuleCustomizationUUID("fc25201d-36d6-43a3-8d39-fdae88e526ae",
1075 // "9a6d01fd-19a7-490a-9800-460830a12e0b")).thenReturn(cvnfcCustomizations);
1076 workflowAction.selectExecutionList(execution);
1077 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1078 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1079 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "AssignFabricConfigurationBB",
1080 "ActivateFabricConfigurationBB");
1084 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceTest() throws Exception {
1085 String gAction = "replaceInstance";
1086 String resource = "VfModule";
1087 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1088 initExecution(gAction, bpmnRequest, true);
1089 execution.setVariable("requestUri",
1090 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1092 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1093 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1094 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1095 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1096 workflowAction.selectExecutionList(execution);
1097 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1099 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1100 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1101 "ChangeModelServiceInstanceBB");
1105 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1106 String gAction = "replaceInstanceRetainAssignments";
1107 String resource = "VfModule";
1108 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1109 initExecution(gAction, bpmnRequest, true);
1110 execution.setVariable("requestUri",
1111 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1113 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1114 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1115 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1116 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1117 workflowAction.selectExecutionList(execution);
1118 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1120 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1121 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1125 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceTest() throws Exception {
1126 String gAction = "replaceInstance";
1127 String resource = "VfModule";
1128 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1129 initExecution(gAction, bpmnRequest, true);
1130 execution.setVariable("requestUri",
1131 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1132 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1133 execution.setVariable("vfModuleId", "1234");
1135 VolumeGroup volumeGroup = new VolumeGroup();
1136 volumeGroup.setVolumeGroupId("volumeGroupId");
1137 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1138 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1139 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1140 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1141 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1142 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1143 workflowAction.selectExecutionList(execution);
1144 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1146 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1147 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVfModuleBB",
1148 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1152 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceRetainAssignmentsTest()
1154 String gAction = "replaceInstanceRetainAssignments";
1155 String resource = "VfModule";
1156 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1157 initExecution(gAction, bpmnRequest, true);
1158 execution.setVariable("requestUri",
1159 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1160 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1161 execution.setVariable("vfModuleId", "1234");
1163 VolumeGroup volumeGroup = new VolumeGroup();
1164 volumeGroup.setVolumeGroupId("volumeGroupId");
1165 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1166 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1168 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1169 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1170 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1171 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1172 workflowAction.selectExecutionList(execution);
1173 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1175 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1176 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
1177 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1181 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceTest() throws Exception {
1182 String gAction = "replaceInstance";
1183 String resource = "VfModule";
1184 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1185 initExecution(gAction, bpmnRequest, true);
1186 execution.setVariable("requestUri",
1187 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1188 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1189 execution.setVariable("vfModuleId", "1234");
1191 VolumeGroup volumeGroup = new VolumeGroup();
1192 volumeGroup.setVolumeGroupId("volumeGroupId");
1193 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1194 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1196 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1197 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1198 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1199 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1200 vfModuleCustomization.setVfModule(vfModule);
1201 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1202 .thenReturn(vfModuleCustomization);
1204 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1205 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1206 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1207 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1208 workflowAction.selectExecutionList(execution);
1209 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1211 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1212 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1213 "ChangeModelServiceInstanceBB");
1217 public void selectExecutionListALaCarteVfModuleWithFabricKeepVolumeGroupReplaceTest() throws Exception {
1218 String gAction = "replaceInstance";
1219 String resource = "VfModule";
1220 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1221 initExecution(gAction, bpmnRequest, true);
1222 execution.setVariable("requestUri",
1223 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1224 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1225 execution.setVariable("vfModuleId", "1234");
1227 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1228 vnf.setVnfId("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1229 vnf.setModelCustomizationId("modelCustomizationId");
1230 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
1232 org.onap.aai.domain.yang.VfModule vfModuleFromAAI = new org.onap.aai.domain.yang.VfModule();
1233 vfModuleFromAAI.setModelCustomizationId("modelCustomizationId");
1234 vfModuleFromAAI.setVfModuleId("1234");
1235 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModuleFromAAI);
1237 VolumeGroup volumeGroup = new VolumeGroup();
1238 volumeGroup.setVolumeGroupId("volumeGroupId");
1239 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1240 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1242 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1243 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1244 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1245 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1246 vfModuleCustomization.setVfModule(vfModule);
1247 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1248 .thenReturn(vfModuleCustomization);
1249 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1250 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1251 vnfc.setModelInvariantId("modelInvariantId");
1252 vnfc.setVnfcName("testVnfcName");
1254 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(), any(), any());
1256 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1257 configuration.setConfigurationId("configurationId");
1258 configuration.setModelCustomizationId("modelCustimizationId");
1259 configuration.setConfigurationName("testConfigurationName");
1260 doReturn(configuration).when(SPY_workflowAction).getRelatedResourcesInVnfc(any(), any(), any());
1262 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1263 northBoundRequest.setOrchestrationFlowList(replaceVfModuleWithFabricOrchFlows);
1264 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1265 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1266 SPY_workflowAction.selectExecutionList(execution);
1267 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1269 assertEqualsBulkFlowName(ebbs, "DeleteFabricConfigurationBB", "DeactivateVfModuleBB", "DeleteVfModuleATTBB",
1270 "UnassignVFModuleBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1271 "AddFabricConfigurationBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1275 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1276 String gAction = "replaceInstanceRetainAssignments";
1277 String resource = "VfModule";
1278 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1279 initExecution(gAction, bpmnRequest, true);
1280 execution.setVariable("requestUri",
1281 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1282 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1283 execution.setVariable("vfModuleId", "1234");
1285 VolumeGroup volumeGroup = new VolumeGroup();
1286 volumeGroup.setVolumeGroupId("volumeGroupId");
1287 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1288 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1290 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1291 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1292 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1293 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1294 vfModuleCustomization.setVfModule(vfModule);
1295 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1296 .thenReturn(vfModuleCustomization);
1298 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1299 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1300 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1301 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1302 workflowAction.selectExecutionList(execution);
1303 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1305 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1306 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1310 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceTest() throws Exception {
1311 String gAction = "replaceInstance";
1312 String resource = "VfModule";
1313 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1314 initExecution(gAction, bpmnRequest, true);
1315 execution.setVariable("requestUri",
1316 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1317 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1318 execution.setVariable("vfModuleId", "1234");
1320 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1321 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1322 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1323 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1324 vfModuleCustomization.setVfModule(vfModule);
1325 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1326 .thenReturn(vfModuleCustomization);
1328 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1329 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1330 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1331 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1332 workflowAction.selectExecutionList(execution);
1333 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1335 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1336 "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1337 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1341 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceRetainAssignmentsTest()
1343 String gAction = "replaceInstanceRetainAssignments";
1344 String resource = "VfModule";
1345 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1346 initExecution(gAction, bpmnRequest, true);
1347 execution.setVariable("requestUri",
1348 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1349 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1350 execution.setVariable("vfModuleId", "1234");
1352 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1353 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1354 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1355 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1356 vfModuleCustomization.setVfModule(vfModule);
1357 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1358 .thenReturn(vfModuleCustomization);
1360 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1361 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1362 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1363 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1364 workflowAction.selectExecutionList(execution);
1365 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1367 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "AssignVolumeGroupBB",
1368 "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
1369 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1373 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceTest() throws Exception {
1374 String gAction = "replaceInstance";
1375 String resource = "VfModule";
1376 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_REPLACE_REBUILD_VOLUME_GROUPS_JSON);
1377 initExecution(gAction, bpmnRequest, true);
1378 execution.setVariable("requestUri",
1379 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1380 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1381 execution.setVariable("vfModuleId", "1234");
1383 VolumeGroup volumeGroup = new VolumeGroup();
1384 volumeGroup.setVolumeGroupId("volumeGroupId");
1385 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1386 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1388 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1389 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1390 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1391 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1392 vfModuleCustomization.setVfModule(vfModule);
1393 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1394 .thenReturn(vfModuleCustomization);
1396 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1397 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1398 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1399 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1400 workflowAction.selectExecutionList(execution);
1401 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1403 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1404 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
1405 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
1406 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1410 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1411 String gAction = "replaceInstanceRetainAssignments";
1412 String resource = "VfModule";
1413 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_REPLACE_REBUILD_VOLUME_GROUPS_JSON);
1414 initExecution(gAction, bpmnRequest, true);
1415 execution.setVariable("requestUri",
1416 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1417 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1418 execution.setVariable("vfModuleId", "1234");
1420 VolumeGroup volumeGroup = new VolumeGroup();
1421 volumeGroup.setVolumeGroupId("volumeGroupId");
1422 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1423 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1425 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1426 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1427 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1428 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1429 vfModuleCustomization.setVfModule(vfModule);
1430 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1431 .thenReturn(vfModuleCustomization);
1433 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1434 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1435 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1436 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1437 workflowAction.selectExecutionList(execution);
1438 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1440 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1441 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB", "ChangeModelVfModuleBB",
1442 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1443 "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1448 public void selectExecutionListALaCarteVfModuleFabricDeleteTest() throws Exception {
1449 String gAction = "deleteInstance";
1450 String resource = "VfModule";
1451 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1452 initExecution(gAction, bpmnRequest, true);
1453 execution.setVariable("requestUri",
1454 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1456 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1457 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1458 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1459 northBoundRequest.setOrchestrationFlowList(orchFlows);
1461 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1462 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1464 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1465 vnf.setVnfId("vnf0");
1466 vnf.setModelCustomizationId("modelCustomizationId");
1467 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1469 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1470 vfModule.setModelCustomizationId("modelCustomizationId");
1471 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1473 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1474 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1475 vnfc.setModelInvariantId("modelInvariantId");
1476 vnfc.setVnfcName("testVnfcName");
1478 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1481 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1482 configuration.setConfigurationId("configurationId");
1483 configuration.setModelCustomizationId("modelCustimizationId");
1484 configuration.setConfigurationName("testConfigurationName");
1485 doReturn(configuration).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1488 SPY_workflowAction.selectExecutionList(execution);
1489 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1490 assertEqualsBulkFlowName(ebbs, "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB",
1491 "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1495 public void getConfigBuildingBlocksNoVfModuleFabricDeleteTest() throws Exception {
1496 String gAction = "deleteInstance";
1497 ObjectMapper mapper = new ObjectMapper();
1498 WorkflowType resourceType = WorkflowType.VFMODULE;
1499 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1500 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1501 execution.setVariable("requestAction", gAction);
1502 execution.setVariable("bpmnRequest", bpmnRequest);
1503 execution.setVariable("vnfId", "1234");
1504 execution.setVariable("vfModuleId", "vfModuleId1234");
1505 execution.setVariable("requestUri",
1506 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1507 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1508 RequestDetails requestDetails = sIRequest.getRequestDetails();
1509 String requestAction = "deleteInstance";
1510 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1511 boolean aLaCarte = true;
1512 String apiVersion = "7";
1513 String vnfType = "vnfType";
1514 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1515 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1516 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1517 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1519 thrown.expect(AAIEntityNotFoundException.class);
1520 thrown.expectMessage(containsString(
1521 "No matching VfModule is found in Generic-Vnf in AAI for vnfId: 1234 and vfModuleId : vfModuleId1234"));
1523 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1524 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1526 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1527 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1528 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1529 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1531 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1532 vnf.setVnfId("vnf0");
1533 vnf.setModelCustomizationId("modelCustomizationId");
1534 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1536 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1537 vfModule.setModelCustomizationId("modelCustomizationId");
1538 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(null);
1540 SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1544 public void getConfigBuildingBlocksTest() throws Exception {
1545 String gAction = "deleteInstance";
1546 ObjectMapper mapper = new ObjectMapper();
1547 mapper.disable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES);
1549 WorkflowType resourceType = WorkflowType.VFMODULE;
1550 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1551 execution.setVariable("requestAction", gAction);
1552 String bpmnRequest =
1553 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1554 execution.setVariable("bpmnRequest", bpmnRequest);
1555 execution.setVariable("vnfId", "1234");
1556 execution.setVariable("vfModuleId", "vfModuleId1234");
1557 execution.setVariable("requestUri",
1558 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1559 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1560 RequestDetails requestDetails = sIRequest.getRequestDetails();
1561 String requestAction = "deleteInstance";
1562 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1563 boolean aLaCarte = true;
1564 String apiVersion = "7";
1565 String vnfType = "vnfType";
1566 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1567 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1568 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1569 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1571 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1572 "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
1574 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1575 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1576 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1577 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1579 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1580 vnf.setVnfId("vnf0");
1581 vnf.setModelCustomizationId("modelCustomizationId");
1582 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
1584 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1585 vfModule.setModelCustomizationId("modelCustomizationId");
1587 org.onap.aai.domain.yang.Configuration config1 = new org.onap.aai.domain.yang.Configuration();
1588 config1.setConfigurationId("config1");
1589 org.onap.aai.domain.yang.Configuration config2 = new org.onap.aai.domain.yang.Configuration();
1590 config2.setConfigurationId("config2");
1592 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1593 org.onap.aai.domain.yang.Vnfc vnfc1 = new org.onap.aai.domain.yang.Vnfc();
1594 vnfc1.setVnfcName("zauk53avetd02svm001");
1595 org.onap.aai.domain.yang.Vnfc vnfc2 = new org.onap.aai.domain.yang.Vnfc();
1596 vnfc2.setVnfcName("zauk53avetd02tvm001");
1600 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModule);
1601 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(),
1602 eq(org.onap.aai.domain.yang.Vnfc.class), eq(Types.VNFC));
1603 doReturn(config1).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc1),
1604 eq(org.onap.aai.domain.yang.Configuration.class), eq(Types.CONFIGURATION));
1605 doReturn(config2).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc2),
1606 eq(org.onap.aai.domain.yang.Configuration.class), eq(Types.CONFIGURATION));
1608 List<ExecuteBuildingBlock> results = SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1610 assertFalse(results.isEmpty());
1611 assertEquals(2, results.size());
1612 assertEquals("config1", results.get(0).getWorkflowResourceIds().getConfigurationId());
1613 assertEquals("config2", results.get(1).getWorkflowResourceIds().getConfigurationId());
1614 assertEquals("zauk53avetd02svm001", results.get(0).getConfigurationResourceKeys().getVnfcName());
1615 assertEquals("zauk53avetd02tvm001", results.get(1).getConfigurationResourceKeys().getVnfcName());
1619 public void getConfigBuildingBlocksNullConfigurationTest() throws Exception {
1620 String gAction = "deleteInstance";
1621 ObjectMapper mapper = new ObjectMapper();
1622 mapper.disable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES);
1624 WorkflowType resourceType = WorkflowType.VFMODULE;
1625 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1626 execution.setVariable("requestAction", gAction);
1627 String bpmnRequest =
1628 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1629 execution.setVariable("bpmnRequest", bpmnRequest);
1630 execution.setVariable("vnfId", "1234");
1631 execution.setVariable("vfModuleId", "vfModuleId1234");
1632 execution.setVariable("requestUri",
1633 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1634 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1635 RequestDetails requestDetails = sIRequest.getRequestDetails();
1636 String requestAction = "deleteInstance";
1637 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1638 boolean aLaCarte = true;
1639 String apiVersion = "7";
1640 String vnfType = "vnfType";
1641 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1642 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1643 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1644 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1646 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1647 "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
1649 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1650 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1651 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1652 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1654 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1655 vnf.setVnfId("vnf0");
1656 vnf.setModelCustomizationId("modelCustomizationId");
1657 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
1659 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1660 vfModule.setModelCustomizationId("modelCustomizationId");
1662 /* this is a test case where configuration for vnfc is null */
1663 org.onap.aai.domain.yang.Configuration config1 = null;
1664 org.onap.aai.domain.yang.Configuration config2 = new org.onap.aai.domain.yang.Configuration();
1665 config2.setConfigurationId("config2");
1667 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1668 org.onap.aai.domain.yang.Vnfc vnfc1 = new org.onap.aai.domain.yang.Vnfc();
1669 vnfc1.setVnfcName("zauk53avetd02svm001");
1670 org.onap.aai.domain.yang.Vnfc vnfc2 = new org.onap.aai.domain.yang.Vnfc();
1671 vnfc2.setVnfcName("zauk53avetd02tvm001");
1675 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModule);
1676 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(),
1677 eq(org.onap.aai.domain.yang.Vnfc.class), eq(Types.VNFC));
1678 doReturn(config1).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc1),
1679 eq(org.onap.aai.domain.yang.Configuration.class), eq(Types.CONFIGURATION));
1680 doReturn(config2).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc2),
1681 eq(org.onap.aai.domain.yang.Configuration.class), eq(Types.CONFIGURATION));
1683 List<ExecuteBuildingBlock> results = SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1685 assertFalse(results.isEmpty());
1686 assertEquals(1, results.size());
1687 assertEquals("config2", results.get(0).getWorkflowResourceIds().getConfigurationId());
1688 assertEquals("zauk53avetd02tvm001", results.get(0).getConfigurationResourceKeys().getVnfcName());
1692 public void selectExecutionListALaCarteVfModuleNoFabricDeleteTest() throws Exception {
1693 String gAction = "deleteInstance";
1694 String resource = "VfModule";
1695 String bpmnRequest = readBpmnRequestFromFile(VF_MODULE_CREATE_WITH_FABRIC_JSON);
1696 initExecution(gAction, bpmnRequest, true);
1697 execution.setVariable("requestUri",
1698 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1700 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1701 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1702 "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
1703 northBoundRequest.setOrchestrationFlowList(orchFlows);
1705 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1706 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1708 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1709 vnf.setVnfId("vnf0");
1710 vnf.setModelCustomizationId("modelCustomizationId");
1711 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1713 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1714 vfModule.setModelCustomizationId("modelCustomizationId");
1715 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1717 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1719 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1722 SPY_workflowAction.selectExecutionList(execution);
1723 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1724 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1728 public void selectExecutionListMacroResumeTest() throws Exception {
1729 String gAction = "createInstance";
1730 String resource = "Service";
1731 String bpmnRequest = readBpmnRequestFromFile(MACRO_ASSIGN_JSON);
1732 initExecution(gAction, bpmnRequest, false);
1733 execution.setVariable("requestUri", "v6/serviceInstances/123");
1735 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1736 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1737 northBoundRequest.setOrchestrationFlowList(orchFlows);
1739 Service service = new Service();
1740 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
1742 ServiceInstance si = new ServiceInstance();
1744 when(bbSetupUtils.getAAIServiceInstanceById("123")).thenReturn(si);
1745 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1747 String flowsToExecuteString =
1748 "[{\"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\"}}]";
1749 ObjectMapper om = new ObjectMapper();
1750 List<ExecuteBuildingBlock> flowsToExecute = null;
1752 ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
1753 flowsToExecute = Arrays.asList(asArray);
1754 } catch (Exception e) {
1755 e.printStackTrace();
1758 when(bbSetupUtils.loadOriginalFlowExecutionPath(anyString())).thenReturn(flowsToExecute);
1760 workflowAction.selectExecutionList(execution);
1761 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1762 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB");
1766 public void getRelatedResourcesInVfModuleTest() throws Exception {
1767 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1768 vnfc.setModelInvariantId("modelInvariantId");
1769 vnfc.setVnfcName("testVnfcName");
1771 String vfncPayload =
1772 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/vnfcResponse.json")));
1773 AAIResultWrapper vfncWrapper = new AAIResultWrapper(vfncPayload);
1775 String configurationPayload =
1776 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/configurationResponse.json")));
1777 AAIResultWrapper configurationWrapper = new AAIResultWrapper(configurationPayload);
1778 List<AAIResultWrapper> configurationResultWrappers = new ArrayList<AAIResultWrapper>();
1779 configurationResultWrappers.add(configurationWrapper);
1781 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().vnfc(vnfc.getVnfcName()));
1782 when(bbSetupUtils.getAAIResourceDepthOne(uri)).thenReturn(vfncWrapper);
1784 doReturn(configurationResultWrappers).when(SPY_workflowAction).getResultWrappersFromRelationships(anyObject(),
1786 org.onap.aai.domain.yang.Configuration configuration = SPY_workflowAction.getRelatedResourcesInVnfc(vnfc,
1787 org.onap.aai.domain.yang.Configuration.class, Types.CONFIGURATION);
1788 assertEquals("testConfigurationId", configuration.getConfigurationId());
1792 * WorkflowActionBB Tests
1796 public void pluralTest() {
1797 List<String> items = Arrays.asList("serviceInstances, Service", "vnfs, Vnf", "vfModules, VfModule",
1798 "networks, Network", "invalidNames, invalidNames");
1799 items.forEach(item -> {
1800 String[] split = item.split(",");
1801 String type = split[0].trim();
1802 String expected = split[1].trim();
1803 assertThat(workflowAction.convertTypeFromPlural(type), equalTo(expected));
1808 public void sortExecutionPathByObjectForVlanTaggingCreateTest() throws Exception {
1809 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1811 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("0");
1812 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1813 executeFlows.add(ebb);
1815 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("1");
1816 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1817 executeFlows.add(ebb2);
1819 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("0");
1820 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1821 executeFlows.add(ebb3);
1823 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("1");
1824 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1825 executeFlows.add(ebb4);
1827 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("0");
1828 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1829 executeFlows.add(ebb5);
1831 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("1");
1832 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1833 executeFlows.add(ebb6);
1835 List<ExecuteBuildingBlock> sorted =
1836 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "createInstance");
1837 assertEqualsBulkFlowName(sorted, "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB",
1838 "CreateNetworkBB", "ActivateNetworkBB");
1842 public void sortExecutionPathByObjectForVlanTaggingDeleteTest() throws Exception {
1843 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1845 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("0");
1846 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1847 executeFlows.add(ebb);
1849 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("1");
1850 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1851 executeFlows.add(ebb2);
1853 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("0");
1854 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1855 executeFlows.add(ebb3);
1857 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("1");
1858 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1859 executeFlows.add(ebb4);
1861 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("0");
1862 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1863 executeFlows.add(ebb5);
1865 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("1");
1866 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1867 executeFlows.add(ebb6);
1869 List<ExecuteBuildingBlock> sorted =
1870 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "deleteInstance");
1871 assertEqualsBulkFlowName(sorted, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1872 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB");
1876 public void queryNorthBoundRequestCatalogDbNestedTest() throws MalformedURLException {
1877 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1878 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
1879 "VNF-Macro-Replace", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
1880 northBoundRequest.setOrchestrationFlowList(orchFlows);
1881 List<OrchestrationFlow> macroFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1882 "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB");
1884 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner("replaceInstance",
1885 "Vnf", false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1886 when(catalogDbClient.getOrchestrationFlowByAction("VNF-Macro-Replace")).thenReturn(macroFlows);
1887 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "replaceInstance",
1888 WorkflowType.VNF, false, "my-custom-cloud-owner");
1889 assertEquals(flows.get(0).getFlowName(), "AAICheckVnfInMaintBB");
1890 assertEquals(flows.get(1).getFlowName(), "AAISetVnfInMaintBB");
1891 assertEquals(flows.get(2).getFlowName(), "DeactivateVfModuleBB");
1892 assertEquals(flows.get(3).getFlowName(), "DeleteVfModuleBB");
1893 assertEquals(flows.get(4).getFlowName(), "DeactivateVnfBB");
1894 assertEquals(flows.get(5).getFlowName(), "CreateVfModuleBB");
1895 assertEquals(flows.get(6).getFlowName(), "ActivateVfModuleBB");
1896 assertEquals(flows.get(7).getFlowName(), "ActivateVnfBB");
1897 assertEquals(flows.get(8).getFlowName(), "SDNOVnfHealthCheckBB");
1898 assertEquals(flows.get(9).getFlowName(), "AAIUnsetVnfInMaintBB");
1902 public void queryNorthBoundRequestCatalogDbTransportTest() throws MalformedURLException {
1903 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1904 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1905 northBoundRequest.setOrchestrationFlowList(orchFlows);
1906 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwnerAndServiceType(
1907 "createInstance", "Service", true, "my-custom-cloud-owner", "TRANSPORT")).thenReturn(northBoundRequest);
1909 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "createInstance",
1910 WorkflowType.SERVICE, true, "my-custom-cloud-owner", "TRANSPORT");
1911 assertEquals(flows.get(0).getFlowName(), "AssignServiceInstanceBB");
1915 public void extractResourceIdAndTypeFromUriTest() {
1916 String uri = "/v6/serviceInstances/123";
1917 String uri2 = "/v6/serviceInstances/123/vnfs/1234";
1918 String uri3 = "/v6/serviceInstances";
1919 String uri4 = "/v6/serviceInstances/assign";
1920 String uri5 = "'/v6/serviceInstances/123/vnfs";
1921 String uri6 = "/v6/serviceInstances/123/vnfs/1234/someAction";
1922 String uri7 = "/v6/serviceInstances/123/vnfs/1234/vfModules/5678/replace";
1923 String uri8 = "/v6/serviceInstances/123/vnfs/1234/vfModules/scaleOut";
1924 Resource expected1 = new Resource(WorkflowType.SERVICE, "123", true);
1925 Resource expected2 = new Resource(WorkflowType.VNF, "1234", false);
1926 Resource expected3 = new Resource(WorkflowType.VNF, "1234", false);
1927 Resource expected4 = new Resource(WorkflowType.VFMODULE, "5678", false);
1928 Resource result = workflowAction.extractResourceIdAndTypeFromUri(uri);
1929 assertEquals(expected1.getResourceId(), result.getResourceId());
1930 assertEquals(expected1.getResourceType(), result.getResourceType());
1931 result = workflowAction.extractResourceIdAndTypeFromUri(uri2);
1932 assertEquals(expected2.getResourceId(), result.getResourceId());
1933 assertEquals(expected2.getResourceType(), result.getResourceType());
1934 result = workflowAction.extractResourceIdAndTypeFromUri(uri3);
1935 assertEquals("Service", result.getResourceType().toString());
1936 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1937 result = workflowAction.extractResourceIdAndTypeFromUri(uri4);
1938 assertEquals("Service", result.getResourceType().toString());
1939 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1940 result = workflowAction.extractResourceIdAndTypeFromUri(uri5);
1941 assertEquals("Vnf", result.getResourceType().toString());
1942 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1943 result = workflowAction.extractResourceIdAndTypeFromUri(uri6);
1944 assertEquals(expected3.getResourceId(), result.getResourceId());
1945 assertEquals(expected3.getResourceType(), result.getResourceType());
1946 result = workflowAction.extractResourceIdAndTypeFromUri(uri7);
1947 assertEquals(expected4.getResourceId(), result.getResourceId());
1948 assertEquals(expected4.getResourceType(), result.getResourceType());
1949 result = workflowAction.extractResourceIdAndTypeFromUri(uri8);
1950 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1951 assertEquals("VfModule", result.getResourceType().toString());
1956 public void extractResourceIdAndTypeFromUriInvalidTypeTest() {
1957 this.expectedException.expect(IllegalArgumentException.class);
1958 this.expectedException.expectMessage(containsString("Uri could not be parsed. No type found."));
1959 workflowAction.extractResourceIdAndTypeFromUri("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace");
1963 public void extractResourceIdAndTypeFromUriInvalidUriTest() {
1964 this.expectedException.expect(IllegalArgumentException.class);
1965 this.expectedException.expectMessage(containsString("Uri could not be parsed:"));
1966 workflowAction.extractResourceIdAndTypeFromUri("something that doesn't match anything");
1970 public void extractResourceIdAndTypeFromUriResumeTest() {
1971 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1972 "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");
1973 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1977 public void extractResourceIdAndTypeFromUriReplaceResumeTest() {
1978 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1979 "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");
1980 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1984 public void extractResourceIdAndTypeFromUriDeActiveResumeTest() {
1985 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1986 "http://localhost:9100/onap/so/infra/serviceInstantiation/v7/serviceInstances/4ff87c63-461b-4d83-8121-d351e6db216c/vnfs/eea9b93b-b5b9-4fad-9c35-12d52e4b683f/vfModules/33cb74cd-9cb3-4090-a3c0-1b8c8e235847/replace/resume");
1987 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1991 public void extractResourceIdAndTypeFromUriResumeIdOnly() {
1992 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
1993 "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");
1994 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
1998 public void isUriResumeTest() {
1999 assertTrue(workflowAction.isUriResume(
2000 "http://localhost:9100/onap/so/infra/orchestrationRequests/v7/requests/2f8ab587-ef6a-4456-b7b2-d73f9363dabd/resume"));
2001 assertTrue(workflowAction.isUriResume(
2002 " 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"));
2004 assertFalse(workflowAction.isUriResume("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace"));
2008 public void isRequestMacroServiceResumeTest() {
2009 ServiceInstance si = new ServiceInstance();
2010 when(bbSetupUtils.getAAIServiceInstanceById(anyString())).thenReturn(si);
2011 assertFalse(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", ""));
2012 assertTrue(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", "123"));
2016 public void populateResourceIdsFromApiHandlerTest() {
2017 execution.setVariable("serviceInstanceId", "123");
2018 execution.setVariable("vnfId", "888");
2019 WorkflowResourceIds x = workflowAction.populateResourceIdsFromApiHandler(execution);
2020 assertEquals("123", x.getServiceInstanceId());
2021 assertEquals("888", x.getVnfId());
2022 assertNull(x.getVolumeGroupId());
2025 private RequestDetails setupRequestDetails(String globalSubscriberId, String subscriptionServiceType,
2026 String modelCustomizationId) {
2027 RequestDetails reqDetails = new RequestDetails();
2028 SubscriberInfo subInfo = new SubscriberInfo();
2029 subInfo.setGlobalSubscriberId(globalSubscriberId);
2030 reqDetails.setSubscriberInfo(subInfo);
2031 RequestParameters reqParams = new RequestParameters();
2032 reqParams.setSubscriptionServiceType(subscriptionServiceType);
2033 reqDetails.setRequestParameters(reqParams);
2034 ModelInfo modelInfo = new ModelInfo();
2035 modelInfo.setModelCustomizationId(modelCustomizationId);
2036 reqDetails.setModelInfo(modelInfo);
2041 public void validateResourceIdInAAIVnfTest() throws Exception {
2042 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2043 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2044 workflowResourceIds.setServiceInstanceId("siId123");
2046 GenericVnf vnf = new GenericVnf();
2047 vnf.setVnfId("id123");
2048 vnf.setVnfName("vnfName123");
2049 vnf.setModelCustomizationId("1234567");
2050 Optional<GenericVnf> opVnf = Optional.of(vnf);
2051 GenericVnf vnf2 = new GenericVnf();
2052 vnf2.setVnfId("id123");
2053 vnf2.setVnfName("vnfName222");
2054 vnf2.setModelCustomizationId("222");
2055 Optional<GenericVnf> opVnf2 = Optional.of(vnf2);
2056 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2057 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName222")).thenReturn(opVnf2);
2058 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2059 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName123", reqDetails,
2060 workflowResourceIds);
2061 assertEquals("id123", id);
2062 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "111111", reqDetails,
2063 workflowResourceIds);
2064 assertEquals("generatedId123", id2);
2066 this.expectedException.expect(DuplicateNameException.class);
2067 this.expectedException.expectMessage(containsString(
2068 "generic-vnf with name (vnfName222), same parent and different customization id (222) already exists. The name must be unique."));
2069 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName222", reqDetails,
2070 workflowResourceIds);
2074 public void validateResourceIdInAAIVnfNotGloballyUniqueTest() throws Exception {
2075 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2076 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2077 workflowResourceIds.setServiceInstanceId("siId123");
2080 GenericVnfs genericVnfs = new GenericVnfs();
2081 GenericVnf vnf3 = new GenericVnf();
2082 vnf3.setVnfId("id123");
2083 vnf3.setVnfName("vnfName333");
2084 genericVnfs.getGenericVnf().add(vnf3);
2085 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName333")).thenReturn(Optional.empty());
2086 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName333")).thenReturn(genericVnfs);
2088 this.expectedException.expect(DuplicateNameException.class);
2089 this.expectedException.expectMessage(containsString(
2090 "generic-vnf with name (vnfName333) id (id123) and different parent relationship already exists. The name must be unique."));
2091 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName333", reqDetails,
2092 workflowResourceIds);
2096 public void validateResourceIdInAAINetworkTest() throws Exception {
2097 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2098 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2099 workflowResourceIds.setServiceInstanceId("siId123");
2102 L3Network network = new L3Network();
2103 network.setNetworkId("id123");
2104 network.setNetworkName("name123");
2105 network.setModelCustomizationId("1234567");
2106 workflowResourceIds.setServiceInstanceId("siId123");
2107 Optional<L3Network> opNetwork = Optional.of(network);
2108 L3Network network2 = new L3Network();
2109 network2.setNetworkId("id123");
2110 network2.setNetworkName("networkName222");
2111 network2.setModelCustomizationId("222");
2112 Optional<L3Network> opNetwork2 = Optional.of(network2);
2113 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2114 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "networkName222"))
2115 .thenReturn(opNetwork2);
2116 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2117 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "name123",
2118 reqDetails, workflowResourceIds);
2119 assertEquals("id123", id);
2120 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "111111",
2121 reqDetails, workflowResourceIds);
2122 assertEquals("generatedId123", id2);
2124 this.expectedException.expect(DuplicateNameException.class);
2125 this.expectedException.expectMessage(containsString(
2126 "l3Network with name (networkName222), same parent and different customization id (222) already exists. The name must be unique."));
2127 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName222", reqDetails,
2128 workflowResourceIds);
2132 public void validateNetworkResourceNameExistsInAAITest() throws Exception {
2133 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2134 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2135 workflowResourceIds.setServiceInstanceId("siId123");
2138 L3Network network = new L3Network();
2139 network.setNetworkId("id123");
2140 network.setNetworkName("name123");
2141 network.setModelCustomizationId("1234567");
2142 workflowResourceIds.setServiceInstanceId("siId123");
2144 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("networkName333", "111111"))
2145 .thenReturn(Optional.empty());
2146 when(bbSetupUtils.existsAAINetworksGloballyByName("networkName333")).thenReturn(true);
2148 this.expectedException.expect(DuplicateNameException.class);
2149 this.expectedException.expectMessage(containsString(
2150 "l3Network with name (networkName333) id (siId123) and different parent relationship already exists. The name must be unique."));
2151 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName333", reqDetails,
2152 workflowResourceIds);
2156 public void validateResourceIdInAAIVfModuleTest() throws Exception {
2157 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2158 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2159 workflowResourceIds.setServiceInstanceId("siId123");
2161 GenericVnf vnf = new GenericVnf();
2162 vnf.setVnfId("id123");
2163 vnf.setVnfName("vnfName123");
2164 vnf.setModelCustomizationId("222");
2167 VfModules vfModules = new VfModules();
2168 VfModule vfModule = new VfModule();
2169 vfModule.setVfModuleId("id123");
2170 vfModule.setVfModuleName("name123");
2171 vfModule.setModelCustomizationId("1234567");
2172 vfModules.getVfModule().add(vfModule);
2173 vnf.setVfModules(vfModules);
2174 workflowResourceIds.setVnfId("id123");
2175 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2176 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "name123",
2177 reqDetails, workflowResourceIds);
2178 assertEquals("id123", id);
2180 GenericVnf vnf1 = new GenericVnf();
2181 VfModules vfModules2 = new VfModules();
2182 VfModule vfModule2 = new VfModule();
2183 vfModule2.setVfModuleId("id123");
2184 vfModule2.setVfModuleName("vFModName222");
2185 vfModule2.setModelCustomizationId("222");
2186 vfModules2.getVfModule().add(vfModule2);
2187 vnf1.setVfModules(vfModules2);
2188 workflowResourceIds.setVnfId("id111");
2189 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2190 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "111111",
2191 reqDetails, workflowResourceIds);
2192 assertEquals("generatedId123", id2);
2194 this.expectedException.expect(DuplicateNameException.class);
2195 this.expectedException.expectMessage(containsString(
2196 "vfModule with name (vFModName222), same parent and different customization id (1234567) already exists. The name must be unique."));
2197 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName222", reqDetails,
2198 workflowResourceIds);
2202 public void validateResourceIdInAAIVfModuleNotGloballyUniqueTest() throws Exception {
2203 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2204 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2205 workflowResourceIds.setVnfId("id111");
2207 GenericVnf vnf1 = new GenericVnf();
2208 workflowResourceIds.setVnfId("id111");
2209 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2211 when(bbSetupUtils.existsAAIVfModuleGloballyByName("vFModName333")).thenReturn(true);
2212 this.expectedException.expect(DuplicateNameException.class);
2213 this.expectedException.expectMessage(
2214 containsString("vfModule with name vFModName333 already exists. The name must be unique."));
2215 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName333", reqDetails,
2216 workflowResourceIds);
2220 public void validateResourceIdInAAIVolumeGroupTest() throws Exception {
2221 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2222 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2223 workflowResourceIds.setServiceInstanceId("siId123");
2225 GenericVnf vnf = new GenericVnf();
2226 vnf.setVnfId("id123");
2227 vnf.setVnfName("vnfName123");
2228 vnf.setModelCustomizationId("1234567");
2230 GenericVnf vnf2 = new GenericVnf();
2231 vnf2.setVnfId("id123");
2232 vnf2.setVnfName("vnfName123");
2233 vnf2.setModelCustomizationId("222");
2236 VolumeGroup volumeGroup = new VolumeGroup();
2237 volumeGroup.setVolumeGroupId("id123");
2238 volumeGroup.setVolumeGroupName("name123");
2239 volumeGroup.setVfModuleModelCustomizationId("1234567");
2240 workflowResourceIds.setVnfId("id123");
2241 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2243 workflowResourceIds.setVnfId("id123");
2245 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2246 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(opVolumeGroup);
2247 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2248 reqDetails, workflowResourceIds);
2249 assertEquals("id123", id);
2251 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf2);
2252 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "111111"))
2253 .thenReturn(opVolumeGroup);
2255 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "111111")).thenReturn(Optional.empty());
2256 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "111111",
2257 reqDetails, workflowResourceIds);
2258 assertEquals("generatedId123", id2);
2262 public void validatesourceIdInAAIVolumeGroupNotGloballyUniqueTest() throws Exception {
2263 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2264 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2265 workflowResourceIds.setVnfId("id123");
2266 GenericVnf vnf = new GenericVnf();
2267 vnf.setVnfId("id123");
2268 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2269 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "testVolumeGroup")).thenReturn(Optional.empty());
2271 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("testVolumeGroup")).thenReturn(true);
2272 this.expectedException.expect(DuplicateNameException.class);
2273 this.expectedException.expectMessage(
2274 containsString("volumeGroup with name testVolumeGroup already exists. The name must be unique."));
2275 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "testVolumeGroup",
2276 reqDetails, workflowResourceIds);
2280 public void validateResourceIdInAAIConfigurationTest() throws Exception {
2281 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2282 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2283 workflowResourceIds.setServiceInstanceId("siId123");
2286 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2287 configuration.setConfigurationId("id123");
2288 configuration.setConfigurationName("name123");
2289 configuration.setModelCustomizationId("1234567");
2290 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2292 org.onap.aai.domain.yang.Configuration configuration2 = new org.onap.aai.domain.yang.Configuration();
2293 configuration2.setConfigurationId("id123");
2294 configuration2.setConfigurationName("name123");
2295 configuration2.setModelCustomizationId("222");
2296 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration2 = Optional.of(configuration2);
2298 workflowResourceIds.setVnfId("id123");
2300 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2301 .thenReturn(opConfiguration);
2302 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name123",
2303 reqDetails, workflowResourceIds);
2304 assertEquals("id123", id);
2306 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "111111"))
2307 .thenReturn(Optional.empty());
2308 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "111111",
2309 reqDetails, workflowResourceIds);
2310 assertEquals("generatedId123", id2);
2312 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name222"))
2313 .thenReturn(opConfiguration2);
2314 this.expectedException.expect(DuplicateNameException.class);
2315 this.expectedException.expectMessage(containsString(
2316 "configuration with name (name222), same parent and different customization id (id123) already exists. The name must be unique."));
2317 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name222", reqDetails,
2318 workflowResourceIds);
2322 public void validateResourceIdInAAIConfigurationNotGloballyUniqueTest() throws Exception {
2323 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2324 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2325 workflowResourceIds.setServiceInstanceId("siId123");
2327 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "testConfig"))
2328 .thenReturn(Optional.empty());
2329 when(bbSetupUtils.existsAAIConfigurationGloballyByName("testConfig")).thenReturn(true);
2330 this.expectedException.expect(DuplicateNameException.class);
2331 this.expectedException.expectMessage(
2332 containsString("configuration with name testConfig already exists. The name must be unique."));
2333 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "testConfig", reqDetails,
2334 workflowResourceIds);
2338 public void validateResourceIdInAAISITest() throws Exception {
2339 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2340 workflowResourceIds.setServiceInstanceId("siId123");
2341 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2342 reqDetails.getModelInfo().setModelVersionId("1234567");
2344 ServiceInstance si = new ServiceInstance();
2345 si.setServiceInstanceId("siId123");
2346 si.setModelVersionId("1234567");
2347 ServiceInstances serviceInstances = new ServiceInstances();
2348 serviceInstances.getServiceInstance().add(si);
2349 Optional<ServiceInstance> siOp = Optional.of(si);
2350 ServiceInstance si2 = new ServiceInstance();
2351 si2.setServiceInstanceId("siId222");
2352 si2.setModelVersionId("22222");
2353 si2.setServiceInstanceName("siName222");
2354 Optional<ServiceInstance> siOp2 = Optional.of(si2);
2355 ServiceInstances serviceInstances2 = new ServiceInstances();
2356 serviceInstances2.getServiceInstance().add(si2);
2358 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2359 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName222")).thenReturn(siOp2);
2360 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "111111"))
2361 .thenReturn(Optional.empty());
2363 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2364 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123",
2365 reqDetails, workflowResourceIds);
2366 assertEquals("siId123", id);
2367 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "111111",
2368 reqDetails, workflowResourceIds);
2369 assertEquals("generatedId123", id2);
2371 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName222")).thenReturn(serviceInstances2);
2372 this.expectedException.expect(DuplicateNameException.class);
2373 this.expectedException.expectMessage(containsString(
2374 "serviceInstance with name (siName222) and different version id (1234567) already exists. The name must be unique."));
2375 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName222", reqDetails,
2376 workflowResourceIds);
2380 public void validateResourceIdInAAIMultipleSITest() throws Exception {
2381 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2382 workflowResourceIds.setServiceInstanceId("siId123");
2383 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2384 reqDetails.getModelInfo().setModelVersionId("1234567");
2386 ServiceInstance si = new ServiceInstance();
2387 si.setServiceInstanceId("siId123");
2388 si.setModelVersionId("1234567");
2389 ServiceInstances serviceInstances = new ServiceInstances();
2390 serviceInstances.getServiceInstance().add(si);
2392 ServiceInstance si2 = new ServiceInstance();
2393 si2.setServiceInstanceId("siId222");
2394 si2.setModelVersionId("22222");
2395 si2.setServiceInstanceName("siName222");
2396 serviceInstances.getServiceInstance().add(si2);
2398 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2399 .thenReturn(Optional.empty());
2401 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2403 this.expectedException.expect(DuplicateNameException.class);
2404 this.expectedException.expectMessage(containsString(
2405 "serviceInstance with name (siName123) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2406 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2407 workflowResourceIds);
2411 public void validateResourceIdInAAISIExistsTest() throws Exception {
2412 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2413 workflowResourceIds.setServiceInstanceId("siId123");
2414 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2415 reqDetails.getModelInfo().setModelVersionId("1234567");
2417 ServiceInstance si = new ServiceInstance();
2418 si.setServiceInstanceId("siId123");
2419 si.setModelVersionId("1234567");
2420 ServiceInstances serviceInstances = new ServiceInstances();
2421 serviceInstances.getServiceInstance().add(si);
2423 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2424 .thenReturn(Optional.empty());
2426 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2428 Map<String, String> uriKeys = new HashMap<>();
2429 uriKeys.put(AAIFluentTypeBuilder.Types.CUSTOMER.getUriParams().globalCustomerId, "globalCustomerId");
2430 uriKeys.put(AAIFluentTypeBuilder.Types.SERVICE_SUBSCRIPTION.getUriParams().serviceType, "serviceType");
2432 when(bbSetupUtils.getURIKeysFromServiceInstance("siId123")).thenReturn(uriKeys);
2434 this.expectedException.expect(DuplicateNameException.class);
2435 this.expectedException.expectMessage(containsString(
2436 "serviceInstance with name (siName123) and global-customer-id (globalCustomerId), service-type (serviceType), model-version-id (1234567) already exists. The name must be unique."));
2437 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2438 workflowResourceIds);
2442 public void validateServiceResourceIdInAAINoDupTest() throws Exception {
2443 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2444 reqDetails.getModelInfo().setModelVersionId("1234567");
2445 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123"))
2446 .thenReturn(Optional.empty());
2447 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(null);
2448 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2449 assertEquals("generatedId123", id);
2453 public void validateServiceResourceIdInAAISameModelVersionId() 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("1234567");
2460 Optional<ServiceInstance> siOp = Optional.of(si);
2462 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2463 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2464 assertEquals("siId123", id);
2468 public void validateServiceResourceIdInAAIDifferentModelVersionId() throws Exception {
2469 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2470 reqDetails.getModelInfo().setModelVersionId("1234567");
2472 ServiceInstance si = new ServiceInstance();
2473 si.setServiceInstanceId("siId123");
2474 si.setModelVersionId("9999999");
2475 ServiceInstances serviceInstances = new ServiceInstances();
2476 serviceInstances.getServiceInstance().add(si);
2477 Optional<ServiceInstance> siOp = Optional.of(si);
2479 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2481 this.expectedException.expect(DuplicateNameException.class);
2482 this.expectedException.expectMessage(containsString(
2483 "serviceInstance with name (siName123) and different version id (1234567) already exists. The name must be unique."));
2485 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2486 assertEquals("siId123", id);
2490 public void validateServiceResourceIdInAAIDuplicateNameTest() throws Exception {
2492 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2493 reqDetails.getModelInfo().setModelVersionId("1234567");
2495 ServiceInstance si = new ServiceInstance();
2496 si.setServiceInstanceId("siId123");
2497 si.setModelVersionId("1234567");
2499 ServiceInstances serviceInstances = new ServiceInstances();
2500 serviceInstances.getServiceInstance().add(si);
2502 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2503 .thenReturn(Optional.empty());
2504 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2506 this.expectedException.expect(DuplicateNameException.class);
2507 this.expectedException.expectMessage(containsString(
2508 "serviceInstance with name (siName) and global-customer-id (null), service-type (null), model-version-id (1234567) already exists. The name must be unique."));
2510 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2514 public void validateServiceResourceIdInAAIDuplicateNameMultipleTest() throws Exception {
2516 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2517 reqDetails.getModelInfo().setModelVersionId("1234567");
2519 ServiceInstance si = new ServiceInstance();
2520 si.setServiceInstanceId("siId123");
2521 si.setModelVersionId("1234567");
2523 ServiceInstance si2 = new ServiceInstance();
2524 si2.setServiceInstanceId("siId222");
2525 si2.setModelVersionId("22222");
2526 si2.setServiceInstanceName("siName222");
2528 ServiceInstances serviceInstances = new ServiceInstances();
2529 serviceInstances.getServiceInstance().add(si);
2530 serviceInstances.getServiceInstance().add(si2);
2532 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2533 .thenReturn(Optional.empty());
2534 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2536 this.expectedException.expect(DuplicateNameException.class);
2537 this.expectedException.expectMessage(containsString(
2538 "serviceInstance with name (siName) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2540 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2544 public void validateNetworkResourceIdInAAITest() throws Exception {
2545 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2546 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2547 workflowResourceIds.setServiceInstanceId("siId123");
2549 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2550 .thenReturn(Optional.empty());
2551 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(false);
2553 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2554 workflowResourceIds);
2555 assertEquals("generatedId123", id);
2559 public void validateNetworkResourceIdInAAISameModelCustIdTest() throws Exception {
2560 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2561 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2562 workflowResourceIds.setServiceInstanceId("siId123");
2564 L3Network network = new L3Network();
2565 network.setNetworkId("id123");
2566 network.setNetworkName("name123");
2567 network.setModelCustomizationId("1234567");
2568 Optional<L3Network> opNetwork = Optional.of(network);
2570 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2572 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2573 workflowResourceIds);
2574 assertEquals("id123", id);
2578 public void validateNetworkResourceIdInAAIDuplicateNameTest() throws Exception {
2579 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2580 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2581 workflowResourceIds.setServiceInstanceId("siId123");
2583 L3Network network = new L3Network();
2584 network.setNetworkId("id123");
2585 network.setNetworkName("name123");
2586 network.setModelCustomizationId("9999999");
2587 Optional<L3Network> opNetwork = Optional.of(network);
2589 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2591 this.expectedException.expect(DuplicateNameException.class);
2592 this.expectedException.expectMessage(containsString(
2593 "l3Network with name (name123), same parent and different customization id (9999999) already exists. The name must be unique."));
2595 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2599 public void validateNetworkResourceIdInAAINotGloballyUniqueTest() throws Exception {
2600 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2601 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2602 workflowResourceIds.setServiceInstanceId("siId123");
2604 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2605 .thenReturn(Optional.empty());
2606 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(true);
2608 this.expectedException.expect(DuplicateNameException.class);
2609 this.expectedException.expectMessage(containsString(
2610 "l3Network with name (name123) id (siId123) and different parent relationship already exists. The name must be unique."));
2612 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2616 public void validateVnfResourceIdInAAITest() throws Exception {
2617 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2618 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2619 workflowResourceIds.setServiceInstanceId("siId123");
2620 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2621 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2622 workflowResourceIds);
2623 assertEquals("generatedId123", id);
2627 public void validateVnfResourceIdInAAISameModelCustomizationIdTest() throws Exception {
2628 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2629 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2630 workflowResourceIds.setServiceInstanceId("siId123");
2632 GenericVnf vnf = new GenericVnf();
2633 vnf.setVnfId("id123");
2634 vnf.setVnfName("vnfName123");
2635 vnf.setModelCustomizationId("1234567");
2636 Optional<GenericVnf> opVnf = Optional.of(vnf);
2638 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2639 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2640 workflowResourceIds);
2641 assertEquals("id123", id);
2645 public void validateVnfResourceIdInAAIDiffModelCustomizationIdTest() throws Exception {
2646 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2647 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2648 workflowResourceIds.setServiceInstanceId("siId123");
2650 GenericVnf vnf = new GenericVnf();
2651 vnf.setVnfId("id123");
2652 vnf.setVnfName("vnfName123");
2653 vnf.setModelCustomizationId("9999999");
2654 Optional<GenericVnf> opVnf = Optional.of(vnf);
2656 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2658 this.expectedException.expect(DuplicateNameException.class);
2659 this.expectedException.expectMessage(containsString(
2660 "generic-vnf with name (vnfName123), same parent and different customization id (9999999) already exists. The name must be unique."));
2662 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2666 public void validateVnfResourceIdInAAINotGloballyUniqueTest() throws Exception {
2667 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2668 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2669 workflowResourceIds.setServiceInstanceId("siId123");
2672 GenericVnf vnf = new GenericVnf();
2673 vnf.setVnfId("id123");
2674 vnf.setVnfName("vnfName123");
2675 GenericVnfs genericVnfs = new GenericVnfs();
2676 genericVnfs.getGenericVnf().add(vnf);
2678 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2679 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName123")).thenReturn(genericVnfs);
2681 this.expectedException.expect(DuplicateNameException.class);
2682 this.expectedException.expectMessage(containsString(
2683 "generic-vnf with name (vnfName123) id (id123) and different parent relationship already exists. The name must be unique."));
2685 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2689 public void validateVfModuleResourceIdTest() throws Exception {
2690 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2691 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2692 workflowResourceIds.setVnfId("vnfId123");
2694 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2695 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(false);
2697 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2698 workflowResourceIds);
2699 assertEquals("generatedId123", id);
2703 public void validateVfModuleResourceIdSameModelCustIdTest() throws Exception {
2704 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2705 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2706 workflowResourceIds.setVnfId("vnfId123");
2708 VfModules vfModules = new VfModules();
2709 VfModule vfModule = new VfModule();
2710 vfModule.setVfModuleId("id123");
2711 vfModule.setVfModuleName("name123");
2712 vfModule.setModelCustomizationId("1234567");
2713 vfModules.getVfModule().add(vfModule);
2715 GenericVnf vnf = new GenericVnf();
2716 vnf.setVnfId("id123");
2717 vnf.setVnfName("vnfName123");
2718 vnf.setVfModules(vfModules);
2720 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2722 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2723 workflowResourceIds);
2724 assertEquals("id123", id);
2728 public void validateVfModuleResourceIdDifferentModelCustIdTest() throws Exception {
2729 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2730 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2731 workflowResourceIds.setVnfId("vnfId123");
2733 VfModules vfModules = new VfModules();
2734 VfModule vfModule = new VfModule();
2735 vfModule.setVfModuleId("id123");
2736 vfModule.setVfModuleName("name123");
2737 vfModule.setModelCustomizationId("9999999");
2738 vfModules.getVfModule().add(vfModule);
2740 GenericVnf vnf = new GenericVnf();
2741 vnf.setVnfId("id123");
2742 vnf.setVnfName("vnfName123");
2743 vnf.setVfModules(vfModules);
2745 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2747 this.expectedException.expect(DuplicateNameException.class);
2748 this.expectedException.expectMessage(containsString(
2749 "vfModule with name (name123), same parent and different customization id (1234567) already exists. The name must be unique."));
2751 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2756 public void validateVfModuleResourceIdNotGloballyUniqueTest() throws Exception {
2757 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2758 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2759 workflowResourceIds.setVnfId("vnfId123");
2761 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2762 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(true);
2764 this.expectedException.expect(DuplicateNameException.class);
2765 this.expectedException
2766 .expectMessage(containsString("vfModule with name name123 already exists. The name must be unique."));
2768 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2772 public void validateVolumeGroupResourceIdInAAITest() throws Exception {
2773 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2774 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2775 workflowResourceIds.setVnfId("vnfId123");
2777 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(Optional.empty());
2778 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(false);
2780 String id = workflowAction.validateVolumeGroupResourceIdInAAI("generatedId123", "name123", reqDetails,
2781 workflowResourceIds);
2782 assertEquals("generatedId123", id);
2786 public void validateVolumeGroupResourceIdInAAISameModelCustIdTest() throws Exception {
2787 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2788 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2789 workflowResourceIds.setServiceInstanceId("siId123");
2790 workflowResourceIds.setVnfId("vnfId123");
2792 VolumeGroup volumeGroup = new VolumeGroup();
2793 volumeGroup.setVolumeGroupId("id123");
2794 volumeGroup.setVolumeGroupName("name123");
2795 volumeGroup.setVfModuleModelCustomizationId("1234567");
2797 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2799 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2800 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2801 reqDetails, workflowResourceIds);
2803 assertEquals("id123", id);
2807 public void validateVolumeGroupResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2808 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2809 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2810 workflowResourceIds.setServiceInstanceId("siId123");
2811 workflowResourceIds.setVnfId("vnfId123");
2813 VolumeGroup volumeGroup = new VolumeGroup();
2814 volumeGroup.setVolumeGroupId("id123");
2815 volumeGroup.setVolumeGroupName("name123");
2816 volumeGroup.setVfModuleModelCustomizationId("9999999");
2818 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2820 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2822 this.expectedException.expect(DuplicateNameException.class);
2823 this.expectedException.expectMessage(
2824 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2826 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2827 workflowResourceIds);
2831 public void validateVolumeGroupResourceIdInAAINotGloballyUniqueTest() throws Exception {
2832 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2833 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2834 workflowResourceIds.setVnfId("vnfId123");
2836 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(Optional.empty());
2837 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(true);
2839 this.expectedException.expect(DuplicateNameException.class);
2840 this.expectedException.expectMessage(
2841 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2843 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2844 workflowResourceIds);
2848 public void validateConfigurationResourceIdInAAITest() throws Exception {
2849 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2850 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2851 workflowResourceIds.setServiceInstanceId("siId123");
2853 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2854 .thenReturn(Optional.empty());
2855 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2857 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2858 workflowResourceIds);
2859 assertEquals("generatedId123", id);
2863 public void validateConfigurationResourceIdInAAISameModelCustIdTest() throws Exception {
2864 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2865 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2866 workflowResourceIds.setServiceInstanceId("siId123");
2868 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2869 configuration.setConfigurationId("id123");
2870 configuration.setConfigurationName("name123");
2871 configuration.setModelCustomizationId("1234567");
2872 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2874 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2875 .thenReturn(opConfiguration);
2876 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2878 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2879 workflowResourceIds);
2880 assertEquals("id123", id);
2884 public void validateConfigurationResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2885 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2886 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2887 workflowResourceIds.setServiceInstanceId("siId123");
2889 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2890 configuration.setConfigurationId("id123");
2891 configuration.setConfigurationName("name123");
2892 configuration.setModelCustomizationId("9999999");
2893 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2895 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2896 .thenReturn(opConfiguration);
2897 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2899 this.expectedException.expect(DuplicateNameException.class);
2900 this.expectedException.expectMessage(containsString(
2901 "configuration with name (name123), same parent and different customization id (id123) already exists. The name must be unique."));
2903 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2904 workflowResourceIds);
2908 public void validateConfigurationResourceIdInAAINotGloballyUniqueTest() throws Exception {
2909 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2910 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2911 workflowResourceIds.setServiceInstanceId("siId123");
2913 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2914 .thenReturn(Optional.empty());
2915 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(true);
2917 this.expectedException.expect(DuplicateNameException.class);
2918 this.expectedException.expectMessage(
2919 containsString("configuration with name name123 already exists. The name must be unique."));
2921 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2922 workflowResourceIds);
2926 public void handleRuntimeExceptionTest() {
2927 execution.setVariable("BPMN_javaExpMsg", "test runtime error message");
2928 execution.setVariable("testProcessKey", "testProcessKeyValue");
2930 workflowAction.handleRuntimeException(execution);
2931 } catch (BpmnError wfe) {
2932 assertEquals("MSOWorkflowException", wfe.getErrorCode());
2938 public void traverseCatalogDbServiceMultipleNetworkTest() throws IOException, VrfBondingServiceException {
2939 execution.setVariable("testProcessKey", "testProcessKeyValue");
2940 Service service = new Service();
2941 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
2942 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
2943 networkCust.setModelCustomizationUUID("123");
2944 networkCustomizations.add(networkCust);
2945 service.setNetworkCustomizations(networkCustomizations);
2946 NetworkCollectionResourceCustomization collectionResourceCustomization =
2947 new NetworkCollectionResourceCustomization();
2948 collectionResourceCustomization.setModelCustomizationUUID("123");
2949 CollectionResource collectionResource = new CollectionResource();
2950 collectionResource.setToscaNodeType("NetworkCollection");
2951 InstanceGroup instanceGroup = new InstanceGroup();
2952 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
2953 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
2954 new CollectionResourceInstanceGroupCustomization();
2955 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
2956 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
2957 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
2958 collectionResource.setInstanceGroup(instanceGroup);
2959 collectionResourceCustomization.setCollectionResource(collectionResource);;
2960 service.setModelUUID("abc");
2961 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2962 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
2963 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
2964 doReturn(collectionResourceCustomization).when(catalogDbClient)
2965 .getNetworkCollectionResourceCustomizationByID("123");
2966 String bpmnRequest = readBpmnRequestFromFile(MACRO_ACTIVATE_DELETE_UNASSIGN_JSON);
2967 ObjectMapper mapper = new ObjectMapper();
2968 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
2969 List<Resource> resourceCounter = new ArrayList<>();
2970 thrown.expect(BpmnError.class);
2971 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
2972 workflowAction.traverseCatalogDbService(execution, sIRequest, resourceCounter, aaiResourceIds);
2976 public void sortVfModulesByBaseFirstTest() {
2977 List<Resource> resources = new ArrayList<>();
2978 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2979 resource1.setBaseVfModule(false);
2980 resources.add(resource1);
2981 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
2982 resource2.setBaseVfModule(false);
2983 resources.add(resource2);
2984 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
2985 resource3.setBaseVfModule(true);
2986 resources.add(resource3);
2987 List<Resource> result = workflowAction.sortVfModulesByBaseFirst(resources);
2988 assertEquals("333", result.get(0).getResourceId());
2989 assertEquals("222", result.get(1).getResourceId());
2990 assertEquals("111", result.get(2).getResourceId());
2994 public void sortVfModulesByBaseLastTest() {
2995 List<Resource> resources = new ArrayList<>();
2996 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
2997 resource1.setBaseVfModule(true);
2998 resources.add(resource1);
2999 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
3000 resource2.setBaseVfModule(false);
3001 resources.add(resource2);
3002 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
3003 resource3.setBaseVfModule(false);
3004 resources.add(resource3);
3005 List<Resource> result = workflowAction.sortVfModulesByBaseLast(resources);
3006 assertEquals("333", result.get(0).getResourceId());
3007 assertEquals("222", result.get(1).getResourceId());
3008 assertEquals("111", result.get(2).getResourceId());
3012 public void findCatalogNetworkCollectionTest() {
3013 Service service = new Service();
3014 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
3015 networkCustomization.setModelCustomizationUUID("123");
3016 service.getCollectionResourceCustomizations().add(networkCustomization);
3017 doReturn(networkCustomization).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
3018 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
3019 assertNotNull(customization);
3023 public void findCatalogNetworkCollectionEmptyTest() {
3024 Service service = new Service();
3025 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
3026 networkCustomization.setModelCustomizationUUID("123");
3027 service.getCollectionResourceCustomizations().add(networkCustomization);
3028 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
3029 assertNull(customization);
3033 public void findCatalogNetworkCollectionMoreThanOneTest() {
3034 Service service = new Service();
3035 NetworkCollectionResourceCustomization networkCustomization1 = new NetworkCollectionResourceCustomization();
3036 networkCustomization1.setModelCustomizationUUID("123");
3037 NetworkCollectionResourceCustomization networkCustomization2 = new NetworkCollectionResourceCustomization();
3038 networkCustomization2.setModelCustomizationUUID("321");
3039 service.getCollectionResourceCustomizations().add(networkCustomization1);
3040 service.getCollectionResourceCustomizations().add(networkCustomization2);
3041 doReturn(networkCustomization1).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
3042 doReturn(networkCustomization2).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("321");
3043 workflowAction.findCatalogNetworkCollection(execution, service);
3044 assertEquals("Found multiple Network Collections in the Service model, only one per Service is supported.",
3045 execution.getVariable("WorkflowActionErrorMessage"));
3049 public void verifyLackOfNullPointerExceptionForNullResource() {
3050 ExecuteBuildingBlock result = null;
3052 result = workflowAction.buildExecuteBuildingBlock(new OrchestrationFlow(), null, null, null, null, null,
3053 false, null, null, null, false, null, null, true, null);
3054 } catch (NullPointerException e) {
3055 fail("NullPointerException should not be thrown when 'resource' is null");
3057 assertNotNull(result);
3061 public void traverseAAIServiceTest() {
3062 List<Resource> resourceCounter = new ArrayList<>();
3063 String resourceId = "si0";
3064 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
3066 ServiceInstance serviceInstanceAAI = new ServiceInstance();
3067 serviceInstanceAAI.setServiceInstanceId(resourceId);
3069 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstance = setServiceInstance();
3077 Configuration config = new Configuration();
3078 config.setConfigurationId("testConfigurationId2");
3079 serviceInstance.getConfigurations().add(config);
3081 Relationship relationship1 = new Relationship();
3082 relationship1.setRelatedTo("vnfc");
3083 RelationshipList relationshipList1 = new RelationshipList();
3084 relationshipList1.getRelationship().add(relationship1);
3086 Relationship relationship2 = new Relationship();
3087 relationship2.setRelatedTo("vpn-binding");
3088 RelationshipList relationshipList2 = new RelationshipList();
3089 relationshipList2.getRelationship().add(relationship2);
3091 org.onap.aai.domain.yang.Configuration aaiConfiguration1 = new org.onap.aai.domain.yang.Configuration();
3092 aaiConfiguration1.setConfigurationId("testConfigurationId");
3093 aaiConfiguration1.setRelationshipList(relationshipList1);
3095 org.onap.aai.domain.yang.Configuration aaiConfiguration2 = new org.onap.aai.domain.yang.Configuration();
3096 aaiConfiguration2.setConfigurationId("testConfigurationId2");
3097 aaiConfiguration2.setRelationshipList(relationshipList1);
3100 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById(resourceId);
3101 doReturn(serviceInstance).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
3102 doReturn(Optional.of(aaiConfiguration1)).when(aaiConfigurationResources)
3103 .getConfiguration("testConfigurationId");
3104 doReturn(Optional.of(aaiConfiguration2)).when(aaiConfigurationResources)
3105 .getConfiguration("testConfigurationId2");
3106 workflowAction.traverseAAIService(execution, resourceCounter, resourceId, aaiResourceIds);
3107 assertEquals(8, resourceCounter.size());
3108 assertTrue(resourceCounter.get(2).isBaseVfModule());
3109 assertThat(aaiResourceIds, sameBeanAs(getExpectedResourceIds()));
3110 } catch (Exception e) {
3111 fail("Unexpected exception was thrown.");
3116 public void foundRelatedTest() {
3117 List<Resource> resourceList = new ArrayList<>();
3118 resourceList.add(new Resource(WorkflowType.PNF, "model customization id", false));
3119 resourceList.add(new Resource(WorkflowType.VNF, "model customization id", false));
3120 resourceList.add(new Resource(WorkflowType.NETWORK, "model customization id", false));
3121 resourceList.add(new Resource(WorkflowType.NETWORKCOLLECTION, "model customization id", false));
3123 assertEquals(workflowAction.foundRelated(resourceList), true);
3127 public void containsWorkflowTypeTest() {
3128 List<Resource> resourceList = new ArrayList<>();
3129 resourceList.add(new Resource(WorkflowType.PNF, "resource id", false));
3130 resourceList.add(new Resource(WorkflowType.VNF, "model customization id", false));
3131 resourceList.add(new Resource(WorkflowType.NETWORK, "model customization id", false));
3132 resourceList.add(new Resource(WorkflowType.NETWORKCOLLECTION, "model customization id", false));
3134 assertEquals(workflowAction.containsWorkflowType(resourceList, WorkflowType.PNF), true);
3135 assertEquals(workflowAction.containsWorkflowType(resourceList, WorkflowType.VNF), true);
3136 assertEquals(workflowAction.containsWorkflowType(resourceList, WorkflowType.NETWORK), true);
3137 assertEquals(workflowAction.containsWorkflowType(resourceList, WorkflowType.NETWORKCOLLECTION), true);
3138 assertEquals(workflowAction.containsWorkflowType(resourceList, WorkflowType.CONFIGURATION), false);
3141 private List<Pair<WorkflowType, String>> getExpectedResourceIds() {
3142 List<Pair<WorkflowType, String>> resourceIds = new ArrayList<>();
3143 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VNF, "testVnfId1"));
3144 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VFMODULE, "testVfModuleId1"));
3145 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VOLUMEGROUP, "testVolumeGroupId1"));
3146 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORK, "testNetworkId1"));
3147 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORKCOLLECTION, "testId"));
3148 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId"));
3149 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId2"));
3153 private List<OrchestrationFlow> createFlowList(String... flowNames) {
3154 List<OrchestrationFlow> result = new ArrayList<>();
3155 int sequenceNumber = 1;
3156 for (String flowName : flowNames) {
3157 OrchestrationFlow orchFlow = new OrchestrationFlow();
3158 orchFlow.setFlowName(flowName);
3159 orchFlow.setSequenceNumber(sequenceNumber++);
3160 result.add(orchFlow);
3165 private void assertEqualsBulkFlowName(List<ExecuteBuildingBlock> ebbs, String... flowNames) {
3166 for (int i = 0; i < ebbs.size(); i++) {
3167 assertEquals(ebbs.get(i).getBuildingBlock().getBpmnFlowName(), flowNames[i]);
3171 private void initExecution(String gAction, String bpmnRequest, boolean isAlaCarte) {
3172 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
3173 execution.setVariable("requestAction", gAction);
3174 execution.setVariable("bpmnRequest", bpmnRequest);
3175 execution.setVariable("aLaCarte", isAlaCarte);
3176 execution.setVariable("apiVersion", "7");
3179 private String readBpmnRequestFromFile(String fileName) throws IOException {
3180 return new String(Files.readAllBytes(Paths.get("src/test/resources/__files/" + fileName)));
3183 private List<Resource> prepareListWithResources() {
3184 List<Resource> resourceList = new ArrayList<>();
3185 resourceList.add(new Resource(WorkflowType.SERVICE, "3c40d244-808e-42ca-b09a-256d83d19d0a", false));
3186 resourceList.add(new Resource(WorkflowType.VNF, "ab153b6e-c364-44c0-bef6-1f2982117f04", false));
3187 resourceList.add(new Resource(WorkflowType.VOLUMEGROUP, "a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f", false));
3188 resourceList.add(new Resource(WorkflowType.VFMODULE, "72d9d1cd-f46d-447a-abdb-451d6fb05fa8", false));
3189 resourceList.add(new Resource(WorkflowType.VFMODULE, "3c40d244-808e-42ca-b09a-256d83d19d0a", false));
3190 resourceList.add(new Resource(WorkflowType.VFMODULE, "72d9d1cd-f46d-447a-abdb-451d6fb05fa8", false));
3191 return resourceList;