Set default value for ETSI version 60/120260/2
authorMichaelMorris <michael.morris@est.tech>
Tue, 30 Mar 2021 08:41:24 +0000 (09:41 +0100)
committerChristophe Closset <christophe.closset@intl.att.com>
Fri, 9 Apr 2021 06:47:10 +0000 (06:47 +0000)
Sets the default value for ETSI version and updates code to use the default value for any mandatory category specific metdata with null values.
Signed-off-by: MichaelMorris <michael.morris@est.tech>
Issue-ID: SDC-3548
Change-Id: I445443d1de9447945fb0dd8babd3fcebd8e8ed7d

catalog-be/src/main/resources/import/tosca/categories/categoryTypes.yml
catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/utils/ModelConverter.java

index 022bc00..29b8585 100644 (file)
@@ -27,6 +27,7 @@ services:
         etsiVersion:
           name: "ETSI Version"
           validValues: [ '3.3.1', '2.7.1', '2.5.1' ]
+          default: '2.5.1'
           mandatory: true
 resources:
   NetworkLayer23:
@@ -175,4 +176,4 @@ resources:
           icons: ['contrail_route']
       SecurityZone:
           name: "Security Zone"
-          icons: ['security_zone']
\ No newline at end of file
+          icons: ['security_zone']
index f26e0a3..d14c72b 100644 (file)
@@ -766,30 +766,30 @@ public class ModelConverter {
         component.setUUID((String) toscaElement.getMetadataValue(JsonPresentationFields.UUID));
         component.setIsDeleted((Boolean) toscaElement.getMetadataValue(JsonPresentationFields.IS_DELETED));
         component.setToscaType(toscaElement.getToscaType().getValue());
-        final List<String> metadataKeys = getCategorySpecificMetadataKeys(toscaElement);
+        final List<MetadataKeyDataDefinition> metadataKeys = getCategorySpecificMetadataKeys(toscaElement);
         if (CollectionUtils.isNotEmpty(metadataKeys)) {
             final Map<String, String> categorySpecificMetadata = new HashMap<>();
-            for (final String metadataKey : metadataKeys) {
-                categorySpecificMetadata.put(metadataKey, (String) toscaElement.getMetadata().get(metadataKey));
+            for (final MetadataKeyDataDefinition metadataKey : metadataKeys) {
+                if (toscaElement.getMetadata().get(metadataKey.getName()) != null) {
+                    categorySpecificMetadata.put(metadataKey.getName(), (String) toscaElement.getMetadata().get(metadataKey.getName()));
+                } else if (metadataKey.getDefaultValue() != null && metadataKey.isMandatory()) {
+                    categorySpecificMetadata.put(metadataKey.getName(), metadataKey.getDefaultValue());
+                }
             }
             component.setCategorySpecificMetadata(categorySpecificMetadata);
         }
     }
-
-    private static List<String> getCategorySpecificMetadataKeys(final ToscaElement toscaElement) {
-        final List<String> metadataKeys = new ArrayList<>();
+    
+    private static List<MetadataKeyDataDefinition> getCategorySpecificMetadataKeys(final ToscaElement toscaElement) {
+        final List<MetadataKeyDataDefinition> metadataKeys = new ArrayList<>();
         final Optional<CategoryDefinition> category = getCategory(toscaElement);
         if (category.isPresent()) {
             if (CollectionUtils.isNotEmpty(category.get().getMetadataKeys())) {
-                for (final MetadataKeyDataDefinition metadataKey : category.get().getMetadataKeys()) {
-                    metadataKeys.add(metadataKey.getName());
-                }
+                metadataKeys.addAll(category.get().getMetadataKeys());
             }
             final Optional<SubCategoryDefinition> subCategory = getSubCategory(category.get());
             if (subCategory.isPresent() && CollectionUtils.isNotEmpty(subCategory.get().getMetadataKeys())) {
-                for (final MetadataKeyDataDefinition metadataKey : subCategory.get().getMetadataKeys()) {
-                    metadataKeys.add(metadataKey.getName());
-                }
+                metadataKeys.addAll(subCategory.get().getMetadataKeys());
             }
         }
         return metadataKeys;