From 7b0009c2bebe54214f920baf6b2aa4058921777b Mon Sep 17 00:00:00 2001 From: "andre.schmid" Date: Fri, 29 Jul 2022 20:39:23 +0100 Subject: Support for TOSCA functions for Service Import MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .../org/openecomp/sdc/be/model/UploadPropInfo.java | 33 +---- .../model/operations/impl/PropertyOperation.java | 134 --------------------- 2 files changed, 6 insertions(+), 161 deletions(-) (limited to 'catalog-model') 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 get_input; + private ToscaFunction toscaFunction; public List getGet_input() { if (get_input == null) { @@ -37,31 +43,4 @@ public class UploadPropInfo extends UploadInfo { return get_input; } - public void setGet_input(List 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 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 void validateGetFunction(final T property, -// final List 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 dataTypeMap = loadDataTypes(model); -// final List 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 Either, StorageOperationStatus> getAllPropertiesRec(String uniqueId, NodeTypeEnum nodeType, Class clazz) { return this.findPropertiesOfNode(nodeType, uniqueId).right().bind(this::handleNotFoundProperties).left() -- cgit 1.2.3-korg