1 package org.openecomp.sdc.validation.impl.validators.namingconvention;
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.Resource;
9 import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
10 import org.openecomp.sdc.logging.types.LoggerErrorDescription;
11 import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
12 import org.openecomp.sdc.validation.ResourceValidator;
13 import org.openecomp.sdc.validation.ValidationContext;
14 import org.openecomp.sdc.validation.util.ValidationUtil;
18 import static java.util.Objects.nonNull;
21 * Created by TALIO on 2/24/2017.
23 public class ContrailServiceInstanceNamingConventionValidator implements ResourceValidator {
24 private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
27 public void validate(String fileName, Map.Entry<String, Resource> resourceEntry,
28 GlobalValidationContext globalContext, ValidationContext validationContext) {
29 validateAvailabilityZoneName(fileName, resourceEntry, globalContext);
32 private void validateAvailabilityZoneName(String fileName,
33 Map.Entry<String, Resource> resourceEntry,
34 GlobalValidationContext globalContext) {
37 mdcDataDebugMessage.debugEntryMessage("file", fileName);
39 String[] regexList = new String[]{"availability_zone_(\\d+)"};
41 if (MapUtils.isEmpty(resourceEntry.getValue().getProperties())) {
42 mdcDataDebugMessage.debugExitMessage("file", fileName);
46 Object availabilityZoneMap =
47 resourceEntry.getValue().getProperties().containsKey("availability_zone") ? resourceEntry
48 .getValue().getProperties().get("availability_zone") : null;
50 if (nonNull(availabilityZoneMap)) {
51 if (availabilityZoneMap instanceof Map) {
52 String availabilityZoneName = ValidationUtil.getWantedNameFromPropertyValueGetParam
53 (availabilityZoneMap);
55 if (availabilityZoneName != null) {
56 if (!ValidationUtil.evalPattern(availabilityZoneName, regexList)) {
57 globalContext.addMessage(
59 ErrorLevel.WARNING, ErrorMessagesFormatBuilder.getErrorWithParameters(
60 Messages.PARAMETER_NAME_NOT_ALIGNED_WITH_GUIDELINES.getErrorMessage(),
61 ValidationUtil.getMessagePartAccordingToResourceType(resourceEntry),
63 availabilityZoneName, resourceEntry.getKey()),
64 LoggerTragetServiceName.VALIDATE_AVAILABILITY_ZONE_NAME,
65 LoggerErrorDescription.NAME_NOT_ALIGNED_WITH_GUIDELINES);
69 globalContext.addMessage(
71 ErrorLevel.WARNING, ErrorMessagesFormatBuilder
72 .getErrorWithParameters(Messages.MISSING_GET_PARAM.getErrorMessage(),
73 "availability_zone", resourceEntry.getKey()),
74 LoggerTragetServiceName.VALIDATE_AVAILABILITY_ZONE_NAME,
75 LoggerErrorDescription.MISSING_GET_PARAM);
78 mdcDataDebugMessage.debugExitMessage("file", fileName);