From 89b4860dbd57fb1a11fc30397a08e316e793572d Mon Sep 17 00:00:00 2001 From: MichaelMorris Date: Thu, 18 May 2023 15:15:27 +0100 Subject: Fix error importimg service with custom fns Signed-off-by: MichaelMorris Issue-ID: SDC-4507 Change-Id: I412e411a6d19cfb83d92c0d1184de8a69f75b42f --- .../sdc/be/components/csar/ToscaFunctionYamlParsingHandler.java | 9 +++++---- .../be/datatypes/elements/ToscaGetFunctionDataDefinition.java | 5 +++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/csar/ToscaFunctionYamlParsingHandler.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/csar/ToscaFunctionYamlParsingHandler.java index 0651e3504e..80608a82db 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/csar/ToscaFunctionYamlParsingHandler.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/csar/ToscaFunctionYamlParsingHandler.java @@ -28,6 +28,8 @@ import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Stream; + +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.openecomp.sdc.be.config.Configuration; import org.openecomp.sdc.be.config.ConfigurationManager; @@ -193,12 +195,11 @@ public class ToscaFunctionYamlParsingHandler { } private Optional handelCustomFunctionGetInputType(ToscaCustomFunction toscaCustomFunction, Object functionValueObj) { - if (!(functionValueObj instanceof String)) { + if (!(functionValueObj instanceof String) && !(functionValueObj instanceof List)) { return Optional.empty(); } - final String parameter = (String) functionValueObj; Map parameterMap = new HashMap<>(); - parameterMap.put(ToscaFunctionType.GET_INPUT.getName(), parameter); + parameterMap.put(ToscaFunctionType.GET_INPUT.getName(), functionValueObj); buildToscaFunctionBasedOnPropertyValue(parameterMap).ifPresent(toscaFunction -> { if (toscaFunction instanceof ToscaFunctionParameter) { toscaCustomFunction.addParameter((ToscaFunctionParameter) toscaFunction); @@ -210,7 +211,7 @@ public class ToscaFunctionYamlParsingHandler { private ToscaFunctionType getCustomFunctionType(String name) { List 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(); diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ToscaGetFunctionDataDefinition.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ToscaGetFunctionDataDefinition.java index 0ef417f8e2..9396188fcc 100644 --- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ToscaGetFunctionDataDefinition.java +++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ToscaGetFunctionDataDefinition.java @@ -124,8 +124,9 @@ public class ToscaGetFunctionDataDefinition implements ToscaFunction, ToscaFunct List propertySourceOneCopy = new ArrayList<>(); propertySourceOneCopy.add(this.propertyPathFromSource.get(0)); if (toscaIndex != null) { - propertySourceCopy.add(toscaIndex); - propertySourceOneCopy.add(toscaIndex); + Object toscaIndexValue = StringUtils.isNumeric(toscaIndex.toString()) ? Integer.parseInt(toscaIndex.toString()) : toscaIndex; + propertySourceCopy.add(toscaIndexValue); + propertySourceOneCopy.add(toscaIndexValue); } if (this.propertyPathFromSource.size() == 1) { return Map.of(this.functionType.getFunctionName(), propertySourceOneCopy); -- cgit 1.2.3-korg