Add minimum to number questionnaire fields 13/49713/2
authortalig <talig@amdocs.com>
Wed, 30 May 2018 13:15:50 +0000 (16:15 +0300)
committerAvi Gaffa <avi.gaffa@amdocs.com>
Sun, 3 Jun 2018 06:45:43 +0000 (06:45 +0000)
In case of compute validation error - display its name (same as other entities)

Change-Id: Ie3f0190a3b30d1ed6210f50958f61d8a883d5bef
Issue-ID: SDC-1387
Signed-off-by: talig <talig@amdocs.com>
openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/CompositionEntityDataManagerImpl.java
openecomp-be/tools/install/database/schemaTemplates/questionnaire/component.ftl

index faa5386..db6a63a 100644 (file)
@@ -66,6 +66,7 @@ import org.openecomp.sdc.versioning.dao.types.Version;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.EnumMap;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -85,7 +86,8 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
   private static final Logger logger =
       LoggerFactory.getLogger(CompositionEntityDataManagerImpl.class);
   private Map<CompositionEntityId, CompositionEntityData> entities = new HashMap<>();
-  private Map<CompositionEntityType, String> nonDynamicSchemas = new HashMap<>();
+  private Map<CompositionEntityType, String> nonDynamicSchemas =
+      new EnumMap<>(CompositionEntityType.class);
   private List<CompositionEntityValidationData> roots = new ArrayList<>();
 
   private VendorSoftwareProductInfoDao vspInfoDao;
@@ -175,10 +177,10 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
   @Override
   public Map<CompositionEntityId, Collection<String>> validateEntitiesQuestionnaire() {
     Map<CompositionEntityId, Collection<String>> errorsByEntityId = new HashMap<>();
-    entities.entrySet().forEach(entry -> {
-      Collection<String> errors = validateQuestionnaire(entry.getValue());
+    entities.forEach((key, value) -> {
+      Collection<String> errors = validateQuestionnaire(value);
       if (errors != null) {
-        errorsByEntityId.put(entry.getKey(), errors);
+        errorsByEntityId.put(key, errors);
       }
     });
     return errorsByEntityId;
@@ -191,9 +193,8 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
   public void buildTrees() {
     Map<CompositionEntityId, CompositionEntityValidationData> entitiesValidationData =
         new HashMap<>();
-    entities.entrySet().forEach(
-        entry -> addValidationDataEntity(entitiesValidationData, entry.getKey(),
-            entry.getValue().entity));
+    entities.forEach((key, value) -> addValidationDataEntity(entitiesValidationData, key,
+        value.entity));
   }
 
   public Collection<CompositionEntityValidationData> getTrees() {
@@ -225,7 +226,7 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
       return entitiesWithErrors;
     }
 
-    return null;
+    return new HashSet<>();
   }
 
   private boolean isThereErrorsInSubTree(CompositionEntityValidationData entity) {
@@ -445,6 +446,10 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
         Image image = JsonUtil.json2Object(compositionData, Image.class);
         return image.getFileName();
 
+      case compute:
+        ComputeData compute = JsonUtil.json2Object(compositionData, ComputeData.class);
+        return compute.getName();
+
       case vsp:
         CompositionEntityData vspEntity = getCompositionEntityDataById(entity);
         if (Objects.isNull(vspEntity)) {
@@ -455,9 +460,9 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
             vspInfoDao.get(new VspDetails(vspQuestionnaireEntity.getId(),
                 vspQuestionnaireEntity.getVersion()));
         return vspDetails.getName();
+      default:
+        return null;
     }
-
-    return null;
   }
 
   private void removeNodesWithoutErrors(CompositionEntityValidationData node,
index c023f1c..6b00c37 100644 (file)
           "properties": {
               "bootDiskSizePerVM": {
                 "type": "number",
+                "minimum": 0,
                 "maximum": 100
               },
              "ephemeralDiskSizePerVM": {
                "type": "number",
+               "minimum": 0,
                "maximum": 400
               }
            },
             "maximum": {
               "type": "number",
             "minimum": <#if (componentQuestionnaireData.compute.numOfVMs.minimum)??
-            && (componentQuestionnaireData.compute.numOfVMs.minimum)?is_number
-            && ((componentQuestionnaireData.compute.numOfVMs.minimum) > 0
-            && (componentQuestionnaireData.compute.numOfVMs.minimum) <= 100)>
-            ${componentQuestionnaireData.compute.numOfVMs.minimum}<#else>
+&& (componentQuestionnaireData.compute.numOfVMs.minimum)?is_number
+&& ((componentQuestionnaireData.compute.numOfVMs.minimum) > 0
+&& (componentQuestionnaireData.compute.numOfVMs.minimum) <= 100)>
+    ${componentQuestionnaireData.compute.numOfVMs.minimum}<#else>
             0</#if> ,
               "exclusiveMinimum": true,
               "maximum": 100
               "default": ""
             },
             "networkTransactionsPerSecond": {
-              "type": "number"
+              "type": "number",
+              "minimum": 0
             }
           },
           "additionalProperties": false
               "default": "On Site"
             },
             "backupStorageSize": {
-              "type": "number"
+              "type": "number",
+              "minimum": 0
             },
             "backupSolution": {
               "type": "string"
           "type": "object",
           "properties": {
             "sizeOfLogFiles": {
-              "type": "number",
+              "type": "integer",
+              "minimum": 0,
               "maximum": 5,
               "exclusiveMaximum": true
             },
             "logBackupFrequency": {
-              "type": "number",
+              "type": "integer",
+              "minimum": 0,
               "maximum": 4,
               "exclusiveMaximum": true
             },
             "logRetentionPeriod": {
-              "type": "number",
+              "type": "integer",
+              "minimum": 0,
               "maximum": 15,
               "exclusiveMaximum": true
             },