2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (c) 2019 Samsung
8 * ================================================================================
9 * Modifications Copyright (c) 2020 Nokia
10 * ================================================================================
11 * Licensed under the Apache License, Version 2.0 (the "License");
12 * you may not use this file except in compliance with the License.
13 * You may obtain a copy of the License at
15 * http://www.apache.org/licenses/LICENSE-2.0
17 * Unless required by applicable law or agreed to in writing, software
18 * distributed under the License is distributed on an "AS IS" BASIS,
19 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 * See the License for the specific language governing permissions and
21 * limitations under the License.
22 * ============LICENSE_END=========================================================
25 package org.onap.so.bpmn.infrastructure.workflow.tasks;
27 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
28 import static org.hamcrest.CoreMatchers.containsString;
29 import static org.hamcrest.CoreMatchers.equalTo;
30 import static org.junit.Assert.assertEquals;
31 import static org.junit.Assert.assertFalse;
32 import static org.junit.Assert.assertNotNull;
33 import static org.junit.Assert.assertNull;
34 import static org.junit.Assert.assertThat;
35 import static org.junit.Assert.assertTrue;
36 import static org.junit.Assert.fail;
37 import static org.mockito.ArgumentMatchers.any;
38 import static org.mockito.ArgumentMatchers.anyObject;
39 import static org.mockito.ArgumentMatchers.anyString;
40 import static org.mockito.ArgumentMatchers.eq;
41 import static org.mockito.ArgumentMatchers.isA;
42 import static org.mockito.Mockito.doAnswer;
43 import static org.mockito.Mockito.doReturn;
44 import static org.mockito.Mockito.doThrow;
45 import static org.mockito.Mockito.when;
46 import com.fasterxml.jackson.databind.DeserializationFeature;
47 import com.fasterxml.jackson.databind.ObjectMapper;
48 import java.io.IOException;
49 import java.net.MalformedURLException;
50 import java.nio.file.Files;
51 import java.nio.file.Paths;
52 import java.util.ArrayList;
53 import java.util.Arrays;
54 import java.util.HashMap;
55 import java.util.List;
57 import java.util.Optional;
58 import java.util.UUID;
59 import org.camunda.bpm.engine.delegate.BpmnError;
60 import org.camunda.bpm.engine.delegate.DelegateExecution;
61 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
62 import org.javatuples.Pair;
63 import org.junit.Before;
64 import org.junit.Ignore;
65 import org.junit.Rule;
66 import org.junit.Test;
67 import org.junit.rules.ExpectedException;
68 import org.mockito.InjectMocks;
69 import org.mockito.Mock;
70 import org.mockito.Spy;
71 import org.onap.aai.domain.yang.GenericVnf;
72 import org.onap.aai.domain.yang.GenericVnfs;
73 import org.onap.aai.domain.yang.L3Network;
74 import org.onap.aai.domain.yang.Relationship;
75 import org.onap.aai.domain.yang.RelationshipList;
76 import org.onap.aai.domain.yang.ServiceInstance;
77 import org.onap.aai.domain.yang.ServiceInstances;
78 import org.onap.aai.domain.yang.VfModule;
79 import org.onap.aai.domain.yang.VfModules;
80 import org.onap.aai.domain.yang.VolumeGroup;
81 import org.onap.aaiclient.client.aai.AAIObjectType;
82 import org.onap.aaiclient.client.aai.entities.AAIResultWrapper;
83 import org.onap.aaiclient.client.aai.entities.Relationships;
84 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
85 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
86 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder;
87 import org.onap.so.bpmn.BaseTaskTest;
88 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
89 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
90 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
91 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
92 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
93 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.DuplicateNameException;
94 import org.onap.so.client.orchestration.AAIEntityNotFoundException;
95 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
96 import org.onap.so.db.catalog.beans.CollectionResource;
97 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
98 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
99 import org.onap.so.db.catalog.beans.ConfigurationResource;
100 import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
101 import org.onap.so.db.catalog.beans.CvnfcCustomization;
102 import org.onap.so.db.catalog.beans.HeatEnvironment;
103 import org.onap.so.db.catalog.beans.HeatTemplate;
104 import org.onap.so.db.catalog.beans.InstanceGroup;
105 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
106 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
107 import org.onap.so.db.catalog.beans.Service;
108 import org.onap.so.db.catalog.beans.VfModuleCustomization;
109 import org.onap.so.db.catalog.beans.macro.NorthBoundRequest;
110 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
111 import org.onap.so.serviceinstancebeans.ModelInfo;
112 import org.onap.so.serviceinstancebeans.RequestDetails;
113 import org.onap.so.serviceinstancebeans.RequestParameters;
114 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
115 import org.onap.so.serviceinstancebeans.SubscriberInfo;
116 import org.springframework.core.env.Environment;
118 public class WorkflowActionTest extends BaseTaskTest {
121 protected Environment environment;
123 protected WorkflowAction workflowAction;
124 private DelegateExecution execution;
128 protected WorkflowAction SPY_workflowAction;
131 public ExpectedException thrown = ExpectedException.none();
133 private String RESOURCE_PATH = "src/test/resources/__files/";
135 private List<OrchestrationFlow> replaceVfModuleOrchFlows =
136 createFlowList("DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
137 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
138 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
139 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
140 private List<OrchestrationFlow> replaceRetainAssignmentsVfModuleOrchFlows = createFlowList("DeactivateVfModuleBB",
141 "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "UnassignVolumeGroupBB",
142 "AssignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
143 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
144 private List<OrchestrationFlow> replaceVfModuleWithFabricOrchFlows = createFlowList("DeleteFabricConfigurationBB",
145 "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB",
146 "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB", "AssignVfModuleBB",
147 "CreateVfModuleBB", "ActivateVfModuleBB", "AddFabricConfigurationBB", "CreateVolumeGroupBB",
148 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
151 public void before() throws Exception {
152 execution = new DelegateExecutionFake();
153 org.onap.aai.domain.yang.ServiceInstance servInstance = new org.onap.aai.domain.yang.ServiceInstance();
154 servInstance.setServiceInstanceId("TEST");
155 when(bbSetupUtils.getAAIServiceInstanceByName(anyString(), anyObject())).thenReturn(servInstance);
156 workflowAction.setBbInputSetupUtils(bbSetupUtils);
157 workflowAction.setBbInputSetup(bbInputSetup);
164 public void selectExecutionListALaCarteNetworkCreateTest() throws Exception {
165 String gAction = "createInstance";
166 String resource = "Network";
167 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
168 execution.setVariable("requestAction", gAction);
170 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
171 execution.setVariable("bpmnRequest", bpmnRequest);
172 execution.setVariable("aLaCarte", true);
173 execution.setVariable("apiVersion", "7");
174 execution.setVariable("requestUri", "v6/networks/123");
176 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
177 List<OrchestrationFlow> orchFlows =
178 createFlowList("AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
179 northBoundRequest.setOrchestrationFlowList(orchFlows);
181 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
182 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
183 workflowAction.selectExecutionList(execution);
184 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
185 assertEqualsBulkFlowName(ebbs, "AssignNetwork1802BB", "CreateNetworkBB", "ActivateNetworkBB");
189 public void selectExecutionListALaCarteNetworkDeleteTest() throws Exception {
190 String gAction = "deleteInstance";
191 String resource = "Network";
192 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
193 execution.setVariable("requestAction", gAction);
195 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
196 execution.setVariable("bpmnRequest", bpmnRequest);
197 execution.setVariable("aLaCarte", true);
198 execution.setVariable("apiVersion", "7");
199 execution.setVariable("requestUri", "v6/networks/123");
201 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
202 List<OrchestrationFlow> orchFlows =
203 createFlowList("DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
204 northBoundRequest.setOrchestrationFlowList(orchFlows);
206 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
207 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
208 workflowAction.selectExecutionList(execution);
209 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
210 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetwork1802BB");
214 public void selectExecutionListALaCarteServiceCreateTest() throws Exception {
215 String gAction = "createInstance";
216 String resource = "Service";
217 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
218 execution.setVariable("requestAction", gAction);
220 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
221 execution.setVariable("bpmnRequest", bpmnRequest);
222 execution.setVariable("aLaCarte", true);
223 execution.setVariable("apiVersion", "7");
224 execution.setVariable("requestUri", "v6/serviceInstances/123");
227 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
228 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "ActivateServiceInstanceBB");
229 northBoundRequest.setOrchestrationFlowList(orchFlows);
231 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
232 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
233 workflowAction.selectExecutionList(execution);
234 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
235 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
239 public void selectExecutionListDuplicateNameExceptionTest() throws Exception {
240 String gAction = "createInstance";
241 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
243 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
244 execution.setVariable("bpmnRequest", bpmnRequest);
245 execution.setVariable("aLaCarte", true);
246 execution.setVariable("apiVersion", "7");
247 execution.setVariable("requestUri", "v6/serviceInstances");
248 execution.setVariable("requestAction", gAction);
250 doThrow(new DuplicateNameException(
251 "serviceInstance with name (instanceName) and different version id (3c40d244-808e-42ca-b09a-256d83d19d0a) already exists. The name must be unique."))
252 .when(SPY_workflowAction).validateResourceIdInAAI(anyString(), eq(WorkflowType.SERVICE),
253 eq("test"), any(RequestDetails.class), any(WorkflowResourceIds.class));
255 SPY_workflowAction.selectExecutionList(execution);
256 assertEquals(execution.getVariable("WorkflowActionErrorMessage"),
257 "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.");
261 * SERVICE MACRO TESTS
264 public void selectExecutionListServiceMacroAssignTest() throws Exception {
265 String gAction = "assignInstance";
266 String resource = "Service";
267 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
268 execution.setVariable("requestAction", gAction);
270 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
271 execution.setVariable("bpmnRequest", bpmnRequest);
272 execution.setVariable("aLaCarte", false);
273 execution.setVariable("apiVersion", "7");
274 execution.setVariable("requestUri", "v6/serviceInstances/123");
277 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
278 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
279 "AssignVolumeGroupBB", "AssignVfModuleBB");
280 northBoundRequest.setOrchestrationFlowList(orchFlows);
282 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
283 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
284 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
285 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
286 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
287 HeatTemplate volumeHeatTemplate = new HeatTemplate();
288 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
289 vfModuleCustomization.setVfModule(vfModule);
291 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
292 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
293 HeatEnvironment heatEnvironment = new HeatEnvironment();
294 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
295 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
296 HeatTemplate moduleHeatTemplate = new HeatTemplate();
297 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
298 vfModuleCustomization2.setVfModule(vfModule2);
300 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
301 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
303 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
304 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
305 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
306 .thenReturn(vfModuleCustomization);
307 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
308 .thenReturn(vfModuleCustomization2);
309 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
310 .thenReturn(vfModuleCustomization3);
311 workflowAction.selectExecutionList(execution);
312 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
313 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
314 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
318 public void selectExecutionListServiceMacroAssignNoCloudTest() throws Exception {
319 String gAction = "assignInstance";
320 String resource = "Service";
321 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
322 execution.setVariable("requestAction", gAction);
323 String bpmnRequest = new String(
324 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssignNoCloud.json")));
325 execution.setVariable("bpmnRequest", bpmnRequest);
326 execution.setVariable("aLaCarte", false);
327 execution.setVariable("apiVersion", "7");
328 execution.setVariable("requestUri", "v6/serviceInstances/123");
331 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
332 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "AssignNetworkBB", "AssignVnfBB",
333 "AssignVolumeGroupBB", "AssignVfModuleBB");
334 northBoundRequest.setOrchestrationFlowList(orchFlows);
336 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
337 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
338 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
339 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
340 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
341 HeatTemplate volumeHeatTemplate = new HeatTemplate();
342 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
343 vfModuleCustomization.setVfModule(vfModule);
345 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
346 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
347 HeatEnvironment heatEnvironment = new HeatEnvironment();
348 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
349 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
350 HeatTemplate moduleHeatTemplate = new HeatTemplate();
351 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
352 vfModuleCustomization2.setVfModule(vfModule2);
354 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
355 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
357 when(environment.getProperty("org.onap.so.cloud-owner")).thenReturn("att-aic");
358 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
359 false, "att-aic")).thenReturn(northBoundRequest);
360 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
361 .thenReturn(vfModuleCustomization);
362 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
363 .thenReturn(vfModuleCustomization2);
364 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
365 .thenReturn(vfModuleCustomization3);
366 workflowAction.selectExecutionList(execution);
367 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
368 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
369 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB");
373 public void selectExecutionListServiceMacroActivateTest() throws Exception {
374 String gAction = "activateInstance";
375 String resource = "Service";
376 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
377 execution.setVariable("requestAction", gAction);
378 String bpmnRequest = new String(Files
379 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
380 execution.setVariable("bpmnRequest", bpmnRequest);
381 execution.setVariable("aLaCarte", false);
382 execution.setVariable("apiVersion", "7");
383 execution.setVariable("requestUri", "v6/serviceInstances/si0");
386 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
387 List<OrchestrationFlow> orchFlows =
388 createFlowList("CreateNetworkBB", "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB",
389 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "ActivateServiceInstanceBB");
390 northBoundRequest.setOrchestrationFlowList(orchFlows);
392 ServiceInstance serviceInstanceAAI = new ServiceInstance();
393 serviceInstanceAAI.setServiceInstanceId("si0");
394 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
395 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
396 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
397 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
398 vnf.setVnfId("vnf0");
401 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
402 vnf.getVfModules().add(vfModule);
403 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
404 vnf.getVfModules().add(vfModule2);
406 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
407 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
408 volumeGroup.setVolumeGroupId("volumeGroup0");
409 vnf.getVolumeGroups().add(volumeGroup);
411 serviceInstanceMSO.getVnfs().add(vnf);
413 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("si0");
414 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
415 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
416 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
417 workflowAction.selectExecutionList(execution);
418 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
419 assertEqualsBulkFlowName(ebbs, "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
420 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
421 "ActivateServiceInstanceBB");
422 assertEquals("volumeGroup0", ebbs.get(0).getWorkflowResourceIds().getVolumeGroupId());
423 assertEquals("volumeGroup0", ebbs.get(1).getWorkflowResourceIds().getVolumeGroupId());
424 assertEquals("testVfModuleId1", ebbs.get(2).getWorkflowResourceIds().getVfModuleId());
425 assertEquals("testVfModuleId2", ebbs.get(3).getWorkflowResourceIds().getVfModuleId());
426 assertEquals("testVfModuleId1", ebbs.get(4).getWorkflowResourceIds().getVfModuleId());
427 assertEquals("testVfModuleId2", ebbs.get(5).getWorkflowResourceIds().getVfModuleId());
428 assertEquals("vnf0", ebbs.get(6).getWorkflowResourceIds().getVnfId());
429 assertEquals("si0", ebbs.get(7).getWorkflowResourceIds().getServiceInstanceId());
434 public void selectExecutionListServiceMacroDeactivateTest() throws Exception {
435 String gAction = "deactivateInstance";
436 String resource = "Service";
437 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
438 execution.setVariable("requestAction", gAction);
439 String bpmnRequest = new String(Files
440 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
441 execution.setVariable("bpmnRequest", bpmnRequest);
442 execution.setVariable("aLaCarte", false);
443 execution.setVariable("apiVersion", "7");
444 execution.setVariable("requestUri", "v6/serviceInstances/123");
447 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
448 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateServiceInstanceBB");
449 northBoundRequest.setOrchestrationFlowList(orchFlows);
451 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
452 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
453 workflowAction.selectExecutionList(execution);
454 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
455 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(), "DeactivateServiceInstanceBB");
459 public void selectExecutionListServiceMacroEmptyServiceTest() throws Exception {
460 String gAction = "createInstance";
461 String resource = "Service";
462 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
463 execution.setVariable("requestAction", gAction);
464 String bpmnRequest = new String(Files
465 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
466 execution.setVariable("bpmnRequest", bpmnRequest);
467 execution.setVariable("aLaCarte", false);
468 execution.setVariable("apiVersion", "7");
469 execution.setVariable("requestUri", "v6/serviceInstances/123");
472 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
473 northBoundRequest.setIsToplevelflow(true);
474 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
475 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
476 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
477 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
478 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
479 northBoundRequest.setOrchestrationFlowList(orchFlows);
481 Service service = new Service();
482 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
483 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
484 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
485 workflowAction.selectExecutionList(execution);
486 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
487 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "ActivateServiceInstanceBB");
491 public void selectExecutionListServiceMacroCreateJustNetworkTest() throws Exception {
492 String gAction = "createInstance";
493 String resource = "Service";
494 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
495 execution.setVariable("requestAction", gAction);
496 String bpmnRequest = new String(Files
497 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
498 execution.setVariable("bpmnRequest", bpmnRequest);
499 execution.setVariable("aLaCarte", false);
500 execution.setVariable("apiVersion", "7");
501 execution.setVariable("requestUri", "v6/serviceInstances/123");
504 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
505 northBoundRequest.setIsToplevelflow(true);
506 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
507 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
508 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
509 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
510 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
511 northBoundRequest.setOrchestrationFlowList(orchFlows);
513 Service service = new Service();
514 NetworkResourceCustomization networkCustomization = new NetworkResourceCustomization();
515 networkCustomization.setModelCustomizationUUID("1234");
516 service.getNetworkCustomizations().add(networkCustomization);
517 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
518 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
519 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
520 workflowAction.selectExecutionList(execution);
521 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
522 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignNetworkBB", "CreateNetworkBB",
523 "ActivateNetworkBB", "ActivateServiceInstanceBB");
527 public void selectExecutionListServiceMacroCreateWithNetworkCollectionTest() throws Exception {
528 String gAction = "createInstance";
529 String resource = "Service";
530 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
531 execution.setVariable("requestAction", gAction);
532 String bpmnRequest = new String(Files
533 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
534 execution.setVariable("bpmnRequest", bpmnRequest);
535 execution.setVariable("aLaCarte", false);
536 execution.setVariable("apiVersion", "7");
537 execution.setVariable("requestUri", "v6/serviceInstances/123");
540 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
541 northBoundRequest.setIsToplevelflow(true);
542 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
543 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
544 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
545 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
546 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
547 northBoundRequest.setOrchestrationFlowList(orchFlows);
549 Service service = new Service();
550 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
551 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
552 networkCust.setModelCustomizationUUID("123");
553 networkCustomizations.add(networkCust);
554 service.setNetworkCustomizations(networkCustomizations);
555 NetworkCollectionResourceCustomization collectionResourceCustomization =
556 new NetworkCollectionResourceCustomization();
557 collectionResourceCustomization.setModelCustomizationUUID("123");
559 CollectionResource collectionResource = new CollectionResource();
560 collectionResource.setToscaNodeType("NetworkCollection");
561 InstanceGroup instanceGroup = new InstanceGroup();
562 instanceGroup.setToscaNodeType("NetworkCollectionResource");
563 instanceGroup.setCollectionNetworkResourceCustomizations(new ArrayList<>());
564 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
565 new CollectionNetworkResourceCustomization();
566 collectionNetworkResourceCust.setModelCustomizationUUID("123");
567 collectionNetworkResourceCust.setNetworkResourceCustomization(collectionResourceCustomization);
568 instanceGroup.getCollectionNetworkResourceCustomizations().add(collectionNetworkResourceCust);
569 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
570 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
571 new CollectionResourceInstanceGroupCustomization();
572 collectionInstanceGroupCustomization.setModelCustomizationUUID("123");
573 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
574 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
575 collectionInstanceGroupCustomization.setInstanceGroup(instanceGroup);
576 collectionInstanceGroupCustomization.setCollectionResourceCust(collectionResourceCustomization);
577 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
578 collectionResource.setInstanceGroup(instanceGroup);
579 collectionResourceCustomization.setCollectionResource(collectionResource);;
580 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
581 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
582 doReturn(collectionResourceCustomization).when(catalogDbClient)
583 .getNetworkCollectionResourceCustomizationByID("123");
584 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
585 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
586 workflowAction.selectExecutionList(execution);
587 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
588 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "CreateNetworkCollectionBB", "AssignNetworkBB",
589 "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
590 "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB",
591 "ActivateServiceInstanceBB");
592 assertEquals("Network id not empty", !ebbs.get(2).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
593 assertEquals("Network id not empty", !ebbs.get(3).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
594 assertEquals("Network id not empty", !ebbs.get(4).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
595 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
596 ebbs.get(2).getWorkflowResourceIds().getNetworkId() == ebbs.get(3).getWorkflowResourceIds()
598 && ebbs.get(3).getWorkflowResourceIds().getNetworkId() == ebbs.get(4).getWorkflowResourceIds()
601 assertEquals("Network id not empty", !ebbs.get(5).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
602 assertEquals("Network id not empty", !ebbs.get(6).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
603 assertEquals("Network id not empty", !ebbs.get(7).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
604 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
605 ebbs.get(5).getWorkflowResourceIds().getNetworkId() == ebbs.get(6).getWorkflowResourceIds()
607 && ebbs.get(6).getWorkflowResourceIds().getNetworkId() == ebbs.get(7).getWorkflowResourceIds()
610 assertEquals("Network id not empty", !ebbs.get(8).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
611 assertEquals("Network id not empty", !ebbs.get(9).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
612 assertEquals("Network id not empty", !ebbs.get(10).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
613 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
614 ebbs.get(8).getWorkflowResourceIds().getNetworkId() == ebbs.get(9).getWorkflowResourceIds()
616 && ebbs.get(9).getWorkflowResourceIds().getNetworkId() == ebbs.get(10).getWorkflowResourceIds()
622 public void selectExecutionListServiceMacroCreateWithUserParams() throws Exception {
623 String gAction = "createInstance";
624 String resource = "Service";
625 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
626 execution.setVariable("requestAction", gAction);
628 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
629 execution.setVariable("bpmnRequest", bpmnRequest);
630 execution.setVariable("aLaCarte", false);
631 execution.setVariable("apiVersion", "7");
632 execution.setVariable("requestUri", "v6/serviceInstances/123");
635 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
636 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB", "CreateNetworkCollectionBB",
637 "AssignNetworkBB", "AssignVnfBB", "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateNetworkBB",
638 "ActivateNetworkBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
639 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB",
640 "ActivateNetworkCollectionBB", "ActivateServiceInstanceBB");
641 northBoundRequest.setOrchestrationFlowList(orchFlows);
643 Service service = new Service();
644 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
646 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
647 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
648 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
649 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
650 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
651 HeatTemplate volumeHeatTemplate = new HeatTemplate();
652 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
653 vfModuleCustomization.setVfModule(vfModule);
655 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
656 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
657 HeatEnvironment heatEnvironment = new HeatEnvironment();
658 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
659 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
660 HeatTemplate moduleHeatTemplate = new HeatTemplate();
661 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
662 vfModuleCustomization2.setVfModule(vfModule2);
664 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
665 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
667 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
668 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
669 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"))
670 .thenReturn(vfModuleCustomization);
671 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8"))
672 .thenReturn(vfModuleCustomization2);
673 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969"))
674 .thenReturn(vfModuleCustomization3);
675 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
676 workflowAction.selectExecutionList(execution);
677 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
678 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB", "AssignVnfBB", "AssignVolumeGroupBB",
679 "AssignVfModuleBB", "AssignVfModuleBB", "AssignVfModuleBB", "CreateVolumeGroupBB",
680 "ActivateVolumeGroupBB", "CreateVfModuleBB", "CreateVfModuleBB", "CreateVfModuleBB",
681 "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB",
682 "ActivateServiceInstanceBB");
683 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
684 int randomUUIDLength = UUID.randomUUID().toString().length();
685 assertEquals(randomUUIDLength, ebbs.get(1).getWorkflowResourceIds().getVnfId().length());
686 assertEquals(randomUUIDLength, ebbs.get(2).getWorkflowResourceIds().getVolumeGroupId().length());
687 assertEquals(randomUUIDLength, ebbs.get(3).getWorkflowResourceIds().getVfModuleId().length());
688 assertEquals(randomUUIDLength, ebbs.get(4).getWorkflowResourceIds().getVfModuleId().length());
689 assertEquals(randomUUIDLength, ebbs.get(5).getWorkflowResourceIds().getVfModuleId().length());
690 assertEquals(randomUUIDLength, ebbs.get(6).getWorkflowResourceIds().getVolumeGroupId().length());
691 assertEquals(randomUUIDLength, ebbs.get(7).getWorkflowResourceIds().getVolumeGroupId().length());
692 assertEquals(randomUUIDLength, ebbs.get(8).getWorkflowResourceIds().getVfModuleId().length());
693 assertEquals(randomUUIDLength, ebbs.get(9).getWorkflowResourceIds().getVfModuleId().length());
694 assertEquals(randomUUIDLength, ebbs.get(10).getWorkflowResourceIds().getVfModuleId().length());
695 assertEquals(randomUUIDLength, ebbs.get(11).getWorkflowResourceIds().getVfModuleId().length());
696 assertEquals(randomUUIDLength, ebbs.get(12).getWorkflowResourceIds().getVfModuleId().length());
697 assertEquals(randomUUIDLength, ebbs.get(13).getWorkflowResourceIds().getVfModuleId().length());
698 assertEquals(randomUUIDLength, ebbs.get(14).getWorkflowResourceIds().getVnfId().length());
699 assertEquals(3, ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
700 assertEquals(true, execution.getVariable("homing"));
704 public void selectExecutionListServiceMacroDeleteTest() throws Exception {
705 String gAction = "deleteInstance";
706 String resource = "Service";
707 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
708 execution.setVariable("requestAction", gAction);
709 String bpmnRequest = new String(Files
710 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
711 execution.setVariable("bpmnRequest", bpmnRequest);
712 execution.setVariable("aLaCarte", false);
713 execution.setVariable("apiVersion", "7");
714 execution.setVariable("requestUri", "v6/serviceInstances/123");
717 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
718 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
719 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
720 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
721 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
722 northBoundRequest.setOrchestrationFlowList(orchFlows);
724 ServiceInstance serviceInstanceAAI = new ServiceInstance();
725 serviceInstanceAAI.setServiceInstanceId("aaisi123");
726 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
727 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
728 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
729 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
730 vnf.setVnfId("vnfId123");
732 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
733 vnf.getVfModules().add(vfModule);
734 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
735 vnf.getVfModules().add(vfModule2);
737 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
738 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
739 volumeGroup.setVolumeGroupId("vg123");
740 vnf.getVolumeGroups().add(volumeGroup);
742 serviceInstanceMSO.getVnfs().add(vnf);
744 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
745 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
746 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
747 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
748 workflowAction.selectExecutionList(execution);
749 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
750 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
751 "DeleteVfModuleBB", "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB",
752 "DeactivateServiceInstanceBB", "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
753 "UnassignVnfBB", "UnassignServiceInstanceBB");
757 public void selectExecutionListServiceMacroUnassignTest() throws Exception {
758 String gAction = "unassignInstance";
759 String resource = "Service";
760 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
761 execution.setVariable("requestAction", gAction);
762 String bpmnRequest = new String(Files
763 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
764 execution.setVariable("bpmnRequest", bpmnRequest);
765 execution.setVariable("aLaCarte", false);
766 execution.setVariable("apiVersion", "7");
767 execution.setVariable("requestUri", "v6/serviceInstances/123");
770 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
771 List<OrchestrationFlow> orchFlows = createFlowList("UnassignVfModuleBB", "UnassignVolumeGroupBB",
772 "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
773 northBoundRequest.setOrchestrationFlowList(orchFlows);
775 ServiceInstance serviceInstanceAAI = new ServiceInstance();
776 serviceInstanceAAI.setServiceInstanceId("aaisi123");
777 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
778 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
779 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
780 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
781 vnf.setVnfId("vnfId123");
783 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = buildVfModule();
784 vnf.getVfModules().add(vfModule);
785 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = buildVfModule();
786 vnf.getVfModules().add(vfModule2);
788 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup =
789 new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
790 volumeGroup.setVolumeGroupId("vg123");
791 vnf.getVolumeGroups().add(volumeGroup);
793 serviceInstanceMSO.getVnfs().add(vnf);
795 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
796 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
797 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
798 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
799 workflowAction.selectExecutionList(execution);
800 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
801 assertEqualsBulkFlowName(ebbs, "UnassignVfModuleBB", "UnassignVfModuleBB", "UnassignVolumeGroupBB",
802 "UnassignVnfBB", "UnassignServiceInstanceBB");
806 public void selectExecutionListServiceMacroDeleteNetworkCollectionTest() throws Exception {
807 String gAction = "deleteInstance";
808 String resource = "Service";
809 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
810 execution.setVariable("requestAction", gAction);
811 String bpmnRequest = new String(Files
812 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
813 execution.setVariable("bpmnRequest", bpmnRequest);
814 execution.setVariable("aLaCarte", false);
815 execution.setVariable("apiVersion", "7");
816 execution.setVariable("requestUri", "v6/serviceInstances/123");
819 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
820 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
821 "DeactivateVolumeGroupBB", "DeleteVolumeGroupBB", "DeactivateVnfBB", "DeactivateNetworkBB",
822 "DeleteNetworkBB", "DeleteNetworkCollectionBB", "DeactivateServiceInstanceBB", "UnassignVfModuleBB",
823 "UnassignVolumeGroupBB", "UnassignVnfBB", "UnassignNetworkBB", "UnassignServiceInstanceBB");
824 northBoundRequest.setOrchestrationFlowList(orchFlows);
826 ServiceInstance serviceInstanceAAI = new ServiceInstance();
827 serviceInstanceAAI.setServiceInstanceId("aaisi123");
828 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
829 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
831 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network =
832 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
833 network.setNetworkId("123");
834 serviceInstanceMSO.getNetworks().add(network);
835 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network2 =
836 new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
837 network2.setNetworkId("321");
838 serviceInstanceMSO.getNetworks().add(network2);
840 Collection collection = new Collection();
841 serviceInstanceMSO.setCollection(collection);
843 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
844 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
845 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
846 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
847 workflowAction.selectExecutionList(execution);
848 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
849 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
850 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeleteNetworkCollectionBB",
851 "DeactivateServiceInstanceBB", "UnassignServiceInstanceBB");
855 public void selectExecutionListVnfMacroRecreateTest() throws Exception {
856 String gAction = "recreateInstance";
857 String resource = "Vnf";
858 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
859 execution.setVariable("requestAction", gAction);
861 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/VnfMacroReplace.json")));
862 execution.setVariable("bpmnRequest", bpmnRequest);
863 execution.setVariable("aLaCarte", false);
864 execution.setVariable("apiVersion", "7");
865 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/recreate");
866 execution.setVariable("serviceInstanceId", "123");
867 execution.setVariable("vnfId", "1234");
869 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
870 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
871 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
872 "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB",
873 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
874 "AAIUnsetVnfInMaintBB");
875 northBoundRequest.setOrchestrationFlowList(orchFlows);
877 ServiceInstance serviceInstanceAAI = new ServiceInstance();
878 serviceInstanceAAI.setServiceInstanceId("123");
879 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
880 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
881 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
882 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
883 vnf.setVnfId("1234");
885 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
886 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
887 vfModule.setVfModuleId("vfModule1");
888 vnf.getVfModules().add(vfModule);
889 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
890 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
891 vfModule2.setVfModuleId("vfModule2");
892 vnf.getVfModules().add(vfModule2);
894 serviceInstanceMSO.getVnfs().add(vnf);
896 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
897 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
898 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
899 false, "cloud-owner")).thenReturn(northBoundRequest);
900 workflowAction.selectExecutionList(execution);
901 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
902 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateVfModuleBB",
903 "DeactivateVfModuleBB", "DeleteVfModuleBB", "DeleteVfModuleBB", "DeactivateVnfBB", "CreateVfModuleBB",
904 "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB", "SDNOVnfHealthCheckBB",
905 "AAIUnsetVnfInMaintBB");
909 public void selectExecutionListVnfMacroReplaceTest() throws Exception {
910 String gAction = "replaceInstance";
911 String resource = "Vnf";
912 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
913 execution.setVariable("requestAction", gAction);
915 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/VnfMacroReplace.json")));
916 execution.setVariable("bpmnRequest", bpmnRequest);
917 execution.setVariable("aLaCarte", false);
918 execution.setVariable("apiVersion", "7");
919 execution.setVariable("requestUri", "v7/serviceInstances/123/vnfs/1234/replace");
920 execution.setVariable("serviceInstanceId", "123");
921 execution.setVariable("vnfId", "1234");
923 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
924 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
925 "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB", "DeactivateVfModuleBB",
926 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
927 "ActivateVfModuleBB", "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB",
928 "ChangeModelVnfBB", "ActivateVnfBB", "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB",
929 "AAIUnsetVnfInMaintBB");
930 northBoundRequest.setOrchestrationFlowList(orchFlows);
932 ServiceInstance serviceInstanceAAI = new ServiceInstance();
933 serviceInstanceAAI.setServiceInstanceId("123");
934 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO =
935 new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
936 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf =
937 new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
938 vnf.setVnfId("1234");
939 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule =
940 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
941 vfModule.setVfModuleId("vfModule1");
942 vnf.getVfModules().add(vfModule);
943 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 =
944 new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
945 vfModule2.setVfModuleId("vfModule2");
946 vnf.getVfModules().add(vfModule2);
947 serviceInstanceMSO.getVnfs().add(vnf);
948 VfModule vfModuleAAI = new VfModule();
949 vfModuleAAI.setVfModuleId("vfModule2");
950 RelationshipList relationshipList = new RelationshipList();
951 Relationship relationship = new Relationship();
952 relationshipList.getRelationship().add(relationship);
953 vfModuleAAI.setRelationshipList(relationshipList);
954 Relationships relationships = new Relationships("abc");
955 Configuration config = new Configuration();
956 config.setConfigurationId("configId");
957 Optional<Configuration> configOp = Optional.of(config);
958 Optional<Relationships> relationshipsOp = Optional.of(relationships);
960 doReturn(relationshipsOp).when(workflowActionUtils).extractRelationshipsVnfc(isA(Relationships.class));
961 doReturn(configOp).when(workflowActionUtils).extractRelationshipsConfiguration(isA(Relationships.class));
962 doReturn(vfModuleAAI).when(bbSetupUtils).getAAIVfModule("1234", "vfModule2");
963 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
964 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
965 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
966 false, "cloud-owner")).thenReturn(northBoundRequest);
967 workflowAction.selectExecutionList(execution);
968 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
969 assertEqualsBulkFlowName(ebbs, "AAICheckVnfInMaintBB", "AAISetVnfInMaintBB", "DeactivateFabricConfigurationBB",
970 "UnassignFabricConfigurationBB", "DeactivateVfModuleBB", "DeactivateVfModuleBB", "DeleteVfModuleBB",
971 "DeleteVfModuleBB", "DeactivateVnfBB", "ChangeModelVfModuleBB", "ChangeModelVfModuleBB",
972 "CreateVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVfModuleBB",
973 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "ChangeModelVnfBB", "ActivateVnfBB",
974 "ChangeModelServiceInstanceBB", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
975 for (ExecuteBuildingBlock executeBuildingBlock : ebbs) {
976 assertEquals("123", executeBuildingBlock.getWorkflowResourceIds().getServiceInstanceId());
982 public void selectExecutionListNetworkCollectionMacroCreate() throws Exception {
983 String gAction = "createInstance";
984 String resource = "NetworkCollection";
985 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
986 execution.setVariable("requestAction", gAction);
987 String bpmnRequest = new String(
988 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/CreateNetworkCollection.json")));
989 execution.setVariable("bpmnRequest", bpmnRequest);
990 execution.setVariable("aLaCarte", false);
991 execution.setVariable("apiVersion", "7");
992 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
995 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
996 List<OrchestrationFlow> orchFlows = createFlowList("CreateNetworkCollectionBB", "AssignNetworkBB",
997 "CreateNetworkBB", "ActivateNetworkBB", "ActivateNetworkCollectionBB");
998 northBoundRequest.setOrchestrationFlowList(orchFlows);
1000 Service service = new Service();
1001 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
1002 CollectionResource collectionResource = new CollectionResource();
1003 collectionResource.setToscaNodeType("Data NetworkCollection Data");
1004 collectionResourceCustomization.setCollectionResource(collectionResource);
1005 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
1007 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1008 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1009 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1010 workflowAction.selectExecutionList(execution);
1011 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1012 assertEqualsBulkFlowName(ebbs, "CreateNetworkCollectionBB", "AssignNetworkBB", "CreateNetworkBB",
1013 "ActivateNetworkBB", "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB",
1014 "ActivateNetworkCollectionBB");
1019 public void selectExecutionListNetworkCollectionMacroDelete() throws Exception {
1020 String gAction = "deleteInstance";
1021 String resource = "NetworkCollection";
1022 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1023 execution.setVariable("requestAction", gAction);
1024 String bpmnRequest = new String(
1025 Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/CreateNetworkCollection.json")));
1026 execution.setVariable("bpmnRequest", bpmnRequest);
1027 execution.setVariable("aLaCarte", false);
1028 execution.setVariable("apiVersion", "7");
1029 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
1031 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1032 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateNetworkBB", "DeleteNetworkBB",
1033 "UnassignNetworkBB", "DeactivateNetworkCollectionBB", "DeleteNetworkCollectionBB");
1034 northBoundRequest.setOrchestrationFlowList(orchFlows);
1036 Service service = new Service();
1037 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
1038 CollectionResource collectionResource = new CollectionResource();
1039 collectionResource.setToscaNodeType("Data NetworkCollection Data");
1040 collectionResourceCustomization.setCollectionResource(collectionResource);
1041 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
1043 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1044 false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1045 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1046 workflowAction.selectExecutionList(execution);
1047 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1048 assertEqualsBulkFlowName(ebbs, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1049 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB", "DeactivateNetworkCollectionBB",
1050 "DeleteNetworkCollectionBB");
1054 public void selectExecutionListALaCarteVfModuleNoFabricCreateTest() throws Exception {
1055 String gAction = "createInstance";
1056 String resource = "VfModule";
1057 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1058 execution.setVariable("requestAction", gAction);
1059 String bpmnRequest =
1060 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1061 execution.setVariable("bpmnRequest", bpmnRequest);
1062 execution.setVariable("aLaCarte", true);
1063 execution.setVariable("apiVersion", "7");
1064 execution.setVariable("requestUri",
1065 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1068 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1069 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1070 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1071 northBoundRequest.setOrchestrationFlowList(orchFlows);
1073 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1074 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1075 workflowAction.selectExecutionList(execution);
1076 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1077 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB");
1081 public void selectExecutionListALaCarteVfModuleFabricCreateTest() throws Exception {
1082 String gAction = "createInstance";
1083 String resource = "VfModule";
1084 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1085 execution.setVariable("requestAction", gAction);
1086 String bpmnRequest =
1087 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1088 execution.setVariable("bpmnRequest", bpmnRequest);
1089 execution.setVariable("aLaCarte", true);
1090 execution.setVariable("apiVersion", "7");
1091 execution.setVariable("requestUri",
1092 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1094 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1095 List<OrchestrationFlow> orchFlows = createFlowList("AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1096 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB");
1097 northBoundRequest.setOrchestrationFlowList(orchFlows);
1099 List<CvnfcCustomization> cvnfcCustomizations = new ArrayList<CvnfcCustomization>();
1100 CvnfcCustomization cvnfcCustomization = new CvnfcCustomization();
1101 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1102 new CvnfcConfigurationCustomization();
1103 ConfigurationResource configurationResource = new ConfigurationResource();
1104 configurationResource.setToscaNodeType("FabricConfiguration");
1105 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1106 vnfVfmoduleCvnfcConfigurationCustomization.setModelInstanceName("modelInstanceName1");
1107 vnfVfmoduleCvnfcConfigurationCustomization.setCvnfcCustomization(cvnfcCustomization);
1108 List<CvnfcConfigurationCustomization> custSet = new ArrayList<CvnfcConfigurationCustomization>();
1109 custSet.add(vnfVfmoduleCvnfcConfigurationCustomization);
1110 cvnfcCustomization.setCvnfcConfigurationCustomization(custSet);
1111 cvnfcCustomization.setDescription("description");
1112 cvnfcCustomizations.add(cvnfcCustomization);
1114 CvnfcCustomization cvnfcCustomization2 = new CvnfcCustomization();
1115 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization2 =
1116 new CvnfcConfigurationCustomization();
1117 ConfigurationResource configurationResource2 = new ConfigurationResource();
1118 configurationResource2.setToscaNodeType("FabricConfiguration");
1119 vnfVfmoduleCvnfcConfigurationCustomization2.setConfigurationResource(configurationResource2);
1120 vnfVfmoduleCvnfcConfigurationCustomization2.setModelInstanceName("modelInstanceName2");
1121 vnfVfmoduleCvnfcConfigurationCustomization2.setCvnfcCustomization(cvnfcCustomization2);
1122 List<CvnfcConfigurationCustomization> custSet2 = new ArrayList<CvnfcConfigurationCustomization>();
1123 custSet2.add(vnfVfmoduleCvnfcConfigurationCustomization2);
1124 cvnfcCustomization2.setCvnfcConfigurationCustomization(custSet2);
1125 cvnfcCustomization2.setDescription("description2");
1126 cvnfcCustomizations.add(cvnfcCustomization2);
1128 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1129 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1130 // when(catalogDbClient.getCvnfcCustomizationByVnfCustomizationUUIDAndVfModuleCustomizationUUID("fc25201d-36d6-43a3-8d39-fdae88e526ae",
1131 // "9a6d01fd-19a7-490a-9800-460830a12e0b")).thenReturn(cvnfcCustomizations);
1132 workflowAction.selectExecutionList(execution);
1133 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1134 assertEqualsBulkFlowName(ebbs, "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1135 "AssignFabricConfigurationBB", "ActivateFabricConfigurationBB", "AssignFabricConfigurationBB",
1136 "ActivateFabricConfigurationBB");
1140 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceTest() throws Exception {
1141 String gAction = "replaceInstance";
1142 String resource = "VfModule";
1143 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1144 execution.setVariable("requestAction", gAction);
1145 String bpmnRequest =
1146 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1147 execution.setVariable("bpmnRequest", bpmnRequest);
1148 execution.setVariable("aLaCarte", true);
1149 execution.setVariable("apiVersion", "7");
1150 execution.setVariable("requestUri",
1151 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1153 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1154 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1155 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1156 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1157 workflowAction.selectExecutionList(execution);
1158 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1160 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1161 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1162 "ChangeModelServiceInstanceBB");
1166 public void selectExecutionListALaCarteVfModuleNoVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1167 String gAction = "replaceInstanceRetainAssignments";
1168 String resource = "VfModule";
1169 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1170 execution.setVariable("requestAction", gAction);
1171 String bpmnRequest =
1172 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1173 execution.setVariable("bpmnRequest", bpmnRequest);
1174 execution.setVariable("aLaCarte", true);
1175 execution.setVariable("apiVersion", "7");
1176 execution.setVariable("requestUri",
1177 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1179 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1180 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1181 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1182 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1183 workflowAction.selectExecutionList(execution);
1184 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1186 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1187 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1191 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceTest() throws Exception {
1192 String gAction = "replaceInstance";
1193 String resource = "VfModule";
1194 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1195 execution.setVariable("requestAction", gAction);
1196 String bpmnRequest =
1197 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1198 execution.setVariable("bpmnRequest", bpmnRequest);
1199 execution.setVariable("aLaCarte", true);
1200 execution.setVariable("apiVersion", "7");
1201 execution.setVariable("requestUri",
1202 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1203 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1204 execution.setVariable("vfModuleId", "1234");
1206 VolumeGroup volumeGroup = new VolumeGroup();
1207 volumeGroup.setVolumeGroupId("volumeGroupId");
1208 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1209 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1210 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1211 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1212 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1213 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1214 workflowAction.selectExecutionList(execution);
1215 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1217 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1218 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVfModuleBB",
1219 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1223 public void selectExecutionListALaCarteVfModuleVolumeGroupToNoVolumeGroupReplaceRetainAssignmentsTest()
1225 String gAction = "replaceInstanceRetainAssignments";
1226 String resource = "VfModule";
1227 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1228 execution.setVariable("requestAction", gAction);
1229 String bpmnRequest =
1230 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1231 execution.setVariable("bpmnRequest", bpmnRequest);
1232 execution.setVariable("aLaCarte", true);
1233 execution.setVariable("apiVersion", "7");
1234 execution.setVariable("requestUri",
1235 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1236 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1237 execution.setVariable("vfModuleId", "1234");
1239 VolumeGroup volumeGroup = new VolumeGroup();
1240 volumeGroup.setVolumeGroupId("volumeGroupId");
1241 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1242 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1244 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1245 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1246 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1247 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1248 workflowAction.selectExecutionList(execution);
1249 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1251 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1252 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "ChangeModelVfModuleBB", "CreateVfModuleBB",
1253 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1257 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceTest() throws Exception {
1258 String gAction = "replaceInstance";
1259 String resource = "VfModule";
1260 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1261 execution.setVariable("requestAction", gAction);
1262 String bpmnRequest =
1263 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1264 execution.setVariable("bpmnRequest", bpmnRequest);
1265 execution.setVariable("aLaCarte", true);
1266 execution.setVariable("apiVersion", "7");
1267 execution.setVariable("requestUri",
1268 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1269 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1270 execution.setVariable("vfModuleId", "1234");
1272 VolumeGroup volumeGroup = new VolumeGroup();
1273 volumeGroup.setVolumeGroupId("volumeGroupId");
1274 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1275 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1277 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1278 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1279 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1280 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1281 vfModuleCustomization.setVfModule(vfModule);
1282 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1283 .thenReturn(vfModuleCustomization);
1285 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1286 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1287 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1288 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1289 workflowAction.selectExecutionList(execution);
1290 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1292 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1293 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB",
1294 "ChangeModelServiceInstanceBB");
1298 public void selectExecutionListALaCarteVfModuleWithFabricKeepVolumeGroupReplaceTest() throws Exception {
1299 String gAction = "replaceInstance";
1300 String resource = "VfModule";
1301 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1302 execution.setVariable("requestAction", gAction);
1303 String bpmnRequest =
1304 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1305 execution.setVariable("bpmnRequest", bpmnRequest);
1306 execution.setVariable("aLaCarte", true);
1307 execution.setVariable("apiVersion", "7");
1308 execution.setVariable("requestUri",
1309 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1310 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1311 execution.setVariable("vfModuleId", "1234");
1313 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1314 vnf.setVnfId("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1315 vnf.setModelCustomizationId("modelCustomizationId");
1316 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
1318 org.onap.aai.domain.yang.VfModule vfModuleFromAAI = new org.onap.aai.domain.yang.VfModule();
1319 vfModuleFromAAI.setModelCustomizationId("modelCustomizationId");
1320 vfModuleFromAAI.setVfModuleId("1234");
1321 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModuleFromAAI);
1323 VolumeGroup volumeGroup = new VolumeGroup();
1324 volumeGroup.setVolumeGroupId("volumeGroupId");
1325 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1326 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1328 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1329 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1330 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1331 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1332 vfModuleCustomization.setVfModule(vfModule);
1333 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1334 .thenReturn(vfModuleCustomization);
1335 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1336 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1337 vnfc.setModelInvariantId("modelInvariantId");
1338 vnfc.setVnfcName("testVnfcName");
1340 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(), any(), any());
1342 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1343 configuration.setConfigurationId("configurationId");
1344 configuration.setModelCustomizationId("modelCustimizationId");
1345 configuration.setConfigurationName("testConfigurationName");
1346 doReturn(configuration).when(SPY_workflowAction).getRelatedResourcesInVnfc(any(), any(), any());
1348 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1349 northBoundRequest.setOrchestrationFlowList(replaceVfModuleWithFabricOrchFlows);
1350 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1351 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1352 SPY_workflowAction.selectExecutionList(execution);
1353 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1355 assertEqualsBulkFlowName(ebbs, "DeleteFabricConfigurationBB", "DeactivateVfModuleBB", "DeleteVfModuleATTBB",
1356 "UnassignVFModuleBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1357 "AddFabricConfigurationBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1361 public void selectExecutionListALaCarteVfModuleKeepVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1362 String gAction = "replaceInstanceRetainAssignments";
1363 String resource = "VfModule";
1364 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1365 execution.setVariable("requestAction", gAction);
1366 String bpmnRequest =
1367 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1368 execution.setVariable("bpmnRequest", bpmnRequest);
1369 execution.setVariable("aLaCarte", true);
1370 execution.setVariable("apiVersion", "7");
1371 execution.setVariable("requestUri",
1372 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1373 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1374 execution.setVariable("vfModuleId", "1234");
1376 VolumeGroup volumeGroup = new VolumeGroup();
1377 volumeGroup.setVolumeGroupId("volumeGroupId");
1378 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1379 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1381 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1382 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1383 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1384 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1385 vfModuleCustomization.setVfModule(vfModule);
1386 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1387 .thenReturn(vfModuleCustomization);
1389 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1390 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1391 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1392 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1393 workflowAction.selectExecutionList(execution);
1394 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1396 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "ChangeModelVfModuleBB",
1397 "CreateVfModuleBB", "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1401 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceTest() throws Exception {
1402 String gAction = "replaceInstance";
1403 String resource = "VfModule";
1404 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1405 execution.setVariable("requestAction", gAction);
1406 String bpmnRequest =
1407 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1408 execution.setVariable("bpmnRequest", bpmnRequest);
1409 execution.setVariable("aLaCarte", true);
1410 execution.setVariable("apiVersion", "7");
1411 execution.setVariable("requestUri",
1412 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1413 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1414 execution.setVariable("vfModuleId", "1234");
1416 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1417 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1418 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1419 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1420 vfModuleCustomization.setVfModule(vfModule);
1421 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1422 .thenReturn(vfModuleCustomization);
1424 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1425 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1426 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1427 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1428 workflowAction.selectExecutionList(execution);
1429 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1431 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "UnassignVFModuleBB",
1432 "AssignVolumeGroupBB", "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1433 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1437 public void selectExecutionListALaCarteVfModuleNoVolumeGroupToVolumeGroupReplaceRetainAssignmentsTest()
1439 String gAction = "replaceInstanceRetainAssignments";
1440 String resource = "VfModule";
1441 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1442 execution.setVariable("requestAction", gAction);
1443 String bpmnRequest =
1444 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1445 execution.setVariable("bpmnRequest", bpmnRequest);
1446 execution.setVariable("aLaCarte", true);
1447 execution.setVariable("apiVersion", "7");
1448 execution.setVariable("requestUri",
1449 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1450 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1451 execution.setVariable("vfModuleId", "1234");
1453 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1454 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1455 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1456 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1457 vfModuleCustomization.setVfModule(vfModule);
1458 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1459 .thenReturn(vfModuleCustomization);
1461 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1462 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1463 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1464 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1465 workflowAction.selectExecutionList(execution);
1466 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1468 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "AssignVolumeGroupBB",
1469 "ChangeModelVfModuleBB", "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB",
1470 "ActivateVfModuleBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1474 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceTest() throws Exception {
1475 String gAction = "replaceInstance";
1476 String resource = "VfModule";
1477 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1478 execution.setVariable("requestAction", gAction);
1479 String bpmnRequest = new String(
1480 Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleReplaceRebuildVolumeGroups.json")));
1481 execution.setVariable("bpmnRequest", bpmnRequest);
1482 execution.setVariable("aLaCarte", true);
1483 execution.setVariable("apiVersion", "7");
1484 execution.setVariable("requestUri",
1485 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1486 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1487 execution.setVariable("vfModuleId", "1234");
1489 VolumeGroup volumeGroup = new VolumeGroup();
1490 volumeGroup.setVolumeGroupId("volumeGroupId");
1491 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1492 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1494 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1495 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1496 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1497 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1498 vfModuleCustomization.setVfModule(vfModule);
1499 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1500 .thenReturn(vfModuleCustomization);
1502 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1503 northBoundRequest.setOrchestrationFlowList(replaceVfModuleOrchFlows);
1504 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1505 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1506 workflowAction.selectExecutionList(execution);
1507 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1509 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1510 "DeleteVolumeGroupBB", "UnassignVFModuleBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB",
1511 "AssignVfModuleBB", "CreateVfModuleBB", "ActivateVfModuleBB", "CreateVolumeGroupBB",
1512 "ActivateVolumeGroupBB", "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1516 public void selectExecutionListALaCarteVfModuleRebuildVolumeGroupReplaceRetainAssignmentsTest() throws Exception {
1517 String gAction = "replaceInstanceRetainAssignments";
1518 String resource = "VfModule";
1519 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1520 execution.setVariable("requestAction", gAction);
1521 String bpmnRequest = new String(
1522 Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleReplaceRebuildVolumeGroups.json")));
1523 execution.setVariable("bpmnRequest", bpmnRequest);
1524 execution.setVariable("aLaCarte", true);
1525 execution.setVariable("apiVersion", "7");
1526 execution.setVariable("requestUri",
1527 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules/1234");
1528 execution.setVariable("vnfId", "b80b16a5-f80d-4ffa-91c8-bd47c7438a3d");
1529 execution.setVariable("vfModuleId", "1234");
1531 VolumeGroup volumeGroup = new VolumeGroup();
1532 volumeGroup.setVolumeGroupId("volumeGroupId");
1533 doReturn(Optional.of(volumeGroup)).when(bbSetupUtils)
1534 .getRelatedVolumeGroupFromVfModule("b80b16a5-f80d-4ffa-91c8-bd47c7438a3d", "1234");
1536 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
1537 vfModuleCustomization.setVolumeHeatEnv(new HeatEnvironment());
1538 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
1539 vfModule.setVolumeHeatTemplate(new HeatTemplate());
1540 vfModuleCustomization.setVfModule(vfModule);
1541 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("9a6d01fd-19a7-490a-9800-460830a12e0b"))
1542 .thenReturn(vfModuleCustomization);
1544 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1545 northBoundRequest.setOrchestrationFlowList(replaceRetainAssignmentsVfModuleOrchFlows);
1546 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1547 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1548 workflowAction.selectExecutionList(execution);
1549 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1551 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleATTBB", "DeactivateVolumeGroupBB",
1552 "DeleteVolumeGroupBB", "UnassignVolumeGroupBB", "AssignVolumeGroupBB", "ChangeModelVfModuleBB",
1553 "CreateVolumeGroupBB", "ActivateVolumeGroupBB", "CreateVfModuleBB", "ActivateVfModuleBB",
1554 "ChangeModelVnfBB", "ChangeModelServiceInstanceBB");
1559 public void selectExecutionListALaCarteVfModuleFabricDeleteTest() throws Exception {
1560 String gAction = "deleteInstance";
1561 String resource = "VfModule";
1562 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1563 execution.setVariable("requestAction", gAction);
1564 String bpmnRequest =
1565 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1566 execution.setVariable("bpmnRequest", bpmnRequest);
1567 execution.setVariable("aLaCarte", true);
1568 execution.setVariable("apiVersion", "7");
1569 execution.setVariable("requestUri",
1570 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1572 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1573 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1574 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1575 northBoundRequest.setOrchestrationFlowList(orchFlows);
1577 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1578 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1580 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1581 vnf.setVnfId("vnf0");
1582 vnf.setModelCustomizationId("modelCustomizationId");
1583 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1585 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1586 vfModule.setModelCustomizationId("modelCustomizationId");
1587 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1589 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1590 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1591 vnfc.setModelInvariantId("modelInvariantId");
1592 vnfc.setVnfcName("testVnfcName");
1594 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1597 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
1598 configuration.setConfigurationId("configurationId");
1599 configuration.setModelCustomizationId("modelCustimizationId");
1600 configuration.setConfigurationName("testConfigurationName");
1601 doReturn(configuration).when(SPY_workflowAction).getRelatedResourcesInVnfc(anyObject(), anyObject(),
1604 SPY_workflowAction.selectExecutionList(execution);
1605 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1606 assertEqualsBulkFlowName(ebbs, "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB",
1607 "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1611 public void getConfigBuildingBlocksNoVfModuleFabricDeleteTest() throws Exception {
1612 String gAction = "deleteInstance";
1613 ObjectMapper mapper = new ObjectMapper();
1614 WorkflowType resourceType = WorkflowType.VFMODULE;
1615 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1616 execution.setVariable("requestAction", gAction);
1617 String bpmnRequest =
1618 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1619 execution.setVariable("bpmnRequest", bpmnRequest);
1620 execution.setVariable("vnfId", "1234");
1621 execution.setVariable("vfModuleId", "vfModuleId1234");
1622 execution.setVariable("requestUri",
1623 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1624 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1625 RequestDetails requestDetails = sIRequest.getRequestDetails();
1626 String requestAction = "deleteInstance";
1627 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1628 boolean aLaCarte = true;
1629 String apiVersion = "7";
1630 String vnfType = "vnfType";
1631 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1632 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1633 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1634 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1636 thrown.expect(AAIEntityNotFoundException.class);
1637 thrown.expectMessage(containsString(
1638 "No matching VfModule is found in Generic-Vnf in AAI for vnfId: 1234 and vfModuleId : vfModuleId1234"));
1640 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1641 "UnassignVfModuleBB", "DeactivateFabricConfigurationBB", "UnassignFabricConfigurationBB");
1643 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1644 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1645 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1646 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1648 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1649 vnf.setVnfId("vnf0");
1650 vnf.setModelCustomizationId("modelCustomizationId");
1651 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1653 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1654 vfModule.setModelCustomizationId("modelCustomizationId");
1655 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(null);
1657 SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1661 public void getConfigBuildingBlocksTest() throws Exception {
1662 String gAction = "deleteInstance";
1663 ObjectMapper mapper = new ObjectMapper();
1664 mapper.disable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES);
1666 WorkflowType resourceType = WorkflowType.VFMODULE;
1667 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1668 execution.setVariable("requestAction", gAction);
1669 String bpmnRequest =
1670 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1671 execution.setVariable("bpmnRequest", bpmnRequest);
1672 execution.setVariable("vnfId", "1234");
1673 execution.setVariable("vfModuleId", "vfModuleId1234");
1674 execution.setVariable("requestUri",
1675 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1676 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1677 RequestDetails requestDetails = sIRequest.getRequestDetails();
1678 String requestAction = "deleteInstance";
1679 String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
1680 boolean aLaCarte = true;
1681 String apiVersion = "7";
1682 String vnfType = "vnfType";
1683 String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
1684 String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
1685 Resource resourceKey = new Resource(resourceType, key, aLaCarte);
1686 WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
1688 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1689 "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
1691 ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
1692 .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
1693 .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType)
1694 .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
1696 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1697 vnf.setVnfId("vnf0");
1698 vnf.setModelCustomizationId("modelCustomizationId");
1699 when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
1701 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1702 vfModule.setModelCustomizationId("modelCustomizationId");
1704 org.onap.aai.domain.yang.Configuration config1 = new org.onap.aai.domain.yang.Configuration();
1705 config1.setConfigurationId("config1");
1706 org.onap.aai.domain.yang.Configuration config2 = new org.onap.aai.domain.yang.Configuration();
1707 config2.setConfigurationId("config2");
1709 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1710 org.onap.aai.domain.yang.Vnfc vnfc1 = new org.onap.aai.domain.yang.Vnfc();
1711 vnfc1.setVnfcName("zauk53avetd02svm001");
1712 org.onap.aai.domain.yang.Vnfc vnfc2 = new org.onap.aai.domain.yang.Vnfc();
1713 vnfc2.setVnfcName("zauk53avetd02tvm001");
1717 when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModule);
1718 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(),
1719 eq(org.onap.aai.domain.yang.Vnfc.class), eq(AAIObjectType.VNFC));
1720 doReturn(config1).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc1),
1721 eq(org.onap.aai.domain.yang.Configuration.class), eq(AAIObjectType.CONFIGURATION));
1722 doReturn(config2).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc2),
1723 eq(org.onap.aai.domain.yang.Configuration.class), eq(AAIObjectType.CONFIGURATION));
1725 List<ExecuteBuildingBlock> results = SPY_workflowAction.getConfigBuildingBlocks(dataObj);
1727 assertFalse(results.isEmpty());
1728 assertEquals(2, results.size());
1729 assertEquals("config1", results.get(0).getWorkflowResourceIds().getConfigurationId());
1730 assertEquals("config2", results.get(1).getWorkflowResourceIds().getConfigurationId());
1731 assertEquals("zauk53avetd02svm001", results.get(0).getConfigurationResourceKeys().getVnfcName());
1732 assertEquals("zauk53avetd02tvm001", results.get(1).getConfigurationResourceKeys().getVnfcName());
1736 public void selectExecutionListALaCarteVfModuleNoFabricDeleteTest() throws Exception {
1737 String gAction = "deleteInstance";
1738 String resource = "VfModule";
1739 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1740 execution.setVariable("requestAction", gAction);
1741 String bpmnRequest =
1742 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
1743 execution.setVariable("bpmnRequest", bpmnRequest);
1744 execution.setVariable("aLaCarte", true);
1745 execution.setVariable("apiVersion", "7");
1746 execution.setVariable("requestUri",
1747 "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
1749 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1750 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1751 "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
1752 northBoundRequest.setOrchestrationFlowList(orchFlows);
1754 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
1755 true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1757 org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
1758 vnf.setVnfId("vnf0");
1759 vnf.setModelCustomizationId("modelCustomizationId");
1760 when(bbSetupUtils.getAAIGenericVnf(anyObject())).thenReturn(vnf);
1762 org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
1763 vfModule.setModelCustomizationId("modelCustomizationId");
1764 when(bbSetupUtils.getAAIVfModule(anyObject(), anyObject())).thenReturn(vfModule);
1766 List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
1768 doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(anyObject(), anyObject(), anyObject(),
1771 SPY_workflowAction.selectExecutionList(execution);
1772 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1773 assertEqualsBulkFlowName(ebbs, "DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB");
1777 public void selectExecutionListMacroResumeTest() throws Exception {
1778 String gAction = "createInstance";
1779 String resource = "Service";
1780 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1781 execution.setVariable("requestAction", gAction);
1782 String bpmnRequest =
1783 new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
1784 execution.setVariable("bpmnRequest", bpmnRequest);
1785 execution.setVariable("aLaCarte", false);
1786 execution.setVariable("apiVersion", "7");
1787 execution.setVariable("requestUri", "v6/serviceInstances/123");
1789 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1790 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1791 northBoundRequest.setOrchestrationFlowList(orchFlows);
1793 Service service = new Service();
1794 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
1796 ServiceInstance si = new ServiceInstance();
1798 when(bbSetupUtils.getAAIServiceInstanceById("123")).thenReturn(si);
1799 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1801 String flowsToExecuteString =
1802 "[{\"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\"}}]";
1803 ObjectMapper om = new ObjectMapper();
1804 List<ExecuteBuildingBlock> flowsToExecute = null;
1806 ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
1807 flowsToExecute = Arrays.asList(asArray);
1808 } catch (Exception e) {
1809 e.printStackTrace();
1812 when(bbSetupUtils.loadOriginalFlowExecutionPath(anyString())).thenReturn(flowsToExecute);
1814 workflowAction.selectExecutionList(execution);
1815 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1816 assertEqualsBulkFlowName(ebbs, "AssignServiceInstanceBB");
1820 public void getRelatedResourcesInVfModuleTest() throws Exception {
1821 org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
1822 vnfc.setModelInvariantId("modelInvariantId");
1823 vnfc.setVnfcName("testVnfcName");
1825 String vfncPayload =
1826 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/vnfcResponse.json")));
1827 AAIResultWrapper vfncWrapper = new AAIResultWrapper(vfncPayload);
1829 String configurationPayload =
1830 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/BuildingBlocks/configurationResponse.json")));
1831 AAIResultWrapper configurationWrapper = new AAIResultWrapper(configurationPayload);
1832 List<AAIResultWrapper> configurationResultWrappers = new ArrayList<AAIResultWrapper>();
1833 configurationResultWrappers.add(configurationWrapper);
1835 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VNFC, vnfc.getVnfcName());
1836 when(bbSetupUtils.getAAIResourceDepthOne(uri)).thenReturn(vfncWrapper);
1838 doReturn(configurationResultWrappers).when(SPY_workflowAction).getResultWrappersFromRelationships(anyObject(),
1840 org.onap.aai.domain.yang.Configuration configuration = SPY_workflowAction.getRelatedResourcesInVnfc(vnfc,
1841 org.onap.aai.domain.yang.Configuration.class, AAIObjectType.CONFIGURATION);
1842 assertEquals("testConfigurationId", configuration.getConfigurationId());
1846 * WorkflowActionBB Tests
1850 public void pluralTest() {
1851 List<String> items = Arrays.asList("serviceInstances, Service", "vnfs, Vnf", "vfModules, VfModule",
1852 "networks, Network", "invalidNames, invalidNames");
1853 items.forEach(item -> {
1854 String[] split = item.split(",");
1855 String type = split[0].trim();
1856 String expected = split[1].trim();
1857 assertThat(workflowAction.convertTypeFromPlural(type), equalTo(expected));
1862 public void sortExecutionPathByObjectForVlanTaggingCreateTest() throws Exception {
1863 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1865 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("0");
1866 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1867 executeFlows.add(ebb);
1869 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("AssignNetworkBB").setKey("1");
1870 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1871 executeFlows.add(ebb2);
1873 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("0");
1874 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1875 executeFlows.add(ebb3);
1877 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB").setKey("1");
1878 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1879 executeFlows.add(ebb4);
1881 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("0");
1882 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1883 executeFlows.add(ebb5);
1885 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("ActivateNetworkBB").setKey("1");
1886 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1887 executeFlows.add(ebb6);
1889 List<ExecuteBuildingBlock> sorted =
1890 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "createInstance");
1891 assertEqualsBulkFlowName(sorted, "AssignNetworkBB", "CreateNetworkBB", "ActivateNetworkBB", "AssignNetworkBB",
1892 "CreateNetworkBB", "ActivateNetworkBB");
1896 public void sortExecutionPathByObjectForVlanTaggingDeleteTest() throws Exception {
1897 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1899 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("0");
1900 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(bb);
1901 executeFlows.add(ebb);
1903 BuildingBlock bb2 = new BuildingBlock().setBpmnFlowName("DeactivateNetworkBB").setKey("1");
1904 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(bb2);
1905 executeFlows.add(ebb2);
1907 BuildingBlock bb3 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("0");
1908 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(bb3);
1909 executeFlows.add(ebb3);
1911 BuildingBlock bb4 = new BuildingBlock().setBpmnFlowName("DeleteNetworkBB").setKey("1");
1912 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(bb4);
1913 executeFlows.add(ebb4);
1915 BuildingBlock bb5 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("0");
1916 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(bb5);
1917 executeFlows.add(ebb5);
1919 BuildingBlock bb6 = new BuildingBlock().setBpmnFlowName("UnassignNetworkBB").setKey("1");
1920 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(bb6);
1921 executeFlows.add(ebb6);
1923 List<ExecuteBuildingBlock> sorted =
1924 workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows, "deleteInstance");
1925 assertEqualsBulkFlowName(sorted, "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB",
1926 "DeactivateNetworkBB", "DeleteNetworkBB", "UnassignNetworkBB");
1930 public void queryNorthBoundRequestCatalogDbNestedTest() throws MalformedURLException {
1931 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1932 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB", "AAISetVnfInMaintBB",
1933 "VNF-Macro-Replace", "SDNOVnfHealthCheckBB", "AAIUnsetVnfInMaintBB");
1934 northBoundRequest.setOrchestrationFlowList(orchFlows);
1935 List<OrchestrationFlow> macroFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB",
1936 "DeactivateVnfBB", "CreateVfModuleBB", "ActivateVfModuleBB", "ActivateVnfBB");
1938 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner("replaceInstance",
1939 "Vnf", false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
1940 when(catalogDbClient.getOrchestrationFlowByAction("VNF-Macro-Replace")).thenReturn(macroFlows);
1941 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "replaceInstance",
1942 WorkflowType.VNF, false, "my-custom-cloud-owner");
1943 assertEquals(flows.get(0).getFlowName(), "AAICheckVnfInMaintBB");
1944 assertEquals(flows.get(1).getFlowName(), "AAISetVnfInMaintBB");
1945 assertEquals(flows.get(2).getFlowName(), "DeactivateVfModuleBB");
1946 assertEquals(flows.get(3).getFlowName(), "DeleteVfModuleBB");
1947 assertEquals(flows.get(4).getFlowName(), "DeactivateVnfBB");
1948 assertEquals(flows.get(5).getFlowName(), "CreateVfModuleBB");
1949 assertEquals(flows.get(6).getFlowName(), "ActivateVfModuleBB");
1950 assertEquals(flows.get(7).getFlowName(), "ActivateVnfBB");
1951 assertEquals(flows.get(8).getFlowName(), "SDNOVnfHealthCheckBB");
1952 assertEquals(flows.get(9).getFlowName(), "AAIUnsetVnfInMaintBB");
1956 public void queryNorthBoundRequestCatalogDbTransportTest() throws MalformedURLException {
1957 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1958 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB");
1959 northBoundRequest.setOrchestrationFlowList(orchFlows);
1960 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwnerAndServiceType(
1961 "createInstance", "Service", true, "my-custom-cloud-owner", "TRANSPORT")).thenReturn(northBoundRequest);
1963 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "createInstance",
1964 WorkflowType.SERVICE, true, "my-custom-cloud-owner", "TRANSPORT");
1965 assertEquals(flows.get(0).getFlowName(), "AssignServiceInstanceBB");
1969 public void extractResourceIdAndTypeFromUriTest() {
1970 String uri = "/v6/serviceInstances/123";
1971 String uri2 = "/v6/serviceInstances/123/vnfs/1234";
1972 String uri3 = "/v6/serviceInstances";
1973 String uri4 = "/v6/serviceInstances/assign";
1974 String uri5 = "'/v6/serviceInstances/123/vnfs";
1975 String uri6 = "/v6/serviceInstances/123/vnfs/1234/someAction";
1976 String uri7 = "/v6/serviceInstances/123/vnfs/1234/vfModules/5678/replace";
1977 String uri8 = "/v6/serviceInstances/123/vnfs/1234/vfModules/scaleOut";
1978 Resource expected1 = new Resource(WorkflowType.SERVICE, "123", true);
1979 Resource expected2 = new Resource(WorkflowType.VNF, "1234", false);
1980 Resource expected3 = new Resource(WorkflowType.VNF, "1234", false);
1981 Resource expected4 = new Resource(WorkflowType.VFMODULE, "5678", false);
1982 Resource result = workflowAction.extractResourceIdAndTypeFromUri(uri);
1983 assertEquals(expected1.getResourceId(), result.getResourceId());
1984 assertEquals(expected1.getResourceType(), result.getResourceType());
1985 result = workflowAction.extractResourceIdAndTypeFromUri(uri2);
1986 assertEquals(expected2.getResourceId(), result.getResourceId());
1987 assertEquals(expected2.getResourceType(), result.getResourceType());
1988 result = workflowAction.extractResourceIdAndTypeFromUri(uri3);
1989 assertEquals("Service", result.getResourceType().toString());
1990 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1991 result = workflowAction.extractResourceIdAndTypeFromUri(uri4);
1992 assertEquals("Service", result.getResourceType().toString());
1993 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1994 result = workflowAction.extractResourceIdAndTypeFromUri(uri5);
1995 assertEquals("Vnf", result.getResourceType().toString());
1996 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
1997 result = workflowAction.extractResourceIdAndTypeFromUri(uri6);
1998 assertEquals(expected3.getResourceId(), result.getResourceId());
1999 assertEquals(expected3.getResourceType(), result.getResourceType());
2000 result = workflowAction.extractResourceIdAndTypeFromUri(uri7);
2001 assertEquals(expected4.getResourceId(), result.getResourceId());
2002 assertEquals(expected4.getResourceType(), result.getResourceType());
2003 result = workflowAction.extractResourceIdAndTypeFromUri(uri8);
2004 assertEquals(UUID.randomUUID().toString().length(), result.getResourceId().length());
2005 assertEquals("VfModule", result.getResourceType().toString());
2010 public void extractResourceIdAndTypeFromUriInvalidTypeTest() {
2011 this.expectedException.expect(IllegalArgumentException.class);
2012 this.expectedException.expectMessage(containsString("Uri could not be parsed. No type found."));
2013 workflowAction.extractResourceIdAndTypeFromUri("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace");
2017 public void extractResourceIdAndTypeFromUriInvalidUriTest() {
2018 this.expectedException.expect(IllegalArgumentException.class);
2019 this.expectedException.expectMessage(containsString("Uri could not be parsed:"));
2020 workflowAction.extractResourceIdAndTypeFromUri("something that doesn't match anything");
2024 public void extractResourceIdAndTypeFromUriResumeTest() {
2025 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
2026 "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");
2027 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
2031 public void extractResourceIdAndTypeFromUriReplaceResumeTest() {
2032 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
2033 "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");
2034 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
2038 public void extractResourceIdAndTypeFromUriDeActiveResumeTest() {
2039 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
2040 "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");
2041 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
2045 public void extractResourceIdAndTypeFromUriResumeIdOnly() {
2046 Resource resource = workflowAction.extractResourceIdAndTypeFromUri(
2047 "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");
2048 assertEquals(resource.getResourceId(), "33cb74cd-9cb3-4090-a3c0-1b8c8e235847");
2052 public void isUriResumeTest() {
2053 assertTrue(workflowAction.isUriResume(
2054 "http://localhost:9100/onap/so/infra/orchestrationRequests/v7/requests/2f8ab587-ef6a-4456-b7b2-d73f9363dabd/resume"));
2055 assertTrue(workflowAction.isUriResume(
2056 " 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"));
2058 assertFalse(workflowAction.isUriResume("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace"));
2062 public void isRequestMacroServiceResumeTest() {
2063 ServiceInstance si = new ServiceInstance();
2064 when(bbSetupUtils.getAAIServiceInstanceById(anyString())).thenReturn(si);
2065 assertFalse(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", ""));
2066 assertTrue(workflowAction.isRequestMacroServiceResume(false, WorkflowType.SERVICE, "createInstance", "123"));
2070 public void populateResourceIdsFromApiHandlerTest() {
2071 execution.setVariable("serviceInstanceId", "123");
2072 execution.setVariable("vnfId", "888");
2073 WorkflowResourceIds x = workflowAction.populateResourceIdsFromApiHandler(execution);
2074 assertEquals("123", x.getServiceInstanceId());
2075 assertEquals("888", x.getVnfId());
2076 assertNull(x.getVolumeGroupId());
2079 private RequestDetails setupRequestDetails(String globalSubscriberId, String subscriptionServiceType,
2080 String modelCustomizationId) {
2081 RequestDetails reqDetails = new RequestDetails();
2082 SubscriberInfo subInfo = new SubscriberInfo();
2083 subInfo.setGlobalSubscriberId(globalSubscriberId);
2084 reqDetails.setSubscriberInfo(subInfo);
2085 RequestParameters reqParams = new RequestParameters();
2086 reqParams.setSubscriptionServiceType(subscriptionServiceType);
2087 reqDetails.setRequestParameters(reqParams);
2088 ModelInfo modelInfo = new ModelInfo();
2089 modelInfo.setModelCustomizationId(modelCustomizationId);
2090 reqDetails.setModelInfo(modelInfo);
2095 public void validateResourceIdInAAIVnfTest() throws Exception {
2096 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2097 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2098 workflowResourceIds.setServiceInstanceId("siId123");
2100 GenericVnf vnf = new GenericVnf();
2101 vnf.setVnfId("id123");
2102 vnf.setVnfName("vnfName123");
2103 vnf.setModelCustomizationId("1234567");
2104 Optional<GenericVnf> opVnf = Optional.of(vnf);
2105 GenericVnf vnf2 = new GenericVnf();
2106 vnf2.setVnfId("id123");
2107 vnf2.setVnfName("vnfName222");
2108 vnf2.setModelCustomizationId("222");
2109 Optional<GenericVnf> opVnf2 = Optional.of(vnf2);
2110 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2111 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName222")).thenReturn(opVnf2);
2112 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2113 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName123", reqDetails,
2114 workflowResourceIds);
2115 assertEquals("id123", id);
2116 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "111111", reqDetails,
2117 workflowResourceIds);
2118 assertEquals("generatedId123", id2);
2120 this.expectedException.expect(DuplicateNameException.class);
2121 this.expectedException.expectMessage(containsString(
2122 "generic-vnf with name (vnfName222), same parent and different customization id (222) already exists. The name must be unique."));
2123 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName222", reqDetails,
2124 workflowResourceIds);
2128 public void validateResourceIdInAAIVnfNotGloballyUniqueTest() throws Exception {
2129 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2130 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2131 workflowResourceIds.setServiceInstanceId("siId123");
2134 GenericVnfs genericVnfs = new GenericVnfs();
2135 GenericVnf vnf3 = new GenericVnf();
2136 vnf3.setVnfId("id123");
2137 vnf3.setVnfName("vnfName333");
2138 genericVnfs.getGenericVnf().add(vnf3);
2139 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName333")).thenReturn(Optional.empty());
2140 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName333")).thenReturn(genericVnfs);
2142 this.expectedException.expect(DuplicateNameException.class);
2143 this.expectedException.expectMessage(containsString(
2144 "generic-vnf with name (vnfName333) id (id123) and different parent relationship already exists. The name must be unique."));
2145 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName333", reqDetails,
2146 workflowResourceIds);
2150 public void validateResourceIdInAAINetworkTest() throws Exception {
2151 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2152 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2153 workflowResourceIds.setServiceInstanceId("siId123");
2156 L3Network network = new L3Network();
2157 network.setNetworkId("id123");
2158 network.setNetworkName("name123");
2159 network.setModelCustomizationId("1234567");
2160 workflowResourceIds.setServiceInstanceId("siId123");
2161 Optional<L3Network> opNetwork = Optional.of(network);
2162 L3Network network2 = new L3Network();
2163 network2.setNetworkId("id123");
2164 network2.setNetworkName("networkName222");
2165 network2.setModelCustomizationId("222");
2166 Optional<L3Network> opNetwork2 = Optional.of(network2);
2167 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2168 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "networkName222"))
2169 .thenReturn(opNetwork2);
2170 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "111111")).thenReturn(Optional.empty());
2171 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "name123",
2172 reqDetails, workflowResourceIds);
2173 assertEquals("id123", id);
2174 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "111111",
2175 reqDetails, workflowResourceIds);
2176 assertEquals("generatedId123", id2);
2178 this.expectedException.expect(DuplicateNameException.class);
2179 this.expectedException.expectMessage(containsString(
2180 "l3Network with name (networkName222), same parent and different customization id (222) already exists. The name must be unique."));
2181 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName222", reqDetails,
2182 workflowResourceIds);
2186 public void validateNetworkResourceNameExistsInAAITest() throws Exception {
2187 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2188 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2189 workflowResourceIds.setServiceInstanceId("siId123");
2192 L3Network network = new L3Network();
2193 network.setNetworkId("id123");
2194 network.setNetworkName("name123");
2195 network.setModelCustomizationId("1234567");
2196 workflowResourceIds.setServiceInstanceId("siId123");
2198 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("networkName333", "111111"))
2199 .thenReturn(Optional.empty());
2200 when(bbSetupUtils.existsAAINetworksGloballyByName("networkName333")).thenReturn(true);
2202 this.expectedException.expect(DuplicateNameException.class);
2203 this.expectedException.expectMessage(containsString(
2204 "l3Network with name (networkName333) id (siId123) and different parent relationship already exists. The name must be unique."));
2205 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName333", reqDetails,
2206 workflowResourceIds);
2210 public void validateResourceIdInAAIVfModuleTest() throws Exception {
2211 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2212 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2213 workflowResourceIds.setServiceInstanceId("siId123");
2215 GenericVnf vnf = new GenericVnf();
2216 vnf.setVnfId("id123");
2217 vnf.setVnfName("vnfName123");
2218 vnf.setModelCustomizationId("222");
2221 VfModules vfModules = new VfModules();
2222 VfModule vfModule = new VfModule();
2223 vfModule.setVfModuleId("id123");
2224 vfModule.setVfModuleName("name123");
2225 vfModule.setModelCustomizationId("1234567");
2226 vfModules.getVfModule().add(vfModule);
2227 vnf.setVfModules(vfModules);
2228 workflowResourceIds.setVnfId("id123");
2229 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2230 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "name123",
2231 reqDetails, workflowResourceIds);
2232 assertEquals("id123", id);
2234 GenericVnf vnf1 = new GenericVnf();
2235 VfModules vfModules2 = new VfModules();
2236 VfModule vfModule2 = new VfModule();
2237 vfModule2.setVfModuleId("id123");
2238 vfModule2.setVfModuleName("vFModName222");
2239 vfModule2.setModelCustomizationId("222");
2240 vfModules2.getVfModule().add(vfModule2);
2241 vnf1.setVfModules(vfModules2);
2242 workflowResourceIds.setVnfId("id111");
2243 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2244 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "111111",
2245 reqDetails, workflowResourceIds);
2246 assertEquals("generatedId123", id2);
2248 this.expectedException.expect(DuplicateNameException.class);
2249 this.expectedException.expectMessage(containsString(
2250 "vfModule with name (vFModName222), same parent and different customization id (1234567) already exists. The name must be unique."));
2251 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName222", reqDetails,
2252 workflowResourceIds);
2256 public void validateResourceIdInAAIVfModuleNotGloballyUniqueTest() throws Exception {
2257 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2258 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2259 workflowResourceIds.setVnfId("id111");
2261 GenericVnf vnf1 = new GenericVnf();
2262 workflowResourceIds.setVnfId("id111");
2263 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
2265 when(bbSetupUtils.existsAAIVfModuleGloballyByName("vFModName333")).thenReturn(true);
2266 this.expectedException.expect(DuplicateNameException.class);
2267 this.expectedException.expectMessage(
2268 containsString("vfModule with name vFModName333 already exists. The name must be unique."));
2269 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName333", reqDetails,
2270 workflowResourceIds);
2274 public void validateResourceIdInAAIVolumeGroupTest() throws Exception {
2275 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2276 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2277 workflowResourceIds.setServiceInstanceId("siId123");
2279 GenericVnf vnf = new GenericVnf();
2280 vnf.setVnfId("id123");
2281 vnf.setVnfName("vnfName123");
2282 vnf.setModelCustomizationId("1234567");
2284 GenericVnf vnf2 = new GenericVnf();
2285 vnf2.setVnfId("id123");
2286 vnf2.setVnfName("vnfName123");
2287 vnf2.setModelCustomizationId("222");
2290 VolumeGroup volumeGroup = new VolumeGroup();
2291 volumeGroup.setVolumeGroupId("id123");
2292 volumeGroup.setVolumeGroupName("name123");
2293 volumeGroup.setVfModuleModelCustomizationId("1234567");
2294 workflowResourceIds.setVnfId("id123");
2295 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2297 workflowResourceIds.setVnfId("id123");
2299 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2300 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(opVolumeGroup);
2301 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2302 reqDetails, workflowResourceIds);
2303 assertEquals("id123", id);
2305 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf2);
2306 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "111111"))
2307 .thenReturn(opVolumeGroup);
2309 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "111111")).thenReturn(Optional.empty());
2310 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "111111",
2311 reqDetails, workflowResourceIds);
2312 assertEquals("generatedId123", id2);
2316 public void validatesourceIdInAAIVolumeGroupNotGloballyUniqueTest() throws Exception {
2317 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2318 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2319 workflowResourceIds.setVnfId("id123");
2320 GenericVnf vnf = new GenericVnf();
2321 vnf.setVnfId("id123");
2322 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
2323 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "testVolumeGroup")).thenReturn(Optional.empty());
2325 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("testVolumeGroup")).thenReturn(true);
2326 this.expectedException.expect(DuplicateNameException.class);
2327 this.expectedException.expectMessage(
2328 containsString("volumeGroup with name testVolumeGroup already exists. The name must be unique."));
2329 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "testVolumeGroup",
2330 reqDetails, workflowResourceIds);
2334 public void validateResourceIdInAAIConfigurationTest() throws Exception {
2335 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2336 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2337 workflowResourceIds.setServiceInstanceId("siId123");
2340 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2341 configuration.setConfigurationId("id123");
2342 configuration.setConfigurationName("name123");
2343 configuration.setModelCustomizationId("1234567");
2344 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2346 org.onap.aai.domain.yang.Configuration configuration2 = new org.onap.aai.domain.yang.Configuration();
2347 configuration2.setConfigurationId("id123");
2348 configuration2.setConfigurationName("name123");
2349 configuration2.setModelCustomizationId("222");
2350 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration2 = Optional.of(configuration2);
2352 workflowResourceIds.setVnfId("id123");
2354 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2355 .thenReturn(opConfiguration);
2356 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name123",
2357 reqDetails, workflowResourceIds);
2358 assertEquals("id123", id);
2360 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "111111"))
2361 .thenReturn(Optional.empty());
2362 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "111111",
2363 reqDetails, workflowResourceIds);
2364 assertEquals("generatedId123", id2);
2366 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name222"))
2367 .thenReturn(opConfiguration2);
2368 this.expectedException.expect(DuplicateNameException.class);
2369 this.expectedException.expectMessage(containsString(
2370 "configuration with name (name222), same parent and different customization id (id123) already exists. The name must be unique."));
2371 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name222", reqDetails,
2372 workflowResourceIds);
2376 public void validateResourceIdInAAIConfigurationNotGloballyUniqueTest() throws Exception {
2377 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2378 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2379 workflowResourceIds.setServiceInstanceId("siId123");
2381 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "testConfig"))
2382 .thenReturn(Optional.empty());
2383 when(bbSetupUtils.existsAAIConfigurationGloballyByName("testConfig")).thenReturn(true);
2384 this.expectedException.expect(DuplicateNameException.class);
2385 this.expectedException.expectMessage(
2386 containsString("configuration with name testConfig already exists. The name must be unique."));
2387 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "testConfig", reqDetails,
2388 workflowResourceIds);
2392 public void validateResourceIdInAAISITest() throws Exception {
2393 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2394 workflowResourceIds.setServiceInstanceId("siId123");
2395 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2396 reqDetails.getModelInfo().setModelVersionId("1234567");
2398 ServiceInstance si = new ServiceInstance();
2399 si.setServiceInstanceId("siId123");
2400 si.setModelVersionId("1234567");
2401 ServiceInstances serviceInstances = new ServiceInstances();
2402 serviceInstances.getServiceInstance().add(si);
2403 Optional<ServiceInstance> siOp = Optional.of(si);
2404 ServiceInstance si2 = new ServiceInstance();
2405 si2.setServiceInstanceId("siId222");
2406 si2.setModelVersionId("22222");
2407 si2.setServiceInstanceName("siName222");
2408 Optional<ServiceInstance> siOp2 = Optional.of(si2);
2409 ServiceInstances serviceInstances2 = new ServiceInstances();
2410 serviceInstances2.getServiceInstance().add(si2);
2412 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2413 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName222")).thenReturn(siOp2);
2414 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "111111"))
2415 .thenReturn(Optional.empty());
2417 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2418 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123",
2419 reqDetails, workflowResourceIds);
2420 assertEquals("siId123", id);
2421 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "111111",
2422 reqDetails, workflowResourceIds);
2423 assertEquals("generatedId123", id2);
2425 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName222")).thenReturn(serviceInstances2);
2426 this.expectedException.expect(DuplicateNameException.class);
2427 this.expectedException.expectMessage(containsString(
2428 "serviceInstance with name (siName222) and different version id (1234567) already exists. The name must be unique."));
2429 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName222", reqDetails,
2430 workflowResourceIds);
2434 public void validateResourceIdInAAIMultipleSITest() throws Exception {
2435 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2436 workflowResourceIds.setServiceInstanceId("siId123");
2437 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2438 reqDetails.getModelInfo().setModelVersionId("1234567");
2440 ServiceInstance si = new ServiceInstance();
2441 si.setServiceInstanceId("siId123");
2442 si.setModelVersionId("1234567");
2443 ServiceInstances serviceInstances = new ServiceInstances();
2444 serviceInstances.getServiceInstance().add(si);
2446 ServiceInstance si2 = new ServiceInstance();
2447 si2.setServiceInstanceId("siId222");
2448 si2.setModelVersionId("22222");
2449 si2.setServiceInstanceName("siName222");
2450 serviceInstances.getServiceInstance().add(si2);
2452 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2453 .thenReturn(Optional.empty());
2455 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2457 this.expectedException.expect(DuplicateNameException.class);
2458 this.expectedException.expectMessage(containsString(
2459 "serviceInstance with name (siName123) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2460 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2461 workflowResourceIds);
2465 public void validateResourceIdInAAISIExistsTest() throws Exception {
2466 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2467 workflowResourceIds.setServiceInstanceId("siId123");
2468 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2469 reqDetails.getModelInfo().setModelVersionId("1234567");
2471 ServiceInstance si = new ServiceInstance();
2472 si.setServiceInstanceId("siId123");
2473 si.setModelVersionId("1234567");
2474 ServiceInstances serviceInstances = new ServiceInstances();
2475 serviceInstances.getServiceInstance().add(si);
2477 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siId123"))
2478 .thenReturn(Optional.empty());
2480 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
2482 Map<String, String> uriKeys = new HashMap<>();
2483 uriKeys.put(AAIFluentTypeBuilder.Types.CUSTOMER.getUriParams().globalCustomerId, "globalCustomerId");
2484 uriKeys.put(AAIFluentTypeBuilder.Types.SERVICE_SUBSCRIPTION.getUriParams().serviceType, "serviceType");
2486 when(bbSetupUtils.getURIKeysFromServiceInstance("siId123")).thenReturn(uriKeys);
2488 this.expectedException.expect(DuplicateNameException.class);
2489 this.expectedException.expectMessage(containsString(
2490 "serviceInstance with name (siName123) and global-customer-id (globalCustomerId), service-type (serviceType), model-version-id (1234567) already exists. The name must be unique."));
2491 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
2492 workflowResourceIds);
2496 public void validateServiceResourceIdInAAINoDupTest() throws Exception {
2497 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2498 reqDetails.getModelInfo().setModelVersionId("1234567");
2499 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123"))
2500 .thenReturn(Optional.empty());
2501 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(null);
2502 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2503 assertEquals("generatedId123", id);
2507 public void validateServiceResourceIdInAAISameModelVersionId() throws Exception {
2508 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2509 reqDetails.getModelInfo().setModelVersionId("1234567");
2511 ServiceInstance si = new ServiceInstance();
2512 si.setServiceInstanceId("siId123");
2513 si.setModelVersionId("1234567");
2514 Optional<ServiceInstance> siOp = Optional.of(si);
2516 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2517 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2518 assertEquals("siId123", id);
2522 public void validateServiceResourceIdInAAIDifferentModelVersionId() throws Exception {
2523 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2524 reqDetails.getModelInfo().setModelVersionId("1234567");
2526 ServiceInstance si = new ServiceInstance();
2527 si.setServiceInstanceId("siId123");
2528 si.setModelVersionId("9999999");
2529 ServiceInstances serviceInstances = new ServiceInstances();
2530 serviceInstances.getServiceInstance().add(si);
2531 Optional<ServiceInstance> siOp = Optional.of(si);
2533 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
2535 this.expectedException.expect(DuplicateNameException.class);
2536 this.expectedException.expectMessage(containsString(
2537 "serviceInstance with name (siName123) and different version id (1234567) already exists. The name must be unique."));
2539 String id = workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
2540 assertEquals("siId123", id);
2544 public void validateServiceResourceIdInAAIDuplicateNameTest() throws Exception {
2546 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2547 reqDetails.getModelInfo().setModelVersionId("1234567");
2549 ServiceInstance si = new ServiceInstance();
2550 si.setServiceInstanceId("siId123");
2551 si.setModelVersionId("1234567");
2553 ServiceInstances serviceInstances = new ServiceInstances();
2554 serviceInstances.getServiceInstance().add(si);
2556 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2557 .thenReturn(Optional.empty());
2558 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2560 this.expectedException.expect(DuplicateNameException.class);
2561 this.expectedException.expectMessage(containsString(
2562 "serviceInstance with name (siName) and global-customer-id (null), service-type (null), model-version-id (1234567) already exists. The name must be unique."));
2564 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2568 public void validateServiceResourceIdInAAIDuplicateNameMultipleTest() throws Exception {
2570 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2571 reqDetails.getModelInfo().setModelVersionId("1234567");
2573 ServiceInstance si = new ServiceInstance();
2574 si.setServiceInstanceId("siId123");
2575 si.setModelVersionId("1234567");
2577 ServiceInstance si2 = new ServiceInstance();
2578 si2.setServiceInstanceId("siId222");
2579 si2.setModelVersionId("22222");
2580 si2.setServiceInstanceName("siName222");
2582 ServiceInstances serviceInstances = new ServiceInstances();
2583 serviceInstances.getServiceInstance().add(si);
2584 serviceInstances.getServiceInstance().add(si2);
2586 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName"))
2587 .thenReturn(Optional.empty());
2588 when(bbSetupUtils.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
2590 this.expectedException.expect(DuplicateNameException.class);
2591 this.expectedException.expectMessage(containsString(
2592 "serviceInstance with name (siName) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
2594 workflowAction.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
2598 public void validateNetworkResourceIdInAAITest() throws Exception {
2599 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2600 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2601 workflowResourceIds.setServiceInstanceId("siId123");
2603 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2604 .thenReturn(Optional.empty());
2605 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(false);
2607 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2608 workflowResourceIds);
2609 assertEquals("generatedId123", id);
2613 public void validateNetworkResourceIdInAAISameModelCustIdTest() throws Exception {
2614 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2615 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2616 workflowResourceIds.setServiceInstanceId("siId123");
2618 L3Network network = new L3Network();
2619 network.setNetworkId("id123");
2620 network.setNetworkName("name123");
2621 network.setModelCustomizationId("1234567");
2622 Optional<L3Network> opNetwork = Optional.of(network);
2624 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2626 String id = workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
2627 workflowResourceIds);
2628 assertEquals("id123", id);
2632 public void validateNetworkResourceIdInAAIDuplicateNameTest() throws Exception {
2633 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2634 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2635 workflowResourceIds.setServiceInstanceId("siId123");
2637 L3Network network = new L3Network();
2638 network.setNetworkId("id123");
2639 network.setNetworkName("name123");
2640 network.setModelCustomizationId("9999999");
2641 Optional<L3Network> opNetwork = Optional.of(network);
2643 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123")).thenReturn(opNetwork);
2645 this.expectedException.expect(DuplicateNameException.class);
2646 this.expectedException.expectMessage(containsString(
2647 "l3Network with name (name123), same parent and different customization id (9999999) already exists. The name must be unique."));
2649 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2653 public void validateNetworkResourceIdInAAINotGloballyUniqueTest() throws Exception {
2654 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2655 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2656 workflowResourceIds.setServiceInstanceId("siId123");
2658 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
2659 .thenReturn(Optional.empty());
2660 when(bbSetupUtils.existsAAINetworksGloballyByName("name123")).thenReturn(true);
2662 this.expectedException.expect(DuplicateNameException.class);
2663 this.expectedException.expectMessage(containsString(
2664 "l3Network with name (name123) id (siId123) and different parent relationship already exists. The name must be unique."));
2666 workflowAction.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2670 public void validateVnfResourceIdInAAITest() throws Exception {
2671 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2672 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2673 workflowResourceIds.setServiceInstanceId("siId123");
2674 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2675 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2676 workflowResourceIds);
2677 assertEquals("generatedId123", id);
2681 public void validateVnfResourceIdInAAISameModelCustomizationIdTest() throws Exception {
2682 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2683 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2684 workflowResourceIds.setServiceInstanceId("siId123");
2686 GenericVnf vnf = new GenericVnf();
2687 vnf.setVnfId("id123");
2688 vnf.setVnfName("vnfName123");
2689 vnf.setModelCustomizationId("1234567");
2690 Optional<GenericVnf> opVnf = Optional.of(vnf);
2692 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2693 String id = workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
2694 workflowResourceIds);
2695 assertEquals("id123", id);
2699 public void validateVnfResourceIdInAAIDiffModelCustomizationIdTest() throws Exception {
2700 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2701 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2702 workflowResourceIds.setServiceInstanceId("siId123");
2704 GenericVnf vnf = new GenericVnf();
2705 vnf.setVnfId("id123");
2706 vnf.setVnfName("vnfName123");
2707 vnf.setModelCustomizationId("9999999");
2708 Optional<GenericVnf> opVnf = Optional.of(vnf);
2710 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
2712 this.expectedException.expect(DuplicateNameException.class);
2713 this.expectedException.expectMessage(containsString(
2714 "generic-vnf with name (vnfName123), same parent and different customization id (9999999) already exists. The name must be unique."));
2716 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2720 public void validateVnfResourceIdInAAINotGloballyUniqueTest() throws Exception {
2721 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2722 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2723 workflowResourceIds.setServiceInstanceId("siId123");
2726 GenericVnf vnf = new GenericVnf();
2727 vnf.setVnfId("id123");
2728 vnf.setVnfName("vnfName123");
2729 GenericVnfs genericVnfs = new GenericVnfs();
2730 genericVnfs.getGenericVnf().add(vnf);
2732 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(Optional.empty());
2733 when(bbSetupUtils.getAAIVnfsGloballyByName("vnfName123")).thenReturn(genericVnfs);
2735 this.expectedException.expect(DuplicateNameException.class);
2736 this.expectedException.expectMessage(containsString(
2737 "generic-vnf with name (vnfName123) id (id123) and different parent relationship already exists. The name must be unique."));
2739 workflowAction.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
2743 public void validateVfModuleResourceIdTest() throws Exception {
2744 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2745 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2746 workflowResourceIds.setVnfId("vnfId123");
2748 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2749 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(false);
2751 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2752 workflowResourceIds);
2753 assertEquals("generatedId123", id);
2757 public void validateVfModuleResourceIdSameModelCustIdTest() throws Exception {
2758 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2759 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2760 workflowResourceIds.setVnfId("vnfId123");
2762 VfModules vfModules = new VfModules();
2763 VfModule vfModule = new VfModule();
2764 vfModule.setVfModuleId("id123");
2765 vfModule.setVfModuleName("name123");
2766 vfModule.setModelCustomizationId("1234567");
2767 vfModules.getVfModule().add(vfModule);
2769 GenericVnf vnf = new GenericVnf();
2770 vnf.setVnfId("id123");
2771 vnf.setVnfName("vnfName123");
2772 vnf.setVfModules(vfModules);
2774 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2776 String id = workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
2777 workflowResourceIds);
2778 assertEquals("id123", id);
2782 public void validateVfModuleResourceIdDifferentModelCustIdTest() throws Exception {
2783 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2784 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2785 workflowResourceIds.setVnfId("vnfId123");
2787 VfModules vfModules = new VfModules();
2788 VfModule vfModule = new VfModule();
2789 vfModule.setVfModuleId("id123");
2790 vfModule.setVfModuleName("name123");
2791 vfModule.setModelCustomizationId("9999999");
2792 vfModules.getVfModule().add(vfModule);
2794 GenericVnf vnf = new GenericVnf();
2795 vnf.setVnfId("id123");
2796 vnf.setVnfName("vnfName123");
2797 vnf.setVfModules(vfModules);
2799 when(bbSetupUtils.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
2801 this.expectedException.expect(DuplicateNameException.class);
2802 this.expectedException.expectMessage(containsString(
2803 "vfModule with name (name123), same parent and different customization id (1234567) already exists. The name must be unique."));
2805 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2810 public void validateVfModuleResourceIdNotGloballyUniqueTest() throws Exception {
2811 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2812 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2813 workflowResourceIds.setVnfId("vnfId123");
2815 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(null);
2816 when(bbSetupUtils.existsAAIVfModuleGloballyByName("name123")).thenReturn(true);
2818 this.expectedException.expect(DuplicateNameException.class);
2819 this.expectedException
2820 .expectMessage(containsString("vfModule with name name123 already exists. The name must be unique."));
2822 workflowAction.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
2826 public void validateVolumeGroupResourceIdInAAITest() throws Exception {
2827 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2828 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2829 workflowResourceIds.setVnfId("vnfId123");
2831 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(Optional.empty());
2832 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(false);
2834 String id = workflowAction.validateVolumeGroupResourceIdInAAI("generatedId123", "name123", reqDetails,
2835 workflowResourceIds);
2836 assertEquals("generatedId123", id);
2840 public void validateVolumeGroupResourceIdInAAISameModelCustIdTest() throws Exception {
2841 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2842 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2843 workflowResourceIds.setServiceInstanceId("siId123");
2844 workflowResourceIds.setVnfId("vnfId123");
2846 VolumeGroup volumeGroup = new VolumeGroup();
2847 volumeGroup.setVolumeGroupId("id123");
2848 volumeGroup.setVolumeGroupName("name123");
2849 volumeGroup.setVfModuleModelCustomizationId("1234567");
2851 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2853 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2854 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
2855 reqDetails, workflowResourceIds);
2857 assertEquals("id123", id);
2861 public void validateVolumeGroupResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2862 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2863 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2864 workflowResourceIds.setServiceInstanceId("siId123");
2865 workflowResourceIds.setVnfId("vnfId123");
2867 VolumeGroup volumeGroup = new VolumeGroup();
2868 volumeGroup.setVolumeGroupId("id123");
2869 volumeGroup.setVolumeGroupName("name123");
2870 volumeGroup.setVfModuleModelCustomizationId("9999999");
2872 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
2874 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
2876 this.expectedException.expect(DuplicateNameException.class);
2877 this.expectedException.expectMessage(
2878 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2880 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2881 workflowResourceIds);
2885 public void validateVolumeGroupResourceIdInAAINotGloballyUniqueTest() throws Exception {
2886 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2887 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2888 workflowResourceIds.setVnfId("vnfId123");
2890 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(Optional.empty());
2891 when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(true);
2893 this.expectedException.expect(DuplicateNameException.class);
2894 this.expectedException.expectMessage(
2895 containsString("volumeGroup with name name123 already exists. The name must be unique."));
2897 workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
2898 workflowResourceIds);
2902 public void validateConfigurationResourceIdInAAITest() throws Exception {
2903 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2904 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2905 workflowResourceIds.setServiceInstanceId("siId123");
2907 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2908 .thenReturn(Optional.empty());
2909 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2911 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2912 workflowResourceIds);
2913 assertEquals("generatedId123", id);
2917 public void validateConfigurationResourceIdInAAISameModelCustIdTest() throws Exception {
2918 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2919 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2920 workflowResourceIds.setServiceInstanceId("siId123");
2922 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2923 configuration.setConfigurationId("id123");
2924 configuration.setConfigurationName("name123");
2925 configuration.setModelCustomizationId("1234567");
2926 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2928 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2929 .thenReturn(opConfiguration);
2930 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2932 String id = workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2933 workflowResourceIds);
2934 assertEquals("id123", id);
2938 public void validateConfigurationResourceIdInAAIDifferentModelCustIdTest() throws Exception {
2939 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2940 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2941 workflowResourceIds.setServiceInstanceId("siId123");
2943 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
2944 configuration.setConfigurationId("id123");
2945 configuration.setConfigurationName("name123");
2946 configuration.setModelCustomizationId("9999999");
2947 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
2949 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2950 .thenReturn(opConfiguration);
2951 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(false);
2953 this.expectedException.expect(DuplicateNameException.class);
2954 this.expectedException.expectMessage(containsString(
2955 "configuration with name (name123), same parent and different customization id (id123) already exists. The name must be unique."));
2957 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2958 workflowResourceIds);
2962 public void validateConfigurationResourceIdInAAINotGloballyUniqueTest() throws Exception {
2963 RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
2964 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2965 workflowResourceIds.setServiceInstanceId("siId123");
2967 when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
2968 .thenReturn(Optional.empty());
2969 when(bbSetupUtils.existsAAIConfigurationGloballyByName("name123")).thenReturn(true);
2971 this.expectedException.expect(DuplicateNameException.class);
2972 this.expectedException.expectMessage(
2973 containsString("configuration with name name123 already exists. The name must be unique."));
2975 workflowAction.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
2976 workflowResourceIds);
2980 public void handleRuntimeExceptionTest() {
2981 execution.setVariable("BPMN_javaExpMsg", "test runtime error message");
2982 execution.setVariable("testProcessKey", "testProcessKeyValue");
2984 workflowAction.handleRuntimeException(execution);
2985 } catch (BpmnError wfe) {
2986 assertEquals("MSOWorkflowException", wfe.getErrorCode());
2992 public void traverseCatalogDbServiceMultipleNetworkTest() throws IOException, VrfBondingServiceException {
2993 execution.setVariable("testProcessKey", "testProcessKeyValue");
2994 Service service = new Service();
2995 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
2996 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
2997 networkCust.setModelCustomizationUUID("123");
2998 networkCustomizations.add(networkCust);
2999 service.setNetworkCustomizations(networkCustomizations);
3000 NetworkCollectionResourceCustomization collectionResourceCustomization =
3001 new NetworkCollectionResourceCustomization();
3002 collectionResourceCustomization.setModelCustomizationUUID("123");
3003 CollectionResource collectionResource = new CollectionResource();
3004 collectionResource.setToscaNodeType("NetworkCollection");
3005 InstanceGroup instanceGroup = new InstanceGroup();
3006 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
3007 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization =
3008 new CollectionResourceInstanceGroupCustomization();
3009 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
3010 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
3011 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
3012 collectionResource.setInstanceGroup(instanceGroup);
3013 collectionResourceCustomization.setCollectionResource(collectionResource);;
3014 service.setModelUUID("abc");
3015 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
3016 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
3017 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
3018 doReturn(collectionResourceCustomization).when(catalogDbClient)
3019 .getNetworkCollectionResourceCustomizationByID("123");
3020 String bpmnRequest = new String(Files
3021 .readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
3022 ObjectMapper mapper = new ObjectMapper();
3023 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
3024 List<Resource> resourceCounter = new ArrayList<>();
3025 thrown.expect(BpmnError.class);
3026 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
3027 workflowAction.traverseCatalogDbService(execution, sIRequest, resourceCounter, aaiResourceIds);
3031 public void sortVfModulesByBaseFirstTest() {
3032 List<Resource> resources = new ArrayList<>();
3033 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
3034 resource1.setBaseVfModule(false);
3035 resources.add(resource1);
3036 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
3037 resource2.setBaseVfModule(false);
3038 resources.add(resource2);
3039 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
3040 resource3.setBaseVfModule(true);
3041 resources.add(resource3);
3042 List<Resource> result = workflowAction.sortVfModulesByBaseFirst(resources);
3043 assertEquals("333", result.get(0).getResourceId());
3044 assertEquals("222", result.get(1).getResourceId());
3045 assertEquals("111", result.get(2).getResourceId());
3049 public void sortVfModulesByBaseLastTest() {
3050 List<Resource> resources = new ArrayList<>();
3051 Resource resource1 = new Resource(WorkflowType.VFMODULE, "111", false);
3052 resource1.setBaseVfModule(true);
3053 resources.add(resource1);
3054 Resource resource2 = new Resource(WorkflowType.VFMODULE, "222", false);
3055 resource2.setBaseVfModule(false);
3056 resources.add(resource2);
3057 Resource resource3 = new Resource(WorkflowType.VFMODULE, "333", false);
3058 resource3.setBaseVfModule(false);
3059 resources.add(resource3);
3060 List<Resource> result = workflowAction.sortVfModulesByBaseLast(resources);
3061 assertEquals("333", result.get(0).getResourceId());
3062 assertEquals("222", result.get(1).getResourceId());
3063 assertEquals("111", result.get(2).getResourceId());
3067 public void findCatalogNetworkCollectionTest() {
3068 Service service = new Service();
3069 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
3070 networkCustomization.setModelCustomizationUUID("123");
3071 service.getCollectionResourceCustomizations().add(networkCustomization);
3072 doReturn(networkCustomization).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
3073 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
3074 assertNotNull(customization);
3078 public void findCatalogNetworkCollectionEmptyTest() {
3079 Service service = new Service();
3080 NetworkCollectionResourceCustomization networkCustomization = new NetworkCollectionResourceCustomization();
3081 networkCustomization.setModelCustomizationUUID("123");
3082 service.getCollectionResourceCustomizations().add(networkCustomization);
3083 CollectionResourceCustomization customization = workflowAction.findCatalogNetworkCollection(execution, service);
3084 assertNull(customization);
3088 public void findCatalogNetworkCollectionMoreThanOneTest() {
3089 Service service = new Service();
3090 NetworkCollectionResourceCustomization networkCustomization1 = new NetworkCollectionResourceCustomization();
3091 networkCustomization1.setModelCustomizationUUID("123");
3092 NetworkCollectionResourceCustomization networkCustomization2 = new NetworkCollectionResourceCustomization();
3093 networkCustomization2.setModelCustomizationUUID("321");
3094 service.getCollectionResourceCustomizations().add(networkCustomization1);
3095 service.getCollectionResourceCustomizations().add(networkCustomization2);
3096 doReturn(networkCustomization1).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
3097 doReturn(networkCustomization2).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("321");
3098 workflowAction.findCatalogNetworkCollection(execution, service);
3099 assertEquals("Found multiple Network Collections in the Service model, only one per Service is supported.",
3100 execution.getVariable("WorkflowActionErrorMessage"));
3104 public void verifyLackOfNullPointerExceptionForNullResource() {
3105 ExecuteBuildingBlock result = null;
3107 result = workflowAction.buildExecuteBuildingBlock(new OrchestrationFlow(), null, null, null, null, null,
3108 false, null, null, null, false, null, null, true, null);
3109 } catch (NullPointerException e) {
3110 fail("NullPointerException should not be thrown when 'resource' is null");
3112 assertNotNull(result);
3116 public void traverseAAIServiceTest() {
3117 List<Resource> resourceCounter = new ArrayList<>();
3118 String resourceId = "si0";
3119 List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
3121 ServiceInstance serviceInstanceAAI = new ServiceInstance();
3122 serviceInstanceAAI.setServiceInstanceId(resourceId);
3124 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstance = setServiceInstance();
3132 Configuration config = new Configuration();
3133 config.setConfigurationId("testConfigurationId2");
3134 serviceInstance.getConfigurations().add(config);
3136 Relationship relationship1 = new Relationship();
3137 relationship1.setRelatedTo("vnfc");
3138 RelationshipList relationshipList1 = new RelationshipList();
3139 relationshipList1.getRelationship().add(relationship1);
3141 Relationship relationship2 = new Relationship();
3142 relationship2.setRelatedTo("vpn-binding");
3143 RelationshipList relationshipList2 = new RelationshipList();
3144 relationshipList2.getRelationship().add(relationship2);
3146 org.onap.aai.domain.yang.Configuration aaiConfiguration1 = new org.onap.aai.domain.yang.Configuration();
3147 aaiConfiguration1.setConfigurationId("testConfigurationId");
3148 aaiConfiguration1.setRelationshipList(relationshipList1);
3150 org.onap.aai.domain.yang.Configuration aaiConfiguration2 = new org.onap.aai.domain.yang.Configuration();
3151 aaiConfiguration2.setConfigurationId("testConfigurationId2");
3152 aaiConfiguration2.setRelationshipList(relationshipList1);
3155 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById(resourceId);
3156 doReturn(serviceInstance).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
3157 doReturn(Optional.of(aaiConfiguration1)).when(aaiConfigurationResources)
3158 .getConfiguration("testConfigurationId");
3159 doReturn(Optional.of(aaiConfiguration2)).when(aaiConfigurationResources)
3160 .getConfiguration("testConfigurationId2");
3161 workflowAction.traverseAAIService(execution, resourceCounter, resourceId, aaiResourceIds);
3162 assertEquals(8, resourceCounter.size());
3163 assertTrue(resourceCounter.get(2).isBaseVfModule());
3164 assertThat(aaiResourceIds, sameBeanAs(getExpectedResourceIds()));
3165 } catch (Exception e) {
3166 fail("Unexpected exception was thrown.");
3170 private List<Pair<WorkflowType, String>> getExpectedResourceIds() {
3171 List<Pair<WorkflowType, String>> resourceIds = new ArrayList<>();
3172 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VNF, "testVnfId1"));
3173 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VFMODULE, "testVfModuleId1"));
3174 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VOLUMEGROUP, "testVolumeGroupId1"));
3175 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORK, "testNetworkId1"));
3176 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORKCOLLECTION, "testId"));
3177 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId"));
3178 resourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, "testConfigurationId2"));
3182 private List<OrchestrationFlow> createFlowList(String... flowNames) {
3183 List<OrchestrationFlow> result = new ArrayList<>();
3184 for (String flowName : flowNames) {
3185 OrchestrationFlow orchFlow = new OrchestrationFlow();
3186 orchFlow.setFlowName(flowName);
3187 result.add(orchFlow);
3192 private void assertEqualsBulkFlowName(List<ExecuteBuildingBlock> ebbs, String... flowNames) {
3193 for (int i = 0; i < ebbs.size(); i++) {
3194 assertEquals(ebbs.get(i).getBuildingBlock().getBpmnFlowName(), flowNames[i]);