1 package org.openecomp.sdc.validation.impl.validators.heatresource;
3 import org.apache.commons.collections4.MapUtils;
4 import org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder;
5 import org.openecomp.core.validation.types.GlobalValidationContext;
6 import org.openecomp.sdc.common.errors.Messages;
7 import org.openecomp.sdc.datatypes.error.ErrorLevel;
8 import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes;
9 import org.openecomp.sdc.heat.datatypes.model.Resource;
10 import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
11 import org.openecomp.sdc.logging.types.LoggerErrorDescription;
12 import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
13 import org.openecomp.sdc.validation.ResourceValidator;
14 import org.openecomp.sdc.validation.ValidationContext;
15 import org.openecomp.sdc.validation.type.HeatResourceValidationContext;
16 import org.openecomp.sdc.validation.type.ValidatorConstants;
18 import java.util.List;
22 * Created by TALIO on 2/28/2017.
24 public class ContrailNetworkPolicyResourceValidator implements ResourceValidator {
25 private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
28 public void validate(String fileName, Map.Entry<String, Resource> resourceEntry,
29 GlobalValidationContext globalContext, ValidationContext validationContext) {
30 validateNetworkPolicyIsUsed
31 (fileName, resourceEntry, globalContext, (HeatResourceValidationContext)validationContext);
35 private static void validateNetworkPolicyIsUsed(String fileName,
36 Map.Entry<String, Resource> resourceEntry,
37 GlobalValidationContext globalContext,
38 HeatResourceValidationContext validationContext) {
39 mdcDataDebugMessage.debugEntryMessage("file", fileName);
41 Map<String, Map<String, List<String>>> referencedNetworkAttachPoliciesResources =
42 validationContext.getFileLevelResourceDependencies()
43 .get(HeatResourcesTypes.CONTRAIL_NETWORK_RULE_RESOURCE_TYPE.getHeatResource());
45 if (MapUtils.isEmpty(referencedNetworkAttachPoliciesResources)) {
50 ErrorMessagesFormatBuilder
51 .getErrorWithParameters(
52 Messages.RESOURCE_NOT_IN_USE.getErrorMessage(),
53 ValidatorConstants.Network_Policy, resourceEntry.getKey()),
54 LoggerTragetServiceName.VALIDATE_ATTACH_POLICY_IN_USE,
55 LoggerErrorDescription.NETWORK_ATTACH_POLICY_NOT_IN_USE);
59 handleNetworkAttachPolicyReferences
60 (fileName, resourceEntry, referencedNetworkAttachPoliciesResources, globalContext);
62 mdcDataDebugMessage.debugExitMessage("file", fileName);
66 private static void handleNetworkAttachPolicyReferences(String fileName,
67 Map.Entry<String, Resource> resourceEntry,
68 Map<String, Map<String, List<String>>> pointedNetworkAttachPolicies,
69 GlobalValidationContext globalContext) {
71 Map<String, List<String>> resourcesPointingToCurrNetworkAttachPolicy =
72 pointedNetworkAttachPolicies.get(resourceEntry.getKey());
73 if (isNetworkAttachPolicyNotInUse(resourcesPointingToCurrNetworkAttachPolicy)) {
78 ErrorMessagesFormatBuilder
79 .getErrorWithParameters(
80 Messages.RESOURCE_NOT_IN_USE.getErrorMessage(),
81 ValidatorConstants.Network_Policy, resourceEntry.getKey()),
82 LoggerTragetServiceName.VALIDATE_ATTACH_POLICY_IN_USE,
83 LoggerErrorDescription.NETWORK_ATTACH_POLICY_NOT_IN_USE);
87 private static boolean isNetworkAttachPolicyNotInUse(
88 Map<String, List<String>> resourcesPointingToCurrNetworkAttachPolicy) {
89 return MapUtils.isEmpty(resourcesPointingToCurrNetworkAttachPolicy);