aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/heatresource/ContrailNetworkPolicyResourceValidator.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/ContrailNetworkPolicyResourceValidator.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/ContrailNetworkPolicyResourceValidator.java92
1 files changed, 92 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/ContrailNetworkPolicyResourceValidator.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/heatresource/ContrailNetworkPolicyResourceValidator.java
new file mode 100644
index 0000000000..8ca5e69061
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/heatresource/ContrailNetworkPolicyResourceValidator.java
@@ -0,0 +1,92 @@
+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.context.impl.MdcDataDebugMessage;
+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/28/2017.
+ */
+public class ContrailNetworkPolicyResourceValidator implements ResourceValidator {
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+
+ @Override
+ public void validate(String fileName, Map.Entry<String, Resource> resourceEntry,
+ GlobalValidationContext globalContext, ValidationContext validationContext) {
+ validateNetworkPolicyIsUsed
+ (fileName, resourceEntry, globalContext, (HeatResourceValidationContext)validationContext);
+
+ }
+
+ private static void validateNetworkPolicyIsUsed(String fileName,
+ Map.Entry<String, Resource> resourceEntry,
+ GlobalValidationContext globalContext,
+ HeatResourceValidationContext validationContext) {
+ mdcDataDebugMessage.debugEntryMessage("file", fileName);
+
+ Map<String, Map<String, List<String>>> referencedNetworkAttachPoliciesResources =
+ validationContext.getFileLevelResourceDependencies()
+ .get(HeatResourcesTypes.CONTRAIL_NETWORK_RULE_RESOURCE_TYPE.getHeatResource());
+
+ if (MapUtils.isEmpty(referencedNetworkAttachPoliciesResources)) {
+ globalContext
+ .addMessage(
+ fileName,
+ ErrorLevel.WARNING,
+ ErrorMessagesFormatBuilder
+ .getErrorWithParameters(
+ Messages.RESOURCE_NOT_IN_USE.getErrorMessage(),
+ ValidatorConstants.Network_Policy, resourceEntry.getKey()),
+ LoggerTragetServiceName.VALIDATE_ATTACH_POLICY_IN_USE,
+ LoggerErrorDescription.NETWORK_ATTACH_POLICY_NOT_IN_USE);
+ return;
+ }
+
+ handleNetworkAttachPolicyReferences
+ (fileName, resourceEntry, referencedNetworkAttachPoliciesResources, globalContext);
+
+ mdcDataDebugMessage.debugExitMessage("file", fileName);
+
+ }
+
+ private static void handleNetworkAttachPolicyReferences(String fileName,
+ Map.Entry<String, Resource> resourceEntry,
+ Map<String, Map<String, List<String>>> pointedNetworkAttachPolicies,
+ GlobalValidationContext globalContext) {
+
+ Map<String, List<String>> resourcesPointingToCurrNetworkAttachPolicy =
+ pointedNetworkAttachPolicies.get(resourceEntry.getKey());
+ if (isNetworkAttachPolicyNotInUse(resourcesPointingToCurrNetworkAttachPolicy)) {
+ globalContext
+ .addMessage(
+ fileName,
+ ErrorLevel.WARNING,
+ ErrorMessagesFormatBuilder
+ .getErrorWithParameters(
+ Messages.RESOURCE_NOT_IN_USE.getErrorMessage(),
+ ValidatorConstants.Network_Policy, resourceEntry.getKey()),
+ LoggerTragetServiceName.VALIDATE_ATTACH_POLICY_IN_USE,
+ LoggerErrorDescription.NETWORK_ATTACH_POLICY_NOT_IN_USE);
+ }
+ }
+
+ private static boolean isNetworkAttachPolicyNotInUse(
+ Map<String, List<String>> resourcesPointingToCurrNetworkAttachPolicy) {
+ return MapUtils.isEmpty(resourcesPointingToCurrNetworkAttachPolicy);
+ }
+
+}