From ed127f2838e19bf104399e92d181a512e6761ee3 Mon Sep 17 00:00:00 2001 From: "Benjamin, Max (mb388a)" Date: Sun, 20 Jan 2019 20:17:45 -0500 Subject: ensure data for si matches on macro requests Fixed failing ValidationExceptionTest Moved MacroRequest.json to test specific folder Moved resource files to test specific folder Cleaned up comments from UserParamsValidationTest Refactored modelInfoValidation method Removed unused constants from ValidationException Removed unused ValidationException ADded overrideExistingMessage boolean Added test for missing modelType in userParams service object Fixed failing JUnit tests in MsoRequestTest Started fixing failing JUnit tests Began adding validation and tests for userParams modelInfo Began adding validation for instanceName Change-Id: I442f6b660af4e716d75746f8d8155aac1e183e80 Issue-ID: SO-1405 Signed-off-by: Benjamin, Max (mb388a) --- .../org/onap/so/apihandlerinfra/MsoRequest.java | 2 +- .../validation/UserParamsValidation.java | 73 ++++++++++++++++------ 2 files changed, 54 insertions(+), 21 deletions(-) (limited to 'mso-api-handlers/mso-api-handler-infra/src/main/java') diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/MsoRequest.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/MsoRequest.java index 440a9ea3ee..7f602323e1 100644 --- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/MsoRequest.java +++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/MsoRequest.java @@ -162,7 +162,7 @@ public class MsoRequest { public void parse (ServiceInstancesRequest sir, HashMap instanceIdMap, Actions action, String version, String originalRequestJSON, int reqVersion, Boolean aLaCarteFlag) throws ValidationException, IOException { - msoLogger.debug ("Validating the Service Instance request"); + msoLogger.debug ("Validating the Service Instance request"); List rules = new ArrayList<>(); msoLogger.debug ("Incoming version is: " + version + " coverting to int: " + reqVersion); RequestParameters requestParameters = sir.getRequestDetails().getRequestParameters(); diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/validation/UserParamsValidation.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/validation/UserParamsValidation.java index da1f1f6e90..894e488e92 100644 --- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/validation/UserParamsValidation.java +++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/validation/UserParamsValidation.java @@ -27,56 +27,60 @@ import java.util.List; import org.onap.so.apihandlerinfra.Action; import org.onap.so.apihandlerinfra.Actions; import org.onap.so.exceptions.ValidationException; +import org.onap.so.serviceinstancebeans.ModelInfo; import org.onap.so.serviceinstancebeans.Networks; import org.onap.so.serviceinstancebeans.Service; import org.onap.so.serviceinstancebeans.VfModules; import org.onap.so.serviceinstancebeans.Vnfs; public class UserParamsValidation implements ValidationRule{ - private static boolean empty(String s) { - return (s == null || s.trim().isEmpty()); - } @Override public ValidationInformation validate(ValidationInformation info) throws ValidationException{ Service validate = info.getUserParams(); Actions action = info.getAction(); if(validate.getModelInfo() == null){ - throw new ValidationException ("model-info in userParams"); + throw new ValidationException ("modelInfo in userParams", true); + }else if(validate.getModelInfo().getModelType() == null){ + throw new ValidationException("modelType in userParams service modelInfo", true); }else if(validate.getModelInfo().getModelVersionId() == null){ - throw new ValidationException("modelVersionId in userParams"); + throw new ValidationException("modelVersionId in userParams service modelInfo", true); + } + modelInfoValidation(info.getSir().getRequestDetails().getModelInfo(), validate.getModelInfo()); + if(validate.getInstanceName() != null && info.getRequestInfo().getInstanceName() != null){ + instanceNameValidation(info, validate); } for(Vnfs vnf : validate.getResources().getVnfs()){ if(vnf.getModelInfo() == null){ - throw new ValidationException ("model-info in userParams vnf resources"); + throw new ValidationException ("modelInfo in userParams vnf resources", true); }else if(vnf.getModelInfo().getModelCustomizationId() == null){ - throw new ValidationException ("modelCustomizationId in userParams vnf resources"); + throw new ValidationException ("modelCustomizationId in userParams vnf resources", true); }else if(vnf.getModelInfo().getModelVersionId() == null){ - throw new ValidationException("modelVersionId in userParams vnf resources"); + throw new ValidationException("modelVersionId in userParams vnf resources", true); } if(vnf.getCloudConfiguration() == null){ - throw new ValidationException ("cloudConfiguration in userParams vnf resources"); + throw new ValidationException ("cloudConfiguration in userParams vnf resources", true); } if(action == Action.createInstance || action == Action.assignInstance){ if(vnf.getPlatform() == null){ - throw new ValidationException ("platform in userParams vnf resources"); + throw new ValidationException ("platform in userParams vnf resources", true); }if(vnf.getProductFamilyId() == null){ - throw new ValidationException ("productFamilyId in userParams vnf resources"); + throw new ValidationException ("productFamilyId in userParams vnf resources", true); } } if (vnf.getPlatform() != null && vnf.getPlatform().getPlatformName() == null){ - throw new ValidationException ("platformName in userParams vnf resources"); + throw new ValidationException ("platformName in userParams vnf resources", true); } if(vnf.getVfModules().isEmpty()){ - throw new ValidationException ("vfModules in userParams vnf resources"); + throw new ValidationException ("vfModules in userParams vnf resources", true); } for(VfModules vfModules : vnf.getVfModules()){ if(vfModules.getModelInfo() == null){ - throw new ValidationException ("model-info in userParams vfModules resources"); + throw new ValidationException ("modelInfo in userParams vfModules resources", true); }else if(vfModules.getModelInfo().getModelCustomizationId() == null){ - throw new ValidationException ("modelCustomizationId in userParams vfModule resources"); + throw new ValidationException ("modelCustomizationId in userParams vfModule resources", true); }else if(vfModules.getModelInfo().getModelVersionId() == null){ - throw new ValidationException("modelVersionId in userParams vfModule resources"); + throw new ValidationException("modelVersionId in userParams vfModule resources", true); } } } @@ -86,17 +90,46 @@ public class UserParamsValidation implements ValidationRule{ if(validateNetworks != null){ for(Networks networks : validateNetworks){ if(networks.getModelInfo() == null){ - throw new ValidationException ("model-info in userParams network resources"); + throw new ValidationException ("modelInfo in userParams network resources", true); }else if(networks.getModelInfo().getModelCustomizationId() == null){ - throw new ValidationException ("modelCustomizationId in userParams network resources"); + throw new ValidationException ("modelCustomizationId in userParams network resources", true); }else if(networks.getModelInfo().getModelVersionId() == null){ - throw new ValidationException("modelVersionId in userParams network resources"); + throw new ValidationException("modelVersionId in userParams network resources", true); } if(networks.getCloudConfiguration() == null){ - throw new ValidationException ("cloudConfiguration in userParams network resources"); + throw new ValidationException ("cloudConfiguration in userParams network resources", true); } } } return info; } + public void instanceNameValidation(ValidationInformation info, Service validate) throws ValidationException{ + if(!info.getRequestInfo().getInstanceName().equals(validate.getInstanceName())){ + throw new ValidationException("instanceName in requestInfo", "instanceName in userParams service"); + } + } + public void modelInfoValidation(ModelInfo info, ModelInfo userParamInfo) throws ValidationException{ + if(!info.getModelType().equals(userParamInfo.getModelType())){ + throw new ValidationException("modelType in modelInfo", "modelType in userParams service"); + } + if((info.getModelInvariantId() != null && userParamInfo.getModelInvariantId() != null) && + (!info.getModelInvariantId().equals(userParamInfo.getModelInvariantId()))){ + throw new ValidationException("modelInvariantId in modelInfo", "modelInvariantId in userParams service"); + } + if(!info.getModelVersionId().equals(userParamInfo.getModelVersionId())){ + throw new ValidationException("modelVersionId in modelInfo", "modelVersionId in userParams service"); + } + if((info.getModelName() != null && userParamInfo.getModelName() != null) && + (!info.getModelName().equals(userParamInfo.getModelName()))){ + throw new ValidationException("modelName in modelInfo", "modelName in userParams service"); + } + if((info.getModelVersion() != null && userParamInfo.getModelVersion() != null) && + (!info.getModelVersion().equals(userParamInfo.getModelVersion()))){ + throw new ValidationException("modelVersion in modelInfo", "modelVersion in userParams service"); + } + if((info.getModelCustomizationId() != null && userParamInfo.getModelCustomizationId() != null) && + (!info.getModelCustomizationId().equals(userParamInfo.getModelCustomizationId()))){ + throw new ValidationException("modelCustomizationId in modelInfo", "modelCustomizationId in userParams service"); + } + } } \ No newline at end of file -- cgit 1.2.3-korg