aboutsummaryrefslogtreecommitdiffstats
path: root/vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBaseTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBaseTest.java')
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBaseTest.java220
1 files changed, 148 insertions, 72 deletions
diff --git a/vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBaseTest.java b/vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBaseTest.java
index 5ead3fce4..ed8d91fe6 100644
--- a/vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBaseTest.java
+++ b/vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBaseTest.java
@@ -1,52 +1,25 @@
-/*-
- * ============LICENSE_START=======================================================
- * VID
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * Modifications Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
package org.onap.vid.services;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
-import io.joshworks.restclient.http.HttpResponse;
-import jersey.repackaged.com.google.common.collect.ImmutableList;
-import org.apache.http.HttpStatus;
-import org.apache.http.HttpVersion;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.DefaultHttpResponseFactory;
-import org.apache.http.message.BasicStatusLine;
-import org.onap.vid.aai.AaiOverTLSClientInterface;
-import org.onap.vid.aai.AaiResponse;
-import org.onap.vid.aai.model.AaiNodeQueryResponse;
-import org.onap.vid.aai.model.ResourceType;
-import org.onap.vid.domain.mso.ModelInfo;
-import org.onap.vid.domain.mso.RequestStatus;
-import org.onap.vid.model.serviceInstantiation.ServiceInstantiation;
-import org.onap.vid.model.serviceInstantiation.VfModule;
-import org.onap.vid.model.serviceInstantiation.Vnf;
+import org.onap.vid.aai.AaiClientInterface;
+import org.onap.vid.aai.ExceptionWithRequestInfo;
+import org.onap.vid.model.Action;
+import org.onap.vid.model.serviceInstantiation.*;
import org.onap.vid.mso.RestObject;
+import org.onap.vid.mso.model.ModelInfo;
import org.onap.vid.mso.rest.AsyncRequestStatus;
+import org.onap.vid.mso.rest.RequestStatus;
+import org.onap.vid.utils.TimeUtils;
+import org.springframework.http.HttpMethod;
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
import org.togglz.core.manager.FeatureManager;
import javax.inject.Inject;
-import java.io.UnsupportedEncodingException;
+import java.time.ZonedDateTime;
import java.util.*;
+import static java.util.Collections.emptyMap;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
@@ -65,6 +38,14 @@ public class AsyncInstantiationBaseTest extends AbstractTestNGSpringContextTests
public static final String TENANT_NAME = "USP-SIP-IC-24335-T-01";
public static final String AIC_ZONE_ID = "NFT1";
public static final String AIC_ZONE_NAME = "NFTJSSSS-NFT1";
+ public static final String TEST_API = "GR_API";
+ public static final String SERVICE_MODEL_VERSION_ID = "3c40d244-808e-42ca-b09a-256d83d19d0a";
+ public static final String VF_MODULE_0_MODEL_CUSTOMIZATION_NAME = "a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f";
+ public static final String VF_MODULE_1_MODEL_CUSTOMIZATION_NAME = "72d9d1cd-f46d-447a-abdb-451d6fb05fa8";
+ public static final String VF_MODULE_0_MODEL_VERSION_ID = "4c75f813-fa91-45a4-89d0-790ff5f1ae79";
+ public static final String VF_MODULE_1_MODEL_VERSION_ID = "56e2b103-637c-4d1a-adc8-3a7f4a6c3240";
+ public static final String VNF_NAME = "vmxnjr001";
+ public static final String VNF_GROUP_NAME = "VNF_GROUP_NAME";
protected HashMap<String, String> instanceParamsMapWithoutParams;
protected HashMap<String, String> vfModuleInstanceParamsMapWithParamsToRemove;
@@ -74,34 +55,53 @@ public class AsyncInstantiationBaseTest extends AbstractTestNGSpringContextTests
protected FeatureManager featureManager;
@Inject
- protected AaiOverTLSClientInterface aaiClient;
+ protected AaiClientInterface aaiClient;
+
+ @Inject
+ protected CloudOwnerService cloudOwnerService;
+
+ public ServiceInstantiation generateMockMacroServiceInstantiationPayload(boolean isPause, Map<String, Vnf> vnfs, int bulkSize, boolean isUserProvidedNaming, String projectName, boolean rollbackOnFailure) {
+ return generateMockServiceInstantiationPayload(isPause, vnfs, Collections.EMPTY_MAP, Collections.EMPTY_MAP, bulkSize, isUserProvidedNaming, projectName, rollbackOnFailure, false, null, Action.Create, null);
+ }
- public ServiceInstantiation generateMockServiceInstantiationPayload(boolean isPause, Map<String, Vnf> vnfs, int bulkSize, boolean isUserProvidedNaming, String projectName, boolean rollbackOnFailure) {
+ 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) {
+ return generateMockServiceInstantiationPayload(isPause, vnfs, networks, vnfGroups, bulkSize, isUserProvidedNaming, projectName, rollbackOnFailure, true, testApi, Action.Create, null);
+ }
+
+ 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) {
+ return generateMockServiceInstantiationPayload(isPause, vnfs, networks, vnfGroups, bulkSize, isUserProvidedNaming, projectName, rollbackOnFailure, true, testApi, Action.Delete, instanceId);
+ }
+ 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) {
ModelInfo modelInfo = createModelInfo();
List<Map<String,String>> instanceParams = createInstanceParams();
- return new ServiceInstantiation (
- modelInfo,
+ return new ServiceInstantiation ( modelInfo,
AsyncInstantiationBusinessLogicTest.OWNING_ENTITY_ID,
AsyncInstantiationBusinessLogicTest.PACKET_CORE,
projectName,
AsyncInstantiationBusinessLogicTest.SUBSCRIBER_ID,
AsyncInstantiationBusinessLogicTest.SUBSCRIBER_NAME,
AsyncInstantiationBusinessLogicTest.PRODUCT_FAMILY_ID,
- isUserProvidedNaming ? AsyncInstantiationBusinessLogicTest.INSTANCE_NAME : "" ,
- isUserProvidedNaming,
+ isUserProvidedNaming ? AsyncInstantiationBusinessLogicTest.INSTANCE_NAME : null,
AsyncInstantiationBusinessLogicTest.SUBSCRIPTION_SERVICE_TYPE,
AsyncInstantiationBusinessLogicTest.LCP_CLOUD_REGION_ID,
+ null,
AsyncInstantiationBusinessLogicTest.A6CA3EE0394ADE9403F075DB23167E,
AsyncInstantiationBusinessLogicTest.TENANT_NAME,
AsyncInstantiationBusinessLogicTest.AIC_ZONE_ID,
AsyncInstantiationBusinessLogicTest.AIC_ZONE_NAME,
vnfs,
+ networks,
+ vnfGroups,
instanceParams,
isPause,
bulkSize,
- rollbackOnFailure
+ rollbackOnFailure,
+ isAlacarte,
+ testApi,
+ instanceId,
+ action.name()
);
}
@@ -114,30 +114,58 @@ public class AsyncInstantiationBaseTest extends AbstractTestNGSpringContextTests
return instanceParams;
}
- private VfModule createVfModule(String modelName, String modelVersionId, String modelCustomizationId,
- List<Map<String, String>> instanceParams, String instanceName, String volumeGroupInstanceName) {
+ protected VfModule createVfModule(String modelName, String modelVersionId, String modelCustomizationId,
+ List<Map<String, String>> instanceParams, Map<String, String> supplementaryParams, String instanceName, String volumeGroupInstanceName, boolean isAlacarte) {
ModelInfo vfModuleInfo = new ModelInfo();
vfModuleInfo.setModelType("vfModule");
vfModuleInfo.setModelName(modelName);
vfModuleInfo.setModelVersionId(modelVersionId);
vfModuleInfo.setModelCustomizationId(modelCustomizationId);
- return new VfModule(vfModuleInfo , instanceName, volumeGroupInstanceName, instanceParams);
+ vfModuleInfo.setModelCustomizationName(modelName);
+
+ if (isAlacarte) {
+ vfModuleInfo.setModelInvariantId("22222222-f63c-463e-ba94-286933b895f9");
+ vfModuleInfo.setModelVersion("10.0");
+ return new VfModule(vfModuleInfo, instanceName, volumeGroupInstanceName, Action.Create.name(), "mdt1", null, "88a6ca3ee0394ade9403f075db23167e", instanceParams, supplementaryParams, false, true, null);
+ }
+
+ return new VfModule(vfModuleInfo, instanceName, volumeGroupInstanceName, Action.Create.name(), null, null, null, instanceParams, supplementaryParams, false, false, null);
}
- private ModelInfo createVnfModelInfo() {
+ protected ModelInfo createVnfModelInfo(boolean isAlacarte) {
ModelInfo vnfModelInfo = new ModelInfo();
vnfModelInfo.setModelType("vnf");
vnfModelInfo.setModelName("2016-73_MOW-AVPN-vPE-BV-L");
vnfModelInfo.setModelVersionId("7f40c192-f63c-463e-ba94-286933b895f8");
vnfModelInfo.setModelCustomizationName("2016-73_MOW-AVPN-vPE-BV-L 0");
vnfModelInfo.setModelCustomizationId("ab153b6e-c364-44c0-bef6-1f2982117f04");
+ //added two conditional fields according to MSO AID - needed only in alacarte
+ if (isAlacarte) {
+ vnfModelInfo.setModelInvariantId("11111111-f63c-463e-ba94-286933b895f9");
+ vnfModelInfo.setModelVersion("10.0");
+ }
+ return vnfModelInfo;
+ }
+
+ private ModelInfo createNetworkModelInfo(boolean isAlacarte) {
+ ModelInfo vnfModelInfo = new ModelInfo();
+ vnfModelInfo.setModelType("network");
+ vnfModelInfo.setModelName("2016-73_MOW-AVPN-vPE-BV-L");
+ vnfModelInfo.setModelVersionId("7f40c192-f63c-463e-ba94-286933b895f8");
+ vnfModelInfo.setModelCustomizationName("2016-73_MOW-AVPN-vPE-BV-L 0");
+ vnfModelInfo.setModelCustomizationId("ab153b6e-c364-44c0-bef6-1f2982117f04");
+ //added two conditional fields according to MSO AID - needed only in alacarte
+ if (isAlacarte) {
+ vnfModelInfo.setModelInvariantId("11111111-f63c-463e-ba94-286933b895f9");
+ vnfModelInfo.setModelVersion("10.0");
+ }
return vnfModelInfo;
}
private ModelInfo createModelInfo() {
ModelInfo modelInfo = new ModelInfo();
modelInfo.setModelType("service");
- modelInfo.setModelVersionId("3c40d244-808e-42ca-b09a-256d83d19d0a");
+ modelInfo.setModelVersionId(SERVICE_MODEL_VERSION_ID);
modelInfo.setModelVersion("10.0");
modelInfo.setModelInvariantId("5d48acb5-097d-4982-aeb2-f4a3bd87d31b");
modelInfo.setModelName("MOW AVPN vMX BV vPE 1 Service");
@@ -145,29 +173,68 @@ public class AsyncInstantiationBaseTest extends AbstractTestNGSpringContextTests
}
protected Map<String, Vnf> createVnfList(HashMap<String, String> vfModuleInstanceParamsMap, List vnfInstanceParams, boolean isUserProvidedNaming) {
+ return createVnfList(vfModuleInstanceParamsMap, vnfInstanceParams, isUserProvidedNaming, false);
+ }
+
+ protected Map<String, Vnf> createVnfList(HashMap<String, String> vfModuleInstanceParamsMap, List vnfInstanceParams, boolean isUserProvidedNaming, boolean isAlacarte) {
Map<String, Vnf> vnfs = new HashMap<>();
- ModelInfo vnfModelInfo = createVnfModelInfo();
+ ModelInfo vnfModelInfo = createVnfModelInfo(isAlacarte);
Map<String, Map<String, VfModule>> vfModules = new HashMap<>();
- List<Map<String, String>> instanceParams1 =ImmutableList.of((ImmutableMap.of("vmx_int_net_len", "24")));
- VfModule vfModule1 = createVfModule("201673MowAvpnVpeBvL..AVPN_base_vPE_BV..module-0", "4c75f813-fa91-45a4-89d0-790ff5f1ae79", "a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f", instanceParams1, "vmxnjr001_AVPN_base_vPE_BV_base", null);
+ List<Map<String, String>> instanceParams1 = ImmutableList.of((ImmutableMap.of("vmx_int_net_len", "24")));
+ 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);
List<Map<String, String>> instanceParams2 = ImmutableList.of(vfModuleInstanceParamsMap);
- VfModule vfModule2 = createVfModule("201673MowAvpnVpeBvL..AVPN_vRE_BV..module-1", "56e2b103-637c-4d1a-adc8-3a7f4a6c3240", "72d9d1cd-f46d-447a-abdb-451d6fb05fa8", instanceParams2, "vmxnjr001_AVPN_base_vRE_BV_expansion", "myVgName");
+ 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);
String vfModuleModelName = vfModule1.getModelInfo().getModelName();
vfModules.put(vfModuleModelName, new LinkedHashMap<>());
- vfModules.get(vfModuleModelName).put(vfModule1.getInstanceName(),vfModule1);
- vfModules.get(vfModuleModelName).put(vfModule2.getInstanceName(), vfModule2);
+ vfModules.get(vfModuleModelName).put(vfModuleModelName + ":001", vfModule1);
+ vfModules.get(vfModuleModelName).put(vfModuleModelName + ":002", vfModule2);
- Vnf vnf = new Vnf(vnfModelInfo, "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", "vmxnjr001", isUserProvidedNaming,
- "platformName", "mdt1", "88a6ca3ee0394ade9403f075db23167e", vnfInstanceParams,"lineOfBusinessName" ,vfModules);
+ Vnf vnf = new Vnf(vnfModelInfo, "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", (isUserProvidedNaming ? VNF_NAME : null), Action.Create.name(),
+ "platformName", "mdt1", null, "88a6ca3ee0394ade9403f075db23167e", vnfInstanceParams,"lineOfBusinessName" , false, null, vfModules);
- vnfs.put(vnf.getInstanceName(), vnf);
+ vnfs.put(vnf.getModelInfo().getModelName(), vnf);
return vnfs;
}
+ protected Map<String, Network> createNetworkList(List vnfInstanceParams, boolean isUserProvidedNaming, boolean isALaCarte) {
+ Map<String, Network> networks = new HashMap<>();
+ ModelInfo networkModelInfo = createNetworkModelInfo(isALaCarte);
+
+ Network network = new Network(networkModelInfo, "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", isUserProvidedNaming ? VNF_NAME : null, Action.Create.name(),
+ "platformName", "mdt1", null, "88a6ca3ee0394ade9403f075db23167e", vnfInstanceParams,"lineOfBusinessName" , false, null);
+
+ networks.put(network.getModelInfo().getModelName(), network);
+ return networks;
+ }
+
+ protected InstanceGroup createInstanceGroup(boolean isUserProvidedNaming, Action action) {
+ ModelInfo modelInfo = new ModelInfo();
+ modelInfo.setModelType("instanceGroup");
+ modelInfo.setModelName("2016-73_MOW-AVPN-vPE-BV-L");
+ modelInfo.setModelVersionId("7f40c192-f63c-463e-ba94-286933b895f8");
+ modelInfo.setModelCustomizationName("2016-73_MOW-AVPN-vPE-BV-L 0");
+ modelInfo.setModelCustomizationId("ab153b6e-c364-44c0-bef6-1f2982117f04");
+ modelInfo.setModelInvariantId("11111111-f63c-463e-ba94-286933b895f9");
+ modelInfo.setModelVersion("10.0");
+
+ return new InstanceGroup(modelInfo, (isUserProvidedNaming ? VNF_GROUP_NAME : null), action.name(), false, null);
+ }
+
+ protected ModelInfo createServiceModelInfo() {
+ ModelInfo siModelInfo = new ModelInfo();
+ siModelInfo.setModelName("sriov");
+ siModelInfo.setModelType("service");
+ siModelInfo.setModelInvariantId("ff3514e3-5a33-55df-13ab-12abad84e7ff");
+ siModelInfo.setModelVersionId("fe6985cd-ea33-3346-ac12-ab121484a3fe");
+ siModelInfo.setModelVersion("1.0");
+
+ return siModelInfo;
+ }
+
protected void createInstanceParamsMaps() {
instanceParamsMapWithoutParams = new HashMap<>();
instanceParamsMapWithoutParams.put("availability_zone_0" , "mtpocdv-kvm-az01");
@@ -182,10 +249,11 @@ public class AsyncInstantiationBaseTest extends AbstractTestNGSpringContextTests
vnfInstanceParamsMapWithParamsToRemove.put(AsyncInstantiationBusinessLogic.PARAMS_TO_IGNORE.get(1), "should be removed");
}
- protected AsyncRequestStatus asyncRequestStatusResponse(String msoStatus) {
+ public static AsyncRequestStatus asyncRequestStatusResponse(String msoStatus) {
AsyncRequestStatus asyncRequestStatus = new AsyncRequestStatus(new AsyncRequestStatus.Request(new RequestStatus()));
asyncRequestStatus.request.requestStatus.setRequestState(msoStatus);
asyncRequestStatus.request.requestId = UUID.randomUUID().toString();
+ asyncRequestStatus.request.startTime = TimeUtils.zonedDateTimeToString(ZonedDateTime.now());
return asyncRequestStatus;
}
@@ -200,23 +268,31 @@ public class AsyncInstantiationBaseTest extends AbstractTestNGSpringContextTests
return restObject;
}
- protected void mockAaiClientAnyNameFree() throws UnsupportedEncodingException {
- when(aaiClient.searchNodeTypeByName(any(), any())).thenReturn(aaiNodeQueryResponseNameFree());
+ protected void mockAaiClientAnyNameFree() {
+ when(aaiClient.isNodeTypeExistsByName(any(), any())).thenReturn(false);
}
- protected HttpResponse<AaiNodeQueryResponse> aaiNodeQueryResponseNameFree() throws UnsupportedEncodingException {
- org.apache.http.HttpResponse response = new DefaultHttpResponseFactory().newHttpResponse(new BasicStatusLine(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, null), null);
- response.setEntity(new StringEntity(""));
-
- return HttpResponse.fallback(new AaiNodeQueryResponse(null));
+ protected ExceptionWithRequestInfo aaiNodeQueryBadResponseException() {
+ return new ExceptionWithRequestInfo(HttpMethod.GET, "url", "raw data", 500, null);
}
- protected AaiResponse<AaiNodeQueryResponse> aaiNodeQueryBadResponse() {
- return new AaiResponse<>(null,"", 404);
+ protected ServiceInstantiation generateALaCarteWithVnfsServiceInstantiationPayload() {
+ Map<String, Vnf> vnfs = createVnfList(vfModuleInstanceParamsMapWithParamsToRemove, Collections.singletonList(vnfInstanceParamsMapWithParamsToRemove) , true);
+ ServiceInstantiation serviceInstantiation = generateMockALaCarteServiceInstantiationPayload(false, vnfs, emptyMap(), emptyMap(), 1, true, PROJECT_NAME, false, "VNF_API");
+ return serviceInstantiation;
}
- protected AaiResponse<AaiNodeQueryResponse> aaiNodeQueryResponseNameUsed(ResourceType type) {
- AaiNodeQueryResponse mockAaiNodeQuery = new AaiNodeQueryResponse(ImmutableList.of(new AaiNodeQueryResponse.ResultData(type, "/some/mocked/link")));
- return new AaiResponse<>(mockAaiNodeQuery,"", 200);
+ protected ServiceInstantiation generateALaCarteUpdateWith1ExistingGroup2NewGroupsPayload() {
+ final InstanceGroup instanceGroup1 = createInstanceGroup(true, Action.None);
+ final InstanceGroup instanceGroup2 = createInstanceGroup(false, Action.Create);
+ final InstanceGroup instanceGroup3 = createInstanceGroup(true, Action.Create);
+ Map<String, InstanceGroup> groups = ImmutableMap.of(
+ "foo:001", instanceGroup1,
+ "foo:002", instanceGroup2,
+ "foo:003", instanceGroup3
+ );
+ return generateMockServiceInstantiationPayload(false, emptyMap(), emptyMap(), groups,
+ 1, true, PROJECT_NAME, false, true, "VNF_API",
+ Action.None, "1234567890");
}
}