Fix instance declared inputs mapped to substitution mapping
[sdc.git] / catalog-be / src / main / java / org / openecomp / sdc / be / components / property / PropertyDeclarationOrchestrator.java
index e5367c4..2d00913 100644 (file)
@@ -28,6 +28,7 @@ import java.util.Map;
 import java.util.Optional;
 import java.util.stream.Collectors;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.tuple.Pair;
 import org.openecomp.sdc.be.components.property.propertytopolicydeclarators.ComponentInstancePropertyToPolicyDeclarator;
 import org.openecomp.sdc.be.components.property.propertytopolicydeclarators.ComponentPropertyToPolicyDeclarator;
@@ -77,10 +78,19 @@ public class PropertyDeclarationOrchestrator {
                                                                                            ComponentInstInputsMap componentInstInputsMap) {
         updatePropertiesConstraints(component, componentInstInputsMap);
         PropertyDeclarator propertyDeclarator = getPropertyDeclarator(componentInstInputsMap);
+        undoCISubstitutionMapping(componentInstInputsMap);
         Pair<String, List<ComponentInstancePropInput>> propsToDeclare = componentInstInputsMap.resolvePropertiesToDeclare();
         return propertyDeclarator.declarePropertiesAsInputs(component, propsToDeclare.getLeft(), propsToDeclare.getRight());
     }
 
+    private void undoCISubstitutionMapping(ComponentInstInputsMap componentInstInputsMap) {
+        if (MapUtils.isNotEmpty(componentInstInputsMap.getComponentInstanceProperties())) {
+            componentInstInputsMap.getComponentInstanceProperties().values()
+                .forEach(componentInstancePropInputsList -> componentInstancePropInputsList.stream()
+                    .forEach(componentInstancePropInput -> componentInstancePropInput.setMappedToComponentProperty(false)));
+        }
+    }
+
     private void updatePropertiesConstraints(Component component, ComponentInstInputsMap componentInstInputsMap) {
         componentInstInputsMap.getComponentInstanceProperties()
             .forEach((k, v) -> updatePropsConstraints(component.safeGetComponentInstancesProperties(), k, v));