From: JvD_Ericsson Date: Mon, 29 May 2023 08:48:42 +0000 (+0100) Subject: Fix various bugs related to tosca custom functions X-Git-Tag: 1.13.0~14 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=sdc.git;a=commitdiff_plain;h=32d8a1dba11780a622b337e77830f9095f0767ee Fix various bugs related to tosca custom functions Issue-ID: SDC-4512 Signed-off-by: JvD_Ericsson Change-Id: Ia501b124ddf0c77c97ca0c14bbaa18be39b8f631 --- diff --git a/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-custom-function/tosca-custom-function.component.ts b/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-custom-function/tosca-custom-function.component.ts index 35f1649ec6..ad72adad22 100644 --- a/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-custom-function/tosca-custom-function.component.ts +++ b/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-custom-function/tosca-custom-function.component.ts @@ -80,7 +80,7 @@ export class ToscaCustomFunctionComponent implements OnInit { this.parameters = []; } this.fillVariables(); - if (this.name && this.isDefaultCustomFunction) { + if (this.name) { this.customFunctionFormName.setValue(this.name); this.emitOnValidityChange(); } else { diff --git a/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-function.component.ts b/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-function.component.ts index b9559838f4..34ed9a618d 100644 --- a/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-function.component.ts +++ b/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-function.component.ts @@ -140,8 +140,8 @@ export class ToscaFunctionComponent implements OnInit, OnChanges { let type = this.property.toscaFunction.type; if (type == ToscaFunctionType.CUSTOM) { let name = (this.property.toscaFunction as ToscaCustomFunction).name; - let test = this.customToscaFunctions.find(custToscFunc => _.isEqual(custToscFunc.name, name)) - if (test) { + let customToscaFunc = this.customToscaFunctions.find(custToscFunc => _.isEqual(custToscFunc.name, name)) + if (customToscaFunc) { this.toscaFunctionTypeForm.setValue(name); } else { this.toscaFunctionTypeForm.setValue("other"); @@ -160,9 +160,6 @@ export class ToscaFunctionComponent implements OnInit, OnChanges { this.toscaFunctions.push(ToscaFunctionType.GET_ATTRIBUTE); this.toscaFunctions.push(ToscaFunctionType.GET_INPUT); this.toscaFunctions.push(ToscaFunctionType.GET_PROPERTY); - if (this.property.type === PROPERTY_TYPES.STRING || this.property.type === PROPERTY_TYPES.ANY) { - this.toscaFunctions.push(ToscaFunctionType.CUSTOM); - } if ((this.property.type === PROPERTY_TYPES.STRING || this.property.type === PROPERTY_TYPES.ANY) && this.overridingType === undefined) { this.toscaFunctions.push(ToscaFunctionType.CONCAT); } @@ -189,7 +186,8 @@ export class ToscaFunctionComponent implements OnInit, OnChanges { getCustomFunctionName():string { let toscaFunctionType: CustomToscaFunction = this.getCustomToscaFunction(); - return toscaFunctionType.name; + let name = toscaFunctionType.name; + return name == 'other' ? '' : name; } getCustomFunctionType():string { diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ToscaFunctionJsonDeserializer.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ToscaFunctionJsonDeserializer.java index f77c6f949b..e234a4666f 100644 --- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ToscaFunctionJsonDeserializer.java +++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ToscaFunctionJsonDeserializer.java @@ -37,6 +37,7 @@ import org.openecomp.sdc.be.datatypes.enums.PropertySource; import org.openecomp.sdc.be.datatypes.tosca.ToscaGetFunctionType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.util.CollectionUtils; import org.yaml.snakeyaml.Yaml; public class ToscaFunctionJsonDeserializer extends StdDeserializer { @@ -150,23 +151,25 @@ public class ToscaFunctionJsonDeserializer extends StdDeserializer getNumberAsTextOrElseNull(final JsonNode node, final String fieldName, final DeserializationContext context) throws JsonMappingException{ + private List getNumberAsTextOrElseNull(final JsonNode node, final String fieldName, final DeserializationContext context) + throws JsonMappingException { List toscaIndexList = new ArrayList(); final JsonNode jsonNode = node.get(fieldName); if (jsonNode != null) { if (!jsonNode.isArray()) { throw context.instantiationException(ToscaGetFunctionDataDefinition.class, "Expecting an array for toscaIndexList attribute"); } - for (int index=0;index customFunctions = ConfigurationManager.getConfigurationManager().getConfiguration().getDefaultCustomToscaFunctions(); - if (customFunctions.isEmpty()) { + if (CollectionUtils.isEmpty(customFunctions)) { return ToscaFunctionType.CUSTOM; } Optional optionalFunc = customFunctions.stream().filter(func -> func.getName().equals(name)).findFirst();