aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/heatresource/NeutronSecurityGroupResourceValidator.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/heatresource/NeutronSecurityGroupResourceValidator.java')
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/heatresource/NeutronSecurityGroupResourceValidator.java67
1 files changed, 67 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/heatresource/NeutronSecurityGroupResourceValidator.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/heatresource/NeutronSecurityGroupResourceValidator.java
new file mode 100644
index 0000000000..d7e16152f9
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/heatresource/NeutronSecurityGroupResourceValidator.java
@@ -0,0 +1,67 @@
+package org.openecomp.sdc.validation.impl.validators.heatresource;
+
+import org.apache.commons.collections4.MapUtils;
+import org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder;
+import org.openecomp.core.validation.types.GlobalValidationContext;
+import org.openecomp.sdc.common.errors.Messages;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes;
+import org.openecomp.sdc.heat.datatypes.model.Resource;
+import org.openecomp.sdc.logging.types.LoggerErrorDescription;
+import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
+import org.openecomp.sdc.validation.ResourceValidator;
+import org.openecomp.sdc.validation.ValidationContext;
+import org.openecomp.sdc.validation.type.HeatResourceValidationContext;
+import org.openecomp.sdc.validation.type.ValidatorConstants;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by TALIO on 2/27/2017.
+ */
+public class NeutronSecurityGroupResourceValidator implements ResourceValidator {
+ @Override
+ public void validate(String fileName, Map.Entry<String, Resource> resourceEntry,
+ GlobalValidationContext globalContext, ValidationContext validationContext) {
+
+ HeatResourceValidationContext heatResourceValidationContext =
+ (HeatResourceValidationContext) validationContext;
+ validateSecurityGroupIsUsed(fileName, resourceEntry, heatResourceValidationContext, globalContext);
+ }
+
+ public void validateSecurityGroupIsUsed(String fileName, Map.Entry<String, Resource> resourceEntry,
+ HeatResourceValidationContext
+ heatResourceValidationContext,
+ GlobalValidationContext globalContext) {
+
+ Map<String, Map<String, List<String>>> securityGroupsPointedByOtherResources =
+ heatResourceValidationContext.getFileLevelResourceDependencies().
+ get(HeatResourcesTypes.NEUTRON_SECURITY_GROUP_RESOURCE_TYPE.getHeatResource());
+
+ if (MapUtils.isEmpty(securityGroupsPointedByOtherResources)) {
+ return;
+ }
+
+ Map<String, List<String>> resourcesPointingCurrSecurityGroup =
+ securityGroupsPointedByOtherResources.get(resourceEntry.getKey());
+
+ if(isSecurityGroupNotInUse(resourcesPointingCurrSecurityGroup)){
+ globalContext.addMessage(
+ fileName,
+ ErrorLevel.WARNING,
+ ErrorMessagesFormatBuilder
+ .getErrorWithParameters(
+ Messages.RESOURCE_NOT_IN_USE.getErrorMessage(),
+ ValidatorConstants.Security_Group, resourceEntry.getKey()),
+ LoggerTragetServiceName.VALIDATE_ALL_SERVER_GROUP_OR_SECURITY_GROUP_IN_USE,
+ LoggerErrorDescription.SERVER_GROUP_SECURITY_GROUP_NOT_IN_USE);
+ }
+
+ }
+
+ public boolean isSecurityGroupNotInUse(Map<String, List<String>>
+ referencingResourcesToCurrSecurityGroup){
+ return MapUtils.isEmpty(referencingResourcesToCurrSecurityGroup);
+ }
+}