summaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/main/java')
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PolicyBusinessLogic.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PolicyBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PolicyBusinessLogic.java
index 3d971663b1..113f8ba4dc 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PolicyBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PolicyBusinessLogic.java
@@ -41,11 +41,13 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException;
+import org.openecomp.sdc.be.components.impl.exceptions.ByResponseFormatComponentException;
import org.openecomp.sdc.be.components.impl.exceptions.ComponentException;
import org.openecomp.sdc.be.components.property.PropertyDeclarationOrchestrator;
import org.openecomp.sdc.be.components.validation.PolicyUtils;
import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
+import org.openecomp.sdc.be.datamodel.utils.PropertyValueConstraintValidationUtil;
import org.openecomp.sdc.be.datatypes.elements.GetPolicyValueDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.GroupDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.PolicyTargetType;
@@ -60,6 +62,7 @@ import org.openecomp.sdc.be.model.ComponentInstanceProperty;
import org.openecomp.sdc.be.model.ComponentParametersView;
import org.openecomp.sdc.be.model.PolicyDefinition;
import org.openecomp.sdc.be.model.PolicyTypeDefinition;
+import org.openecomp.sdc.be.model.PropertyDefinition;
import org.openecomp.sdc.be.model.Resource;
import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ArtifactsOperations;
import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation;
@@ -690,10 +693,26 @@ public class PolicyBusinessLogic extends BaseBusinessLogic {
final PropertyDataDefinition currentProperty = oldProperties.get(newProperty.getName());
currentProperty.setValue(newPropertyValueEither);
currentProperty.setToscaFunction(newProperty.getToscaFunction());
+ validatePropertyValueWithConstraints(currentProperty, policyOwnerComponent);
}
return policy;
}
+ private void validatePropertyValueWithConstraints(final PropertyDataDefinition property, final Component component) {
+ PropertyDefinition propertyDefinition = new PropertyDefinition(property);
+ if (!propertyDefinition.isToscaFunction()) {
+ List<PropertyDefinition> propertyDefinitionList = new ArrayList<>();
+ propertyDefinitionList.add(propertyDefinition);
+ PropertyValueConstraintValidationUtil propertyValueConstraintValidationUtil = new PropertyValueConstraintValidationUtil();
+ Either<Boolean, ResponseFormat> isPropertyContraintsValid = propertyValueConstraintValidationUtil
+ .validatePropertyConstraints(propertyDefinitionList, applicationDataTypeCache,
+ component.getModel());
+ if (isPropertyContraintsValid.isRight()) {
+ throw new ByResponseFormatComponentException(isPropertyContraintsValid.right().value());
+ }
+ }
+ }
+
private <T extends PropertyDataDefinition> String updatePropertyValue(final Component policyOwnerComponent, final T property) {
Either<Object, Boolean> isValid = propertyOperation
.validateAndUpdatePropertyValue(policyOwnerComponent, property,