2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.vid.services;
23 import static java.util.Collections.emptyList;
24 import static java.util.Collections.emptyMap;
25 import static org.hamcrest.MatcherAssert.assertThat;
26 import static org.hamcrest.core.IsEqual.equalTo;
27 import static org.mockito.ArgumentMatchers.any;
28 import static org.mockito.ArgumentMatchers.anyString;
29 import static org.mockito.ArgumentMatchers.eq;
30 import static org.mockito.Mockito.when;
31 import static org.onap.vid.model.VidNotions.InstantiationType;
32 import static org.onap.vid.model.VidNotions.InstantiationUI;
33 import static org.onap.vid.model.VidNotions.ModelCategory;
35 import com.google.common.collect.ImmutableList;
36 import com.google.common.collect.ImmutableMap;
37 import java.time.LocalDateTime;
38 import java.time.ZoneId;
39 import java.time.ZonedDateTime;
40 import java.util.ArrayList;
41 import java.util.Collections;
42 import java.util.Date;
43 import java.util.HashMap;
44 import java.util.LinkedHashMap;
45 import java.util.List;
47 import java.util.UUID;
48 import java.util.stream.Collectors;
49 import java.util.stream.Stream;
50 import javax.inject.Inject;
51 import org.hibernate.SessionFactory;
52 import org.onap.portalsdk.core.domain.FusionObject;
53 import org.onap.portalsdk.core.service.DataAccessService;
54 import org.onap.vid.aai.AaiClientInterface;
55 import org.onap.vid.aai.ExceptionWithRequestInfo;
56 import org.onap.vid.job.Job.JobStatus;
57 import org.onap.vid.model.Action;
58 import org.onap.vid.model.ServiceInfo;
59 import org.onap.vid.model.VidNotions;
60 import org.onap.vid.model.serviceInstantiation.InstanceGroup;
61 import org.onap.vid.model.serviceInstantiation.Network;
62 import org.onap.vid.model.serviceInstantiation.ServiceInstantiation;
63 import org.onap.vid.model.serviceInstantiation.VfModule;
64 import org.onap.vid.model.serviceInstantiation.Vnf;
65 import org.onap.vid.mso.RestObject;
66 import org.onap.vid.mso.model.ModelInfo;
67 import org.onap.vid.mso.rest.AsyncRequestStatus;
68 import org.onap.vid.mso.rest.RequestStatus;
69 import org.onap.vid.properties.Features;
70 import org.onap.vid.services.AsyncInstantiationBusinessLogicTest.ServiceInfoComparator;
71 import org.onap.vid.utils.DaoUtils;
72 import org.onap.vid.utils.TimeUtils;
73 import org.springframework.beans.factory.annotation.Autowired;
74 import org.springframework.http.HttpMethod;
75 import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
76 import org.togglz.core.manager.FeatureManager;
78 public class AsyncInstantiationBaseTest extends AbstractTestNGSpringContextTests {
80 public static final String MODEL_UUID = "337be3fc-293e-43ec-af0b-cf932dad07e6";
81 public static final String MODEL_UUID_2 = "ce052844-22ba-4030-a838-822f2b39eb9b";
83 public static final String OWNING_ENTITY_ID = "038d99af-0427-42c2-9d15-971b99b9b489";
84 public static final String JULIO_ERICKSON = "JULIO ERICKSON";
85 public static final String PROJECT_NAME = "{some project name}";
86 public static final String SUBSCRIBER_ID = "{some subscriber id}";
87 public static final String SUBSCRIBER_NAME = "{some subscriber name}";
88 public static final String PRODUCT_FAMILY_ID = "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb";
89 public static final String INSTANCE_NAME = "vPE_Service";
90 public static final String SUBSCRIPTION_SERVICE_TYPE = "VMX";
91 public static final String LCP_CLOUD_REGION_ID = "mdt1";
92 public static final String A6CA3EE0394ADE9403F075DB23167E = "88a6ca3ee0394ade9403f075db23167e";
93 public static final String TENANT_NAME = "USP-SIP-IC-24335-T-01";
94 public static final String AIC_ZONE_ID = "NFT1";
95 public static final String AIC_ZONE_NAME = "NFTJSSSS-NFT1";
96 public static final String TEST_API = "GR_API";
97 public static final String SERVICE_MODEL_VERSION_ID = "3c40d244-808e-42ca-b09a-256d83d19d0a";
98 public static final String VF_MODULE_0_MODEL_CUSTOMIZATION_NAME = "a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f";
99 public static final String VF_MODULE_1_MODEL_CUSTOMIZATION_NAME = "72d9d1cd-f46d-447a-abdb-451d6fb05fa8";
100 public static final String VF_MODULE_0_MODEL_VERSION_ID = "4c75f813-fa91-45a4-89d0-790ff5f1ae79";
101 public static final String VF_MODULE_1_MODEL_VERSION_ID = "56e2b103-637c-4d1a-adc8-3a7f4a6c3240";
102 public static final String VNF_NAME = "vmxnjr001";
103 public static final String VNF_GROUP_NAME = "VNF_GROUP_NAME";
105 protected HashMap<String, String> instanceParamsMapWithoutParams;
106 protected HashMap<String, String> vfModuleInstanceParamsMapWithParamsToRemove;
107 protected HashMap<String, String> vnfInstanceParamsMapWithParamsToRemove;
109 protected int serviceCount = 0;
113 protected DataAccessService dataAccessService;
116 protected FeatureManager featureManager;
119 protected AaiClientInterface aaiClient;
122 protected CloudOwnerService cloudOwnerService;
125 protected SessionFactory sessionFactory;
128 protected static Date toDate(LocalDateTime localDateTime) {
129 return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
132 protected HashMap<String, Object> getPropsMap() {
133 HashMap<String, Object> props = new HashMap<>();
134 props.put(FusionObject.Parameters.PARAM_USERID, 0);
139 private void setCreateDateToServiceInfo(UUID jobUuid, LocalDateTime createDate) {
140 List<ServiceInfo> serviceInfoList = dataAccessService.getList(ServiceInfo.class, getPropsMap());
141 DaoUtils.tryWithSessionAndTransaction(sessionFactory, session -> {
142 serviceInfoList.stream()
143 .filter(serviceInfo -> jobUuid.equals(serviceInfo.getJobId()))
144 .forEach(serviceInfo -> {
145 serviceInfo.setCreated(toDate(createDate));
146 session.saveOrUpdate(serviceInfo);
152 protected void addNewServiceInfo(UUID uuid, String userId, String serviceName, LocalDateTime createDate,
153 LocalDateTime statusModifiedDate, JobStatus status, boolean isHidden, boolean retryEnabled,
155 ServiceInfo serviceInfo = new ServiceInfo();
156 serviceInfo.setJobId(uuid);
157 serviceInfo.setUserId(userId);
158 serviceInfo.setServiceInstanceName(serviceName);
159 serviceInfo.setStatusModifiedDate(toDate(statusModifiedDate));
160 serviceInfo.setJobStatus(status);
161 serviceInfo.setPause(false);
162 serviceInfo.setOwningEntityId("1234");
163 serviceInfo.setCreatedBulkDate(toDate(createDate));
164 serviceInfo.setRetryEnabled(retryEnabled);
165 serviceInfo.setServiceModelId(modelUUID);
166 serviceInfo.setHidden(isHidden);
167 dataAccessService.saveDomainObject(serviceInfo, getPropsMap());
168 setCreateDateToServiceInfo(uuid, createDate);
174 public ServiceInstantiation generateMockMacroServiceInstantiationPayload(boolean isPause, Map<String, Vnf> vnfs, int bulkSize, boolean isUserProvidedNaming, String projectName, boolean rollbackOnFailure) {
175 return generateMockServiceInstantiationPayload(isPause, vnfs, Collections.EMPTY_MAP, Collections.EMPTY_MAP, bulkSize, isUserProvidedNaming, projectName, rollbackOnFailure, false, null, Action.Create, null);
178 public ServiceInstantiation generateMockALaCarteServiceInstantiationPayload(boolean isPause, Map<String, Vnf> vnfs, Map<String, Network> networks, Map<String, InstanceGroup> vnfGroups, int bulkSize, boolean isUserProvidedNaming, String projectName, boolean rollbackOnFailure, String testApi) {
179 return generateMockServiceInstantiationPayload(isPause, vnfs, networks, vnfGroups, bulkSize, isUserProvidedNaming, projectName, rollbackOnFailure, true, testApi, Action.Create, null);
182 public ServiceInstantiation generateMockAlaCarteServiceDeletionPayload(boolean isPause, Map<String, Vnf> vnfs, Map<String, Network> networks, Map<String, InstanceGroup> vnfGroups, int bulkSize, boolean isUserProvidedNaming, String projectName, boolean rollbackOnFailure, String testApi, String instanceId) {
183 return generateMockServiceInstantiationPayload(isPause, vnfs, networks, vnfGroups, bulkSize, isUserProvidedNaming, projectName, rollbackOnFailure, true, testApi, Action.Delete, instanceId);
186 public ServiceInstantiation generateMockServiceDeletionPayload(boolean isPause, Map<String, Vnf> vnfs, Map<String, Network> networks, Map<String, InstanceGroup> vnfGroups, int bulkSize, boolean isUserProvidedNaming, String projectName, boolean rollbackOnFailure, String testApi, String instanceId) {
187 return generateMockServiceInstantiationPayload(isPause, vnfs, networks, vnfGroups, bulkSize, isUserProvidedNaming, projectName, rollbackOnFailure, false, testApi, Action.Delete, instanceId);
189 private ServiceInstantiation generateMockServiceInstantiationPayload(boolean isPause, Map<String, Vnf> vnfs, Map<String, Network> networks, Map<String, InstanceGroup> vnfGroups, int bulkSize, boolean isUserProvidedNaming, String projectName, boolean rollbackOnFailure, boolean isAlacarte, String testApi, Action action, String instanceId) {
190 ModelInfo modelInfo = createModelInfo();
192 List<Map<String,String>> instanceParams = createInstanceParams();
194 return new ServiceInstantiation( modelInfo,
195 AsyncInstantiationBusinessLogicTest.OWNING_ENTITY_ID,
196 AsyncInstantiationBusinessLogicTest.JULIO_ERICKSON,
198 AsyncInstantiationBusinessLogicTest.SUBSCRIBER_ID,
199 AsyncInstantiationBusinessLogicTest.SUBSCRIBER_NAME,
200 AsyncInstantiationBusinessLogicTest.PRODUCT_FAMILY_ID,
201 isUserProvidedNaming ? AsyncInstantiationBusinessLogicTest.INSTANCE_NAME : null,
202 AsyncInstantiationBusinessLogicTest.SUBSCRIPTION_SERVICE_TYPE,
203 AsyncInstantiationBusinessLogicTest.LCP_CLOUD_REGION_ID,
205 AsyncInstantiationBusinessLogicTest.A6CA3EE0394ADE9403F075DB23167E,
206 AsyncInstantiationBusinessLogicTest.TENANT_NAME,
207 AsyncInstantiationBusinessLogicTest.AIC_ZONE_ID,
208 AsyncInstantiationBusinessLogicTest.AIC_ZONE_NAME,
221 UUID.randomUUID().toString(), null, null, null);
224 private List<Map<String,String>> createInstanceParams() {
225 List<Map<String, String>> instanceParams = new ArrayList<>();
226 HashMap<String, String> map = new HashMap<>();
227 map.put("instanceParams_test1" , "some text");
228 map.put("instanceParams_test2" , "another text");
229 instanceParams.add(map);
230 return instanceParams;
233 protected VfModule createVfModule(String modelName, String modelVersionId, String modelCustomizationId,
234 List<Map<String, String>> instanceParams, Map<String, String> supplementaryParams, String instanceName, String volumeGroupInstanceName, boolean isAlacarte) {
235 ModelInfo vfModuleInfo = new ModelInfo();
236 vfModuleInfo.setModelType("vfModule");
237 vfModuleInfo.setModelName(modelName);
238 vfModuleInfo.setModelVersionId(modelVersionId);
239 vfModuleInfo.setModelCustomizationId(modelCustomizationId);
240 vfModuleInfo.setModelCustomizationName(modelName);
243 vfModuleInfo.setModelInvariantId("22222222-f63c-463e-ba94-286933b895f9");
244 vfModuleInfo.setModelVersion("10.0");
245 return new VfModule(vfModuleInfo, instanceName, volumeGroupInstanceName, Action.Create.name(), "mdt1", null,
246 "88a6ca3ee0394ade9403f075db23167e", instanceParams, supplementaryParams, false, true, null, UUID.randomUUID().toString(), null, null,
250 return new VfModule(vfModuleInfo, instanceName, volumeGroupInstanceName, Action.Create.name(), null, null, null,
251 instanceParams, supplementaryParams, false, false, null, UUID.randomUUID().toString(), null,
252 null, null, null, null);
255 protected ModelInfo createVfModuleModelInfo(String modelName, String modelVersion, String modelVersionId, String modelInvariantId, String modelCustomizationId, String modelCustomizationName) {
256 return createModelInfo("vfModule", modelName, modelVersion, modelVersionId, modelInvariantId, modelCustomizationId, modelCustomizationName);
259 protected VfModule createVfModuleForReplace(ModelInfo vfModuleModelInfo, String instanceName,
260 String lcpCloudRegionId, String tenantId, Boolean retainAssignments, Boolean retainVolumeGroups, Map<String, String> supplementaryParams) {
261 return new VfModule( vfModuleModelInfo, instanceName, null, Action.Upgrade.name(), lcpCloudRegionId, null, tenantId,
262 null, supplementaryParams, true, null, null, UUID.randomUUID().toString(), null, null, retainAssignments, retainVolumeGroups, null);
265 protected ModelInfo createVnfModelInfo(boolean isAlacarte) {
266 ModelInfo vnfModelInfo = new ModelInfo();
267 vnfModelInfo.setModelType("vnf");
268 vnfModelInfo.setModelName("2016-73_MOW-AVPN-vPE-BV-L");
269 vnfModelInfo.setModelVersionId("7f40c192-f63c-463e-ba94-286933b895f8");
270 vnfModelInfo.setModelCustomizationName("2016-73_MOW-AVPN-vPE-BV-L 0");
271 vnfModelInfo.setModelCustomizationId("ab153b6e-c364-44c0-bef6-1f2982117f04");
272 //added two conditional fields according to MSO AID - needed only in alacarte
274 vnfModelInfo.setModelInvariantId("11111111-f63c-463e-ba94-286933b895f9");
275 vnfModelInfo.setModelVersion("10.0");
280 protected ModelInfo createVnfModelInfo(String modelName, String modelVersion, String modelVersionId, String modelInvariantId, String modelCustomizationId, String modelCustomizationName) {
281 return createModelInfo("vnf", modelName, modelVersion, modelVersionId, modelInvariantId, modelCustomizationId, modelCustomizationName);
284 private ModelInfo createNetworkModelInfo(boolean isAlacarte, String modelCustomizationId)
286 ModelInfo modelInfo = new ModelInfo();
287 modelInfo.setModelType("network");
288 modelInfo.setModelName("2016-73_MOW-AVPN-vPE-BV-L");
289 modelInfo.setModelVersionId("7f40c192-f63c-463e-ba94-286933b895f8");
290 modelInfo.setModelCustomizationName("2016-73_MOW-AVPN-vPE-BV-L 0");
291 modelInfo.setModelCustomizationId(modelCustomizationId);
292 //added two conditional fields according to MSO AID - needed only in alacarte
294 modelInfo.setModelInvariantId("11111111-f63c-463e-ba94-286933b895f9");
295 modelInfo.setModelVersion("10.0");
300 private ModelInfo createModelInfo() {
301 ModelInfo modelInfo = new ModelInfo();
302 modelInfo.setModelType("service");
303 modelInfo.setModelVersionId(SERVICE_MODEL_VERSION_ID);
304 modelInfo.setModelVersion("10.0");
305 modelInfo.setModelInvariantId("5d48acb5-097d-4982-aeb2-f4a3bd87d31b");
306 modelInfo.setModelName("MOW AVPN vMX BV vPE 1 Service");
310 private ModelInfo createModelInfo(String modelType, String modelName, String modelVersion, String modelVersionId, String modelInvariantId, String modelCustomizationId, String modelCustomizationName ) {
311 ModelInfo modelInfo = new ModelInfo();
312 modelInfo.setModelType(modelType);
313 modelInfo.setModelVersionId(modelVersionId);
314 modelInfo.setModelVersion(modelVersion);
315 modelInfo.setModelInvariantId(modelInvariantId);
316 modelInfo.setModelName(modelName);
317 modelInfo.setModelCustomizationId(modelCustomizationId);
318 modelInfo.setModelCustomizationName(modelCustomizationName);
322 protected Map<String, Vnf> createVnfList(HashMap<String, String> vfModuleInstanceParamsMap, List vnfInstanceParams, boolean isUserProvidedNaming) {
323 return createVnfList(vfModuleInstanceParamsMap, vnfInstanceParams, isUserProvidedNaming, false);
326 protected Map<String, Vnf> createVnfList(HashMap<String, String> vfModuleInstanceParamsMap, List vnfInstanceParams, boolean isUserProvidedNaming, boolean isAlacarte) {
327 Map<String, Vnf> vnfs = new HashMap<>();
328 ModelInfo vnfModelInfo = createVnfModelInfo(isAlacarte);
330 Map<String, Map<String, VfModule>> vfModules = new HashMap<>();
332 List<Map<String, String>> instanceParams1 = ImmutableList.of((ImmutableMap.of("vmx_int_net_len", "24")));
333 VfModule vfModule1 = createVfModule("201673MowAvpnVpeBvL..AVPN_base_vPE_BV..module-0", VF_MODULE_0_MODEL_VERSION_ID, VF_MODULE_0_MODEL_CUSTOMIZATION_NAME, instanceParams1, new HashMap<>(), (isUserProvidedNaming ? "vmxnjr001_AVPN_base_vPE_BV_base" : null), null, isAlacarte);
334 List<Map<String, String>> instanceParams2 = ImmutableList.of(vfModuleInstanceParamsMap);
335 VfModule vfModule2 = createVfModule("201673MowAvpnVpeBvL..AVPN_vRE_BV..module-1", VF_MODULE_1_MODEL_VERSION_ID, VF_MODULE_1_MODEL_CUSTOMIZATION_NAME, instanceParams2, new HashMap<>(), (isUserProvidedNaming ? "vmxnjr001_AVPN_base_vRE_BV_expansion": null), (isUserProvidedNaming ? "myVgName" : null), isAlacarte);
337 String vfModuleModelName = vfModule1.getModelInfo().getModelName();
338 vfModules.put(vfModuleModelName, new LinkedHashMap<>());
340 vfModules.get(vfModuleModelName).put(vfModuleModelName + ":001", vfModule1);
341 vfModules.get(vfModuleModelName).put(vfModuleModelName + ":002", vfModule2);
343 Vnf vnf = new Vnf(vnfModelInfo, "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", (isUserProvidedNaming ? VNF_NAME : null), Action.Create.name(),
344 "platformName", "mdt1", null, "88a6ca3ee0394ade9403f075db23167e", vnfInstanceParams,"lineOfBusinessName" , false, null, vfModules,
345 UUID.randomUUID().toString(), null, null, null);
347 vnfs.put(vnf.getModelInfo().getModelName(), vnf);
351 protected void mockAaiClientAaiStatusOK() {
352 when(aaiClient.isNodeTypeExistsByName(eq(AsyncInstantiationBusinessLogicImpl.NAME_FOR_CHECK_AAI_STATUS), any())).thenReturn(false);
355 protected void enableAddCloudOwnerOnMsoRequest(boolean isActive) {
356 // always turn on the feature flag
357 when(featureManager.isActive(Features.FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST)).thenReturn(isActive);
358 when(aaiClient.getCloudOwnerByCloudRegionId(anyString())).thenReturn("irma-aic");
361 protected void enableAddCloudOwnerOnMsoRequest() {
362 enableAddCloudOwnerOnMsoRequest(true);
365 protected ServiceInstantiation generateMacroMockServiceInstantiationPayload(boolean isPause, Map<String, Vnf> vnfs) {
366 return generateMockMacroServiceInstantiationPayload(isPause, vnfs, 1, true, PROJECT_NAME, false);
369 protected ServiceInstantiation generatePre1806MacroTransportServiceInstantiationPayload(String tenantId, String lcpCloudRegionId) {
370 List<Map<String, String>> instanceParams = ImmutableList
371 .of(ImmutableMap.of("someUserParam","someValue", "anotherUserParam","anotherValue"));
372 ServiceInstantiation serviceInstantiation = new ServiceInstantiation(createServiceModelInfo(), "038d99af-0427-42c2-9d15-971b99b9b489",
373 "JULIO ERICKSON", "some_project_name", "some_subscriber_id", "some_subscriber_name",
374 "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", null, "MOG", lcpCloudRegionId, null, tenantId,
375 null, null, null, Collections.EMPTY_MAP, Collections.EMPTY_MAP, Collections.EMPTY_MAP, Collections.EMPTY_MAP, instanceParams, false, 1, false, false,
376 null, null, null, null, null, null,
377 new VidNotions(InstantiationUI.TRANSPORT_SERVICE, ModelCategory.Transport, InstantiationUI.TRANSPORT_SERVICE, InstantiationType.Macro)
379 return serviceInstantiation;
382 public static class NetworkDetails {
384 public NetworkDetails(String name, String modelCustomizationId) {
386 this.modelCustomizationId = modelCustomizationId;
390 public String modelCustomizationId;
393 protected Map<String, Network> createNetworkList(List instanceParams, List<NetworkDetails> networkDetails, boolean isALaCarte) {
394 Stream<Network> networkStream = networkDetails.stream().map(
395 details->new Network(createNetworkModelInfo(isALaCarte, details.modelCustomizationId), "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
396 details.name, Action.Create.name(),
397 "platformName", "mdt1", null, "88a6ca3ee0394ade9403f075db23167e", instanceParams,"lineOfBusinessName" ,
398 false, null, UUID.randomUUID().toString(), null, null, null));
399 // I can't tell why compiler don't like the statement if it's only one line...
400 return networkStream.collect(Collectors.toMap(network -> network.getModelInfo().getModelCustomizationId(), network -> network));
403 protected InstanceGroup createInstanceGroup(boolean isUserProvidedNaming, Action action) {
404 ModelInfo modelInfo = new ModelInfo();
405 modelInfo.setModelType("instanceGroup");
406 modelInfo.setModelName("2016-73_MOW-AVPN-vPE-BV-L");
407 modelInfo.setModelVersionId("7f40c192-f63c-463e-ba94-286933b895f8");
408 modelInfo.setModelCustomizationName("2016-73_MOW-AVPN-vPE-BV-L 0");
409 modelInfo.setModelCustomizationId("ab153b6e-c364-44c0-bef6-1f2982117f04");
410 modelInfo.setModelInvariantId("11111111-f63c-463e-ba94-286933b895f9");
411 modelInfo.setModelVersion("10.0");
413 return new InstanceGroup(modelInfo, (isUserProvidedNaming ? VNF_GROUP_NAME : null), action.name(), false, null, emptyMap(), UUID.randomUUID().toString(), null, null,
417 protected ModelInfo createServiceModelInfo() {
418 ModelInfo siModelInfo = new ModelInfo();
419 siModelInfo.setModelName("sriov");
420 siModelInfo.setModelType("service");
421 siModelInfo.setModelInvariantId("ff3514e3-5a33-55df-13ab-12abad84e7ff");
422 siModelInfo.setModelVersionId("fe6985cd-ea33-3346-ac12-ab121484a3fe");
423 siModelInfo.setModelVersion("1.0");
428 protected ModelInfo createServiceModelInfo(String modelName, String modelVersion, String modelVersionId, String modelInvariantId, String modelCustomizationId, String modelCustomizationName) {
429 return createModelInfo("service", modelName, modelVersion, modelVersionId, modelInvariantId, modelCustomizationId, modelCustomizationName);
432 protected void createInstanceParamsMaps() {
433 instanceParamsMapWithoutParams = new HashMap<>();
434 instanceParamsMapWithoutParams.put("availability_zone_0" , "mtpocdv-kvm-az01");
435 instanceParamsMapWithoutParams.put("vre_a_volume_size_0" , "100");
437 vfModuleInstanceParamsMapWithParamsToRemove = new HashMap<>();
438 vfModuleInstanceParamsMapWithParamsToRemove.put(AsyncInstantiationBusinessLogic.PARAMS_TO_IGNORE.get(0), "should be removed");
439 vfModuleInstanceParamsMapWithParamsToRemove.put("availability_zone_0" , "mtpocdv-kvm-az01");
440 vfModuleInstanceParamsMapWithParamsToRemove.put("vre_a_volume_size_0" , "100");
442 vnfInstanceParamsMapWithParamsToRemove = new HashMap<>();
443 vnfInstanceParamsMapWithParamsToRemove.put(AsyncInstantiationBusinessLogic.PARAMS_TO_IGNORE.get(1), "should be removed");
446 public static AsyncRequestStatus asyncRequestStatusResponse(String msoStatus) {
447 AsyncRequestStatus asyncRequestStatus = new AsyncRequestStatus(new AsyncRequestStatus.Request(new RequestStatus()));
448 asyncRequestStatus.request.requestStatus.setRequestState(msoStatus);
449 asyncRequestStatus.request.requestId = UUID.randomUUID().toString();
450 asyncRequestStatus.request.startTime = TimeUtils.zonedDateTimeToString(ZonedDateTime.now());
451 return asyncRequestStatus;
454 public static RestObject<AsyncRequestStatus> asyncRequestStatusResponseAsRestObject(String msoStatus) {
455 return asyncRequestStatusResponseAsRestObject(msoStatus, 200);
458 public static RestObject<AsyncRequestStatus> asyncRequestStatusResponseAsRestObject(String msoStatus, int httpStatusCode) {
459 RestObject<AsyncRequestStatus> restObject = new RestObject<>();
460 restObject.set(asyncRequestStatusResponse(msoStatus));
461 restObject.setStatusCode(httpStatusCode);
465 protected void mockAaiClientAnyNameFree() {
466 when(aaiClient.isNodeTypeExistsByName(any(), any())).thenReturn(false);
469 protected ExceptionWithRequestInfo aaiNodeQueryBadResponseException() {
470 return new ExceptionWithRequestInfo(HttpMethod.GET, "url", "raw data", 500, null);
473 protected ServiceInstantiation generateALaCarteWithVnfsServiceInstantiationPayload() {
474 Map<String, Vnf> vnfs = createVnfList(vfModuleInstanceParamsMapWithParamsToRemove, Collections.singletonList(vnfInstanceParamsMapWithParamsToRemove) , true, true);
475 ServiceInstantiation serviceInstantiation = generateMockALaCarteServiceInstantiationPayload(false, vnfs, emptyMap(), emptyMap(), 1, true, PROJECT_NAME, false, "VNF_API");
476 return serviceInstantiation;
479 protected ServiceInstantiation generateALaCarteWithNetworksPayload(List<NetworkDetails> networkDetails) {
480 Map<String, Network> networks = createNetworkList(emptyList(), networkDetails, true);
481 ServiceInstantiation serviceInstantiation = generateMockALaCarteServiceInstantiationPayload(false, emptyMap(), networks, emptyMap(), 1, true, PROJECT_NAME, false, "VNF_API");
482 return serviceInstantiation;
485 protected ServiceInstantiation generateALaCarteUpdateWith1ExistingGroup2NewGroupsPayload() {
486 final InstanceGroup instanceGroup1 = createInstanceGroup(true, Action.None);
487 final InstanceGroup instanceGroup2 = createInstanceGroup(false, Action.Create);
488 final InstanceGroup instanceGroup3 = createInstanceGroup(true, Action.Create);
489 Map<String, InstanceGroup> groups = ImmutableMap.of(
490 "foo:001", instanceGroup1,
491 "foo:002", instanceGroup2,
492 "foo:003", instanceGroup3
494 return generateMockServiceInstantiationPayload(false, emptyMap(), emptyMap(), groups,
495 1, true, PROJECT_NAME, false, true, "VNF_API",
496 Action.None, "1234567890");
499 protected ServiceInstantiation generateALaCarteServiceInstantiationPayload() {
500 return generateMockALaCarteServiceInstantiationPayload(false, Collections.EMPTY_MAP, Collections.EMPTY_MAP, Collections.EMPTY_MAP, 1, true, PROJECT_NAME, false, "VNF_API");