Fix node filter capability issue 73/127573/1
authorMichaelMorris <michael.morris@est.tech>
Wed, 9 Mar 2022 12:10:41 +0000 (12:10 +0000)
committerMichaelMorris <michael.morris@est.tech>
Wed, 9 Mar 2022 12:10:49 +0000 (12:10 +0000)
Signed-off-by: MichaelMorris <michael.morris@est.tech>
Issue-ID: SDC-3901
Change-Id: I877fcf99d154939eafe765073ecddf38bc7d9ba7

catalog-be/src/main/java/org/openecomp/sdc/be/components/validation/NodeFilterValidator.java

index 01e07eb..db5de58 100644 (file)
@@ -257,11 +257,11 @@ public class NodeFilterValidator {
                         capabilityDefinition -> capabilityDefinition.getProperties().stream().anyMatch(
                             componentInstanceProperty -> uiConstraint.getServicePropertyName()
                                 .equalsIgnoreCase(componentInstanceProperty.getName())))).findFirst();
-            if (optionalCapabilityDefinitionList.isPresent()) {
-                optionalComponentInstanceProperty = optionalCapabilityDefinitionList.get().stream().findAny()
-                    .map(capabilityDefinition -> capabilityDefinition.getProperties().get(0));
+            if (optionalCapabilityDefinitionList.isPresent() && !optionalCapabilityDefinitionList.get().isEmpty()) {
+                optionalComponentInstanceProperty = getComponentInstanceProperty(optionalCapabilityDefinitionList.get().get(0), uiConstraint.getServicePropertyName());
             }
         }
+
         if (optionalComponentInstanceProperty.isEmpty()) {
             return Either.right(componentsUtils.getResponseFormat(ActionStatus.SELECTED_PROPERTY_NOT_PRESENT, uiConstraint.getServicePropertyName()));
         }
@@ -273,6 +273,10 @@ public class NodeFilterValidator {
         return isValidValueCheck(optionalComponentInstanceProperty.get().getType(), String.valueOf(uiConstraint.getValue()),
             uiConstraint.getServicePropertyName());
     }
+    
+    private Optional<ComponentInstanceProperty> getComponentInstanceProperty(CapabilityDefinition capabilityDefinition, final String propertyName){
+       return capabilityDefinition.getProperties().stream().filter(property -> property.getName().equals(propertyName)).findAny();
+    }
 
     private Either<Boolean, ResponseFormat> isValidValueCheck(String type, String value, String propertyName) {
         ToscaPropertyType toscaPropertyType = ToscaPropertyType.isValidType(type);