From 378b6774ddad25d74ba7f05d173bc794b3963c7c Mon Sep 17 00:00:00 2001 From: "andre.schmid" Date: Tue, 29 Sep 2020 11:37:47 +0100 Subject: Fix substitution_mapping property mapping Currently the properties in substitution_mapping are being generated as property definition, copying the inputs. They should be property mappings referring inputs. Change-Id: I0b3b056adeab79915db1b42218364c22f07a079f Issue-ID: SDC-3307 Signed-off-by: andre.schmid --- .../openecomp/sdc/be/tosca/ToscaExportHandler.java | 26 +++++++++++++--------- .../sdc/be/tosca/model/SubstitutionMapping.java | 2 +- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java index 0907dd1f9b..d0c14f77c5 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java @@ -28,6 +28,7 @@ import static org.openecomp.sdc.be.tosca.InterfacesOperationsConverter.addInterf import java.beans.IntrospectionException; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashSet; @@ -367,9 +368,10 @@ public class ToscaExportHandler { return Either.right(requirements.right().value()); } substitutionMapping = requirements.left().value(); - - final Optional> proxyInputProperties = getProxyNodeTypeInputProperties(component, dataTypes); - proxyInputProperties.ifPresent(substitutionMapping::setProperties); + final Map propertyMappingMap = buildSubstitutionMappingPropertyMapping(component); + if (!propertyMappingMap.isEmpty()) { + substitutionMapping.setProperties(propertyMappingMap); + } topologyTemplate.setSubstitution_mappings(substitutionMapping); @@ -1735,14 +1737,18 @@ public class ToscaExportHandler { } - private Optional> getProxyNodeTypeInputProperties(final Component proxyComponent, - final Map dataTypes) { - if (Objects.isNull(proxyComponent)) { - return Optional.empty(); + private Map buildSubstitutionMappingPropertyMapping(final Component component) { + if (component == null || CollectionUtils.isEmpty(component.getInputs())) { + return Collections.emptyMap(); } - final Map proxyInputProperties = new HashMap<>(); - addInputsToProperties(dataTypes, proxyComponent.getInputs(), proxyInputProperties); - return MapUtils.isNotEmpty(proxyInputProperties) ? Optional.of(proxyInputProperties) : Optional.empty(); + return component.getInputs().stream() + .map(PropertyDataDefinition::getName) + .collect( + Collectors.toMap( + inputName -> inputName, + inputName -> new String[]{inputName}, + (inputName1, inputName2) -> inputName1) + ); } Optional> getProxyNodeTypeProperties(Component proxyComponent, diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/SubstitutionMapping.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/SubstitutionMapping.java index 13a28db038..1a2a13817b 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/SubstitutionMapping.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/SubstitutionMapping.java @@ -38,5 +38,5 @@ public class SubstitutionMapping { private Map capabilities; private Map requirements; private NodeFilter substitution_filter; - private Map properties; + private Map properties; } -- cgit 1.2.3-korg