From 4026a01339343986a5c01b593dbb01d14c1062fb Mon Sep 17 00:00:00 2001 From: Tal Gitelman Date: Sun, 29 Oct 2017 20:54:56 +0200 Subject: [PATCH] SDC distribution failure fix Change-Id: I508c5458afc00e57a8de517f96ec64077d660477 Issue-ID: SDC-533 Signed-off-by: Tal Gitelman --- .../openecomp/sdc/be/tosca/PropertyConvertor.java | 37 ++++++++++------------ .../sdc/be/tosca/PropertyConvertorTest.java | 29 ++++++++++++++--- 2 files changed, 41 insertions(+), 25 deletions(-) diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java index 68adbd5ae3..22f6730eb1 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java @@ -20,11 +20,11 @@ package org.openecomp.sdc.be.tosca; -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonParser; -import com.google.gson.stream.JsonReader; -import fj.data.Either; +import java.io.StringReader; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import org.apache.commons.lang3.StringUtils; import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition; import org.openecomp.sdc.be.model.Component; @@ -41,10 +41,12 @@ import org.openecomp.sdc.be.tosca.model.ToscaProperty; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.StringReader; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import com.google.gson.stream.JsonReader; + +import fj.data.Either; public class PropertyConvertor { private static PropertyConvertor instance; @@ -72,12 +74,8 @@ public class PropertyConvertor { // take only the properties of this resource props.stream().filter(p -> p.getOwnerId() == null || p.getOwnerId().equals(component.getUniqueId())).forEach(property -> { - ToscaProperty prop = convertProperty(dataTypes, property, false); - - if (prop != null) { - properties.put(property.getName(), prop); - } - }); + properties.put(property.getName(), convertProperty(dataTypes, property, false)); + }); if (!properties.isEmpty()) { toscaNodeType.setProperties(properties); } @@ -99,10 +97,9 @@ public class PropertyConvertor { prop.setEntry_schema(eschema); } log.trace("try to convert property {} from type {} with default value [{}]", property.getName(), property.getType(), property.getDefaultValue()); - prop.setDefaultp(convertToToscaObject(property.getType(), property.getDefaultValue(), innerType, dataTypes)); - - if (prop.getDefaultp() == null) { - return null; + Object convertedObj = convertToToscaObject(property.getType(), property.getDefaultValue(), innerType, dataTypes); + if (convertedObj != null) { + prop.setDefaultp(convertedObj); } prop.setType(property.getType()); prop.setDescription(property.getDescription()); @@ -111,6 +108,7 @@ public class PropertyConvertor { prop.setRequired(property.isRequired()); } return prop; + } public Object convertToToscaObject(String propertyType, String value, String innerType, Map dataTypes) { @@ -120,7 +118,6 @@ public class PropertyConvertor { if(StringUtils.isEmpty(value)){ return null; } - } try { ToscaMapValueConverter mapConverterInst = ToscaMapValueConverter.getInstance(); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PropertyConvertorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PropertyConvertorTest.java index a987e0243b..c77c0f10f3 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PropertyConvertorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PropertyConvertorTest.java @@ -7,6 +7,7 @@ import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -37,7 +38,9 @@ public class PropertyConvertorTest { @Test public void convertPropertyWhenValueAndDefaultNull() { - assertNull(PropertyConvertor.getInstance().convertProperty(dataTypes, property, false)); + ToscaProperty prop = PropertyConvertor.getInstance().convertProperty(dataTypes, property, false); + assertNotNull(prop); + assertNull(prop.getDefaultp()); } @Test @@ -63,7 +66,15 @@ public class PropertyConvertorTest { resource.setProperties(properties); Either result = PropertyConvertor.getInstance().convertProperties(resource, new ToscaNodeType(), dataTypes); assertTrue(result.isLeft()); - assertEquals(1, result.left().value().getProperties().size()); + assertEquals(2, result.left().value().getProperties().size()); + int cnt = 0; + for (Iterator it = result.left().value().getProperties().values().iterator(); it.hasNext(); ) { + ToscaProperty prop = it.next(); + if (prop.getDefaultp() == null) { + cnt++; + } + } + assertEquals(1, cnt); } @Test @@ -82,6 +93,10 @@ public class PropertyConvertorTest { Either result = PropertyConvertor.getInstance().convertProperties(resource, new ToscaNodeType(), dataTypes); assertTrue(result.isLeft()); assertEquals(2, result.left().value().getProperties().size()); + for (Iterator it = result.left().value().getProperties().values().iterator(); it.hasNext(); ) { + ToscaProperty prop = it.next(); + assertNotNull(prop.getDefaultp()); + } } @Test @@ -97,6 +112,10 @@ public class PropertyConvertorTest { resource.setProperties(properties); Either result = PropertyConvertor.getInstance().convertProperties(resource, new ToscaNodeType(), dataTypes); assertTrue(result.isLeft()); - assertNull(result.left().value().getProperties()); - } -} \ No newline at end of file + assertEquals(2, result.left().value().getProperties().size()); + for (Iterator it = result.left().value().getProperties().values().iterator(); it.hasNext(); ) { + ToscaProperty prop = it.next(); + assertNull(prop.getDefaultp()); + } + } +} -- 2.16.6