import org.onap.so.client.aai.entities.AAIResultWrapper;
import org.onap.so.client.aai.entities.uri.AAIResourceUri;
import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
-import org.onap.so.db.catalog.beans.ServiceProxyResourceCustomization;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
return null;
}
- protected void aaiVpnBindingValidation(org.onap.aai.domain.yang.VpnBinding aaiVpnBinding)
+ protected void aaiVpnBindingValidation(String relatedVpnId, org.onap.aai.domain.yang.VpnBinding aaiVpnBinding)
throws VrfBondingServiceException {
- if (aaiVpnBinding == null || !aaiVpnBinding.getVpnType().equalsIgnoreCase("SERVICE-INFRASTRUCTURE")) {
- throw new VrfBondingServiceException("VpnBinding: " + aaiVpnBinding.getVpnId()
- + " does not have service type of BONDING and doesn not have service role of INFRASTRUCTURE-VPN");
+ if (aaiVpnBinding == null) {
+ throw new VrfBondingServiceException("The infrastructure vpn " + relatedVpnId + " does not exist in A&AI.");
+ } else if (aaiVpnBinding.getVpnType() != null
+ && !aaiVpnBinding.getVpnType().equalsIgnoreCase("SERVICE-INFRASTRUCTURE")) {
+ throw new VrfBondingServiceException(
+ "VpnBinding: " + relatedVpnId + " does not have a vpn type of SERVICE-INFRASTRUCTURE.");
}
}
}
}
+ protected void aaiNetworkValidation(String relatedNetworkid, org.onap.aai.domain.yang.L3Network aaiLocalNetwork)
+ throws VrfBondingServiceException {
+ if (aaiLocalNetwork == null) {
+ throw new VrfBondingServiceException("The local network " + relatedNetworkid + " does not exist in A&AI.");
+ }
+ }
+
protected void aaiSubnetValidation(org.onap.aai.domain.yang.L3Network aaiLocalNetwork)
throws VrfBondingServiceException {
if (aaiLocalNetwork.getSubnets() == null || aaiLocalNetwork.getSubnets().getSubnet() == null) {
execution.setVariable("isRollbackComplete", false);
} catch (Exception ex) {
- buildAndThrowException(execution, "Exception in create execution list " + ex.getMessage(), ex);
+ buildAndThrowException(execution, "Exception in create execution list. " + ex.getMessage(), ex);
}
}
}
protected void traverseCatalogDbService(DelegateExecution execution, ServiceInstancesRequest sIRequest,
- List<Resource> resourceCounter, List<Pair<WorkflowType, String>> aaiResourceIds) {
+ List<Resource> resourceCounter, List<Pair<WorkflowType, String>> aaiResourceIds)
+ throws JsonProcessingException, VrfBondingServiceException {
String modelUUID = sIRequest.getRequestDetails().getModelInfo().getModelVersionId();
org.onap.so.db.catalog.beans.Service service = catalogDbClient.getServiceByID(modelUUID);
if (service == null) {
protected void traverseVrfConfiguration(DelegateExecution execution,
List<Pair<WorkflowType, String>> aaiResourceIds, List<Resource> resourceCounter,
org.onap.so.db.catalog.beans.Service service, RelatedInstance relatedVpnBinding,
- RelatedInstance relatedLocalNetwork) {
- try {
- org.onap.aai.domain.yang.L3Network aaiLocalNetwork =
- bbInputSetupUtils.getAAIL3Network(relatedLocalNetwork.getInstanceId());
- vrfValidation.vrfServiceValidation(service);
- vrfValidation.vrfCatalogDbChecks(service);
- vrfValidation
- .aaiVpnBindingValidation(bbInputSetupUtils.getAAIVpnBinding(relatedVpnBinding.getInstanceId()));
- vrfValidation.aaiSubnetValidation(aaiLocalNetwork);
- vrfValidation.aaiAggregateRouteValidation(aaiLocalNetwork);
- vrfValidation.aaiRouteTargetValidation(aaiLocalNetwork);
- String existingAAIVrfConfiguration = getExistingAAIVrfConfiguration(relatedVpnBinding, aaiLocalNetwork);
- if (existingAAIVrfConfiguration != null) {
- aaiResourceIds
- .add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, existingAAIVrfConfiguration));
- }
- resourceCounter.add(new Resource(WorkflowType.CONFIGURATION,
- service.getConfigurationCustomizations().get(0).getModelCustomizationUUID(), false));
- } catch (VrfBondingServiceException | JsonProcessingException e) {
- buildAndThrowException(execution, e.getMessage());
+ RelatedInstance relatedLocalNetwork) throws VrfBondingServiceException, JsonProcessingException {
+ org.onap.aai.domain.yang.L3Network aaiLocalNetwork =
+ bbInputSetupUtils.getAAIL3Network(relatedLocalNetwork.getInstanceId());
+ vrfValidation.vrfServiceValidation(service);
+ vrfValidation.vrfCatalogDbChecks(service);
+ vrfValidation.aaiVpnBindingValidation(relatedVpnBinding.getInstanceId(),
+ bbInputSetupUtils.getAAIVpnBinding(relatedVpnBinding.getInstanceId()));
+ vrfValidation.aaiNetworkValidation(relatedLocalNetwork.getInstanceId(), aaiLocalNetwork);
+ vrfValidation.aaiSubnetValidation(aaiLocalNetwork);
+ vrfValidation.aaiAggregateRouteValidation(aaiLocalNetwork);
+ vrfValidation.aaiRouteTargetValidation(aaiLocalNetwork);
+ String existingAAIVrfConfiguration = getExistingAAIVrfConfiguration(relatedVpnBinding, aaiLocalNetwork);
+ if (existingAAIVrfConfiguration != null) {
+ aaiResourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, existingAAIVrfConfiguration));
}
+ resourceCounter.add(new Resource(WorkflowType.CONFIGURATION,
+ service.getConfigurationCustomizations().get(0).getModelCustomizationUUID(), false));
+
}
protected String getExistingAAIVrfConfiguration(RelatedInstance relatedVpnBinding,
org.onap.aai.domain.yang.VpnBinding aaiVpnBinding = new org.onap.aai.domain.yang.VpnBinding();
aaiVpnBinding.setVpnType("SERVICE-INFRASTRUCTURE");
ExpectedException.none();
- vrfValidation.aaiVpnBindingValidation(aaiVpnBinding);
+ vrfValidation.aaiVpnBindingValidation("test-vpn", aaiVpnBinding);
+ }
+
+ @Test
+ public void testAaiVpnBindingValidationVpnBindingIsNull() throws VrfBondingServiceException {
+ exceptionRule.expect(VrfBondingServiceException.class);
+ exceptionRule.expectMessage("The infrastructure vpn test-vpn does not exist in A&AI.");
+ vrfValidation.aaiVpnBindingValidation("test-vpn", null);
+ }
+
+ @Test
+ public void testAaiNetworkValidation() throws VrfBondingServiceException {
+ org.onap.aai.domain.yang.L3Network aaiLocalNetwork = new org.onap.aai.domain.yang.L3Network();
+ aaiLocalNetwork.setNetworkId("test-network");
+ ExpectedException.none();
+ vrfValidation.aaiNetworkValidation("test-network", aaiLocalNetwork);
+ }
+
+ @Test
+ public void testAaiNetworkValidationNetworkIsNull() throws VrfBondingServiceException {
+ exceptionRule.expect(VrfBondingServiceException.class);
+ exceptionRule.expectMessage("The local network test-network does not exist in A&AI.");
+ vrfValidation.aaiNetworkValidation("test-network", null);
}
@Test