diff options
author | andre.schmid <andre.schmid@est.tech> | 2022-07-29 20:39:23 +0100 |
---|---|---|
committer | Michael Morris <michael.morris@est.tech> | 2022-08-06 22:43:00 +0000 |
commit | 7b0009c2bebe54214f920baf6b2aa4058921777b (patch) | |
tree | 1e5a24cea14540b1e6b8777719487aa47497fa42 /catalog-model/src/main/java | |
parent | c2f19bdcf5b5d5647770a5d3435d942fb3dd0efa (diff) |
Support for TOSCA functions for Service Import
Reads, interprets and persists property values that uses TOSCA functions
during a Service import.
Change-Id: I6943c447cc743213cb9807d6433cb25fa5effbc3
Issue-ID: SDC-4120
Signed-off-by: André Schmid <andre.schmid@est.tech>
Diffstat (limited to 'catalog-model/src/main/java')
-rw-r--r-- | catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadPropInfo.java | 33 | ||||
-rw-r--r-- | catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PropertyOperation.java | 134 |
2 files changed, 6 insertions, 161 deletions
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadPropInfo.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadPropInfo.java index d5221eeef2..da71aeef97 100644 --- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadPropInfo.java +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadPropInfo.java @@ -21,14 +21,20 @@ package org.openecomp.sdc.be.model; import java.util.ArrayList; import java.util.List; +import lombok.Getter; +import lombok.Setter; import org.openecomp.sdc.be.datatypes.elements.GetInputValueDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.ToscaFunction; +@Setter +@Getter public class UploadPropInfo extends UploadInfo { private Object value; private String description; private boolean password; private List<GetInputValueDataDefinition> get_input; + private ToscaFunction toscaFunction; public List<GetInputValueDataDefinition> getGet_input() { if (get_input == null) { @@ -37,31 +43,4 @@ public class UploadPropInfo extends UploadInfo { return get_input; } - public void setGet_input(List<GetInputValueDataDefinition> get_input) { - this.get_input = get_input; - } - - public Object getValue() { - return value; - } - - public void setValue(Object value) { - this.value = value; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public boolean isPassword() { - return password; - } - - public void setPassword(boolean password) { - this.password = password; - } } diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PropertyOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PropertyOperation.java index b66f6c9433..7546e90a82 100644 --- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PropertyOperation.java +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PropertyOperation.java @@ -1701,140 +1701,6 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe return validateAndUpdatePropertyValue(property.getType(), property.getValue(), true, innerType, dataTypes); } -// private <T extends PropertyDefinition> void validateToscaGetFunction(T property, org.openecomp.sdc.be.model.Component parentComponent) { -// final ToscaGetFunctionDataDefinition toscaGetFunction = (ToscaGetFunctionDataDefinition) property.getToscaFunction(); -// validateGetToscaFunctionAttributes(toscaGetFunction); -// validateGetPropertySource(toscaGetFunction.getFunctionType(), toscaGetFunction.getPropertySource()); -// if (toscaGetFunction.getFunctionType() == ToscaGetFunctionType.GET_INPUT) { -// validateGetFunction(property, parentComponent.getInputs(), parentComponent.getModel()); -// return; -// } -// if (toscaGetFunction.getFunctionType() == ToscaGetFunctionType.GET_PROPERTY) { -// if (toscaGetFunction.getPropertySource() == PropertySource.SELF) { -// validateGetFunction(property, parentComponent.getProperties(), parentComponent.getModel()); -// } else if (toscaGetFunction.getPropertySource() == PropertySource.INSTANCE) { -// final ComponentInstance componentInstance = -// parentComponent.getComponentInstanceById(toscaGetFunction.getSourceUniqueId()) -// .orElseThrow(ToscaGetFunctionExceptionSupplier.instanceNotFound(toscaGetFunction.getSourceName())); -// validateGetFunction(property, componentInstance.getProperties(), parentComponent.getModel()); -// } -// -// return; -// } -// if (toscaGetFunction.getFunctionType() == ToscaGetFunctionType.GET_ATTRIBUTE) { -// if (toscaGetFunction.getPropertySource() == PropertySource.SELF) { -// validateGetFunction(property, parentComponent.getAttributes(), parentComponent.getModel()); -// } else if (toscaGetFunction.getPropertySource() == PropertySource.INSTANCE) { -// final ComponentInstance componentInstance = -// parentComponent.getComponentInstanceById(toscaGetFunction.getSourceUniqueId()) -// .orElseThrow(ToscaGetFunctionExceptionSupplier.instanceNotFound(toscaGetFunction.getSourceName())); -// validateGetFunction(property, componentInstance.getAttributes(), parentComponent.getModel()); -// } -// -// return; -// } -// -// throw ToscaGetFunctionExceptionSupplier.functionNotSupported(toscaGetFunction.getFunctionType()).get(); -// } - -// private <T extends PropertyDefinition> void validateGetFunction(final T property, -// final List<? extends ToscaPropertyData> parentProperties, -// final String model) { -// final ToscaGetFunctionDataDefinition toscaGetFunction = (ToscaGetFunctionDataDefinition) property.getToscaFunction(); -// if (CollectionUtils.isEmpty(parentProperties)) { -// throw ToscaGetFunctionExceptionSupplier -// .propertyNotFoundOnTarget(toscaGetFunction.getPropertyName(), toscaGetFunction.getPropertySource(), -// toscaGetFunction.getFunctionType() -// ).get(); -// } -// final String getFunctionPropertyUniqueId = toscaGetFunction.getPropertyUniqueId(); -// ToscaPropertyData referredProperty = parentProperties.stream() -// .filter(property1 -> getFunctionPropertyUniqueId.equals(property1.getUniqueId())) -// .findFirst() -// .orElseThrow(ToscaGetFunctionExceptionSupplier -// .propertyNotFoundOnTarget(toscaGetFunction.getPropertyName(), toscaGetFunction.getPropertySource() -// , toscaGetFunction.getFunctionType()) -// ); -// if (toscaGetFunction.isSubProperty()) { -// referredProperty = findSubProperty(referredProperty, toscaGetFunction, model); -// } -// -// if (!property.getType().equals(referredProperty.getType())) { -// throw ToscaGetFunctionExceptionSupplier -// .propertyTypeDiverge(toscaGetFunction.getType(), referredProperty.getType(), property.getType()).get(); -// } -// if (PropertyType.typeHasSchema(referredProperty.getType()) && !referredProperty.getSchemaType().equals(property.getSchemaType())) { -// throw ToscaGetFunctionExceptionSupplier -// .propertySchemaDiverge(toscaGetFunction.getType(), referredProperty.getSchemaType(), property.getSchemaType()).get(); -// } -// } - -// private void validateGetToscaFunctionAttributes(final ToscaGetFunctionDataDefinition toscaGetFunction) { -// if (toscaGetFunction.getFunctionType() == null) { -// throw ToscaGetFunctionExceptionSupplier.targetFunctionTypeNotFound().get(); -// } -// if (toscaGetFunction.getPropertySource() == null) { -// throw ToscaGetFunctionExceptionSupplier.targetPropertySourceNotFound(toscaGetFunction.getFunctionType()).get(); -// } -// if (CollectionUtils.isEmpty(toscaGetFunction.getPropertyPathFromSource())) { -// throw ToscaGetFunctionExceptionSupplier -// .targetSourcePathNotFound(toscaGetFunction.getFunctionType()).get(); -// } -// if (StringUtils.isEmpty(toscaGetFunction.getSourceName()) || StringUtils.isBlank(toscaGetFunction.getSourceName())) { -// throw ToscaGetFunctionExceptionSupplier.sourceNameNotFound(toscaGetFunction.getPropertySource()).get(); -// } -// if (StringUtils.isEmpty(toscaGetFunction.getSourceUniqueId()) || StringUtils.isBlank(toscaGetFunction.getSourceUniqueId())) { -// throw ToscaGetFunctionExceptionSupplier.sourceIdNotFound(toscaGetFunction.getPropertySource()).get(); -// } -// if (StringUtils.isEmpty(toscaGetFunction.getPropertyName()) || StringUtils.isBlank(toscaGetFunction.getPropertyName())) { -// throw ToscaGetFunctionExceptionSupplier.propertyNameNotFound(toscaGetFunction.getPropertySource()).get(); -// } -// if (StringUtils.isEmpty(toscaGetFunction.getPropertyUniqueId()) || StringUtils.isBlank(toscaGetFunction.getPropertyUniqueId())) { -// throw ToscaGetFunctionExceptionSupplier.propertyIdNotFound(toscaGetFunction.getPropertySource()).get(); -// } -// } - -// private void validateGetPropertySource(final ToscaGetFunctionType functionType, final PropertySource propertySource) { -// if (functionType == ToscaGetFunctionType.GET_INPUT && propertySource != PropertySource.SELF) { -// throw ToscaGetFunctionExceptionSupplier -// .targetSourceNotSupported(functionType, propertySource).get(); -// } -// if (functionType == ToscaGetFunctionType.GET_PROPERTY && !List.of(PropertySource.SELF, PropertySource.INSTANCE).contains(propertySource)) { -// throw ToscaGetFunctionExceptionSupplier -// .targetSourceNotSupported(functionType, propertySource).get(); -// } -// } - -// private ToscaPropertyData findSubProperty(final ToscaPropertyData referredProperty, -// final ToscaGetFunctionDataDefinition toscaGetFunction, -// final String model) { -// final Map<String, DataTypeDefinition> dataTypeMap = loadDataTypes(model); -// final List<String> propertyPathFromSource = toscaGetFunction.getPropertyPathFromSource(); -// DataTypeDefinition dataType = dataTypeMap.get(referredProperty.getType()); -// if (dataType == null) { -// throw ToscaGetFunctionExceptionSupplier -// .propertyDataTypeNotFound(propertyPathFromSource.get(0), referredProperty.getType(), toscaGetFunction.getFunctionType()).get(); -// } -// ToscaPropertyData foundProperty = referredProperty; -// for (int i = 1; i < propertyPathFromSource.size(); i++) { -// final String currentPropertyName = propertyPathFromSource.get(i); -// foundProperty = dataType.getProperties().stream() -// .filter(propertyDefinition -> currentPropertyName.equals(propertyDefinition.getName())).findFirst() -// .orElseThrow( -// ToscaGetFunctionExceptionSupplier -// .propertyNotFoundOnTarget(propertyPathFromSource.subList(0, i), toscaGetFunction.getPropertySource(), -// toscaGetFunction.getFunctionType()) -// ); -// dataType = dataTypeMap.get(foundProperty.getType()); -// if (dataType == null) { -// throw ToscaGetFunctionExceptionSupplier -// .propertyDataTypeNotFound(propertyPathFromSource.subList(0, i), foundProperty.getType(), -// toscaGetFunction.getFunctionType()).get(); -// } -// } -// return foundProperty; -// } - public <T extends GraphNode> Either<List<PropertyDefinition>, StorageOperationStatus> getAllPropertiesRec(String uniqueId, NodeTypeEnum nodeType, Class<T> clazz) { return this.findPropertiesOfNode(nodeType, uniqueId).right().bind(this::handleNotFoundProperties).left() |