aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandre.schmid <andre.schmid@est.tech>2022-06-14 12:01:07 +0100
committerMichael Morris <michael.morris@est.tech>2022-06-20 15:57:04 +0000
commite398bb0eac655ea80507825ff039c874dd7dee6d (patch)
treefdf99c288406902cbe13adcc354f64dcf8d5c127
parentce3e2816ec3aa034bdef323c1a33b71485e87eb0 (diff)
Fix VFC map or list property update
Fixes two problems in the update of VFC map or list properties. One was related to a schema validation in the backend. The other is related to setting the property value when the default value was being edited. Change-Id: Icd85346144c8763ced1b8fbcd750c9baf783f6a6 Issue-ID: SDC-4050 Signed-off-by: andre.schmid <andre.schmid@est.tech>
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/datamodel/utils/PropertyValueConstraintValidationUtil.java44
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/utils/PropertyValueConstraintValidationUtilTest.java4
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/ToscaType.java14
-rw-r--r--catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view-model.ts3
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/properties/properties-view-model.ts6
5 files changed, 36 insertions, 35 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/datamodel/utils/PropertyValueConstraintValidationUtil.java b/catalog-be/src/main/java/org/openecomp/sdc/be/datamodel/utils/PropertyValueConstraintValidationUtil.java
index 25ca7d650e..442c3da16c 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/datamodel/utils/PropertyValueConstraintValidationUtil.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/datamodel/utils/PropertyValueConstraintValidationUtil.java
@@ -33,6 +33,7 @@ import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.openecomp.sdc.be.components.impl.ResponseFormatManager;
import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition;
import org.openecomp.sdc.be.model.DataTypeDefinition;
import org.openecomp.sdc.be.model.InputDefinition;
import org.openecomp.sdc.be.model.PropertyConstraint;
@@ -197,20 +198,32 @@ public class PropertyValueConstraintValidationUtil {
private void evaluateListType(PropertyDefinition propertyDefinition) {
try {
- String schemaType = propertyDefinition.getSchemaType();
+ if (propertyDefinition.getSchemaType() == null) {
+ propertyDefinition.setSchema(createStringSchema());
+ }
List<Object> list = ConstraintUtil.parseToCollection(propertyDefinition.getValue(), new TypeReference<>() {});
- evaluateCollectionType(propertyDefinition, list, schemaType);
+ evaluateCollectionType(propertyDefinition, list);
} catch (ConstraintValueDoNotMatchPropertyTypeException e) {
logger.debug(e.getMessage(), e);
errorMessages.add(String.format(VALUE_PROVIDED_IN_INVALID_FORMAT_FOR_PROPERTY, getCompletePropertyName(propertyDefinition)));
}
}
- private void evaluateMapType(PropertyDefinition propertyDefinition) {
+ private SchemaDefinition createStringSchema() {
+ final SchemaDefinition schemaDefinition = new SchemaDefinition();
+ final PropertyDefinition schemaStringProperty = new PropertyDefinition();
+ schemaStringProperty.setType(ToscaType.STRING.getType());
+ schemaDefinition.setProperty(schemaStringProperty);
+ return schemaDefinition;
+ }
+
+ private void evaluateMapType(final PropertyDefinition propertyDefinition) {
try {
- String schemaType = propertyDefinition.getSchemaType();
- Map<String, Object> map = ConstraintUtil.parseToCollection(propertyDefinition.getValue(), new TypeReference<>() {});
- evaluateCollectionType(propertyDefinition, map.values(), schemaType);
+ if (propertyDefinition.getSchemaType() == null) {
+ propertyDefinition.setSchema(createStringSchema());
+ }
+ final Map<String, Object> map = ConstraintUtil.parseToCollection(propertyDefinition.getValue(), new TypeReference<>() {});
+ evaluateCollectionType(propertyDefinition, map.values());
} catch (ConstraintValueDoNotMatchPropertyTypeException e) {
logger.debug(e.getMessage(), e);
errorMessages.add(String.format(VALUE_PROVIDED_IN_INVALID_FORMAT_FOR_PROPERTY, getCompletePropertyName(propertyDefinition)));
@@ -227,21 +240,22 @@ public class PropertyValueConstraintValidationUtil {
}
}
- private void evaluateCollectionType(final PropertyDefinition propertyDefinition, final Collection<Object> valueList, final String schemaType) {
+ private void evaluateCollectionType(final PropertyDefinition propertyDefinition, final Collection<Object> valueList) {
+ final String schemaType = propertyDefinition.getSchemaType();
for (final Object value : valueList) {
try {
- final PropertyDefinition propertyDefinition1 = copyPropertyWithNewValue(propertyDefinition, objectMapper.writeValueAsString(value));
+ final PropertyDefinition propertyCopyWithNewValue = copyPropertyWithNewValue(propertyDefinition, objectMapper.writeValueAsString(value));
if (ToscaType.isPrimitiveType(schemaType)) {
- evaluateCollectionPrimitiveSchemaType(propertyDefinition1, schemaType);
+ evaluateCollectionPrimitiveSchemaType(propertyCopyWithNewValue, schemaType);
} else if (ToscaType.isCollectionType(schemaType)) {
- propertyDefinition1.setType(schemaType);
- propertyDefinition1.setSchemaType(propertyDefinition.getSchemaProperty().getSchemaType());
- evaluateCollectionTypeProperties(propertyDefinition1);
+ propertyCopyWithNewValue.setType(schemaType);
+ propertyCopyWithNewValue.setSchemaType(propertyDefinition.getSchemaProperty().getSchemaType());
+ evaluateCollectionTypeProperties(propertyCopyWithNewValue);
} else {
- propertyDefinition1.setType(schemaType);
+ propertyCopyWithNewValue.setType(schemaType);
completePropertyName.append(UNDERSCORE);
- completePropertyName.append(propertyDefinition1.getName());
- evaluateComplexTypeProperties(propertyDefinition1);
+ completePropertyName.append(propertyCopyWithNewValue.getName());
+ evaluateComplexTypeProperties(propertyCopyWithNewValue);
}
} catch (final Exception e) {
logger.debug(e.getMessage(), e);
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/utils/PropertyValueConstraintValidationUtilTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/utils/PropertyValueConstraintValidationUtilTest.java
index c1e33a8474..a9350edc18 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/utils/PropertyValueConstraintValidationUtilTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/utils/PropertyValueConstraintValidationUtilTest.java
@@ -53,7 +53,6 @@ import org.openecomp.sdc.be.model.InputDefinition;
import org.openecomp.sdc.be.model.PropertyConstraint;
import org.openecomp.sdc.be.model.PropertyDefinition;
import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
-import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade;
import org.openecomp.sdc.be.model.operations.impl.PropertyOperation;
import org.openecomp.sdc.exception.ResponseFormat;
@@ -62,9 +61,6 @@ class PropertyValueConstraintValidationUtilTest {
@Mock
ApplicationDataTypeCache applicationDataTypeCache;
- @Mock
- ToscaOperationFacade toscaOperationFacade;
-
@Spy
@InjectMocks
PropertyValueConstraintValidationUtil propertyValueConstraintValidationUtil;
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/ToscaType.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/ToscaType.java
index a880db0c14..98ca5d02ab 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/ToscaType.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/ToscaType.java
@@ -27,6 +27,8 @@ import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
import org.openecomp.sdc.be.model.tosca.constraints.ConstraintUtil;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintValueDoNotMatchPropertyTypeException;
@@ -35,6 +37,7 @@ import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintValueDoN
*
* @author mkv
*/
+@AllArgsConstructor
public enum ToscaType {
// @formatter:off
STRING("string"),
@@ -51,11 +54,8 @@ public enum ToscaType {
SCALAR_UNIT_FREQUENCY("scalar-unit.frequency");
// @formatter:on
- private String type;
-
- ToscaType(String type) {
- this.type = type;
- }
+ @Getter
+ private final String type;
public static ToscaType getToscaType(String typeName) {
if (typeName == null) {
@@ -92,10 +92,6 @@ public enum ToscaType {
return ToscaPropertyType.MAP.getType().equals(type) || ToscaPropertyType.LIST.getType().equals(type);
}
- public String getType() {
- return type;
- }
-
public boolean isValidValue(String value) {
switch (this) {
case BOOLEAN:
diff --git a/catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view-model.ts b/catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view-model.ts
index 2741c464c8..13460f50bf 100644
--- a/catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view-model.ts
+++ b/catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view-model.ts
@@ -139,8 +139,7 @@ export class PropertyFormViewModel {
private initResource = ():void => {
this.$scope.editPropertyModel.property = new PropertyModel(this.property);
this.$scope.editPropertyModel.property.type = this.property.type ? this.property.type : null;
- this.$scope.editPropertyModel.property.value = this.$scope.editPropertyModel.property.value || this.$scope.editPropertyModel.property.defaultValue;
- this.$scope.constraints = this.property.constraints && this.property.constraints[0] ? this.property.constraints[0]["validValues"] : null;
+ this.$scope.constraints = this.property.constraints && this.property.constraints[0] ? this.property.constraints[0]["validValues"] : null;
this.initToscaGetFunction();
this.setMaxLength();
};
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/properties/properties-view-model.ts b/catalog-ui/src/app/view-models/workspace/tabs/properties/properties-view-model.ts
index 9794209757..b15901461a 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/properties/properties-view-model.ts
+++ b/catalog-ui/src/app/view-models/workspace/tabs/properties/properties-view-model.ts
@@ -73,14 +73,10 @@ export class PropertiesViewModel {
}
private openEditPropertyModal = (property:PropertyModel):void => {
- this.ModalsHandler.openEditPropertyModal(property, this.$scope.component, this.$scope.filteredProperties, false, 'component', this.$scope.component.uniqueId).then((updatedProperty:PropertyModel) => {
- //property = updatedProperty;
- });
+ this.ModalsHandler.openEditPropertyModal(property, this.$scope.component, this.$scope.filteredProperties, false, 'component', this.$scope.component.uniqueId);
};
private initScope = ():void => {
-
- //let self = this;
this.$scope.filteredProperties = this.$scope.component.properties;
this.$scope.sortBy = 'name';
this.$scope.reverse = false;