diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/ManifestValidator.java')
-rw-r--r-- | openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/ManifestValidator.java | 82 |
1 files changed, 56 insertions, 26 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/ManifestValidator.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/ManifestValidator.java index 4ce40f0007..43cafb494c 100644 --- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/ManifestValidator.java +++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/ManifestValidator.java @@ -21,38 +21,54 @@ package org.openecomp.sdc.validation.impl.validators; import org.openecomp.core.utilities.json.JsonUtil; +import org.openecomp.sdc.validation.Validator; import org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder; -import org.openecomp.core.validation.errors.Messages; -import org.openecomp.core.validation.interfaces.Validator; import org.openecomp.core.validation.types.GlobalValidationContext; -import org.openecomp.sdc.common.utils.AsdcCommon; +import org.openecomp.sdc.common.errors.Messages; +import org.openecomp.sdc.common.utils.SdcCommon; import org.openecomp.sdc.datatypes.error.ErrorLevel; import org.openecomp.sdc.heat.datatypes.manifest.FileData; import org.openecomp.sdc.heat.datatypes.manifest.ManifestContent; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.openecomp.sdc.logging.api.Logger; +import org.openecomp.sdc.logging.api.LoggerFactory; +import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; +import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage; +import org.openecomp.sdc.logging.types.LoggerConstants; +import org.openecomp.sdc.logging.types.LoggerErrorCode; +import org.openecomp.sdc.logging.types.LoggerErrorDescription; +import org.openecomp.sdc.logging.types.LoggerTragetServiceName; import java.io.InputStream; import java.util.ArrayList; import java.util.List; +import java.util.Optional; -public class ManifestValidator implements Validator { - - private static Logger logger = LoggerFactory.getLogger(YamlValidator.class); +public class ManifestValidator implements Validator { + public static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); + private static Logger logger = (Logger) LoggerFactory.getLogger(YamlValidator.class); @Override public void validate(GlobalValidationContext globalContext) { + mdcDataDebugMessage.debugEntryMessage(null, null); - - InputStream content = globalContext.getFileContent(AsdcCommon.MANIFEST_NAME); + Optional<InputStream> content = globalContext.getFileContent(SdcCommon.MANIFEST_NAME); ManifestContent manifestContent; try { - manifestContent = JsonUtil.json2Object(content, ManifestContent.class); - } catch (RuntimeException re) { - globalContext.addMessage(AsdcCommon.MANIFEST_NAME, ErrorLevel.ERROR, - Messages.INVALID_MANIFEST_FILE.getErrorMessage()); + if (content.isPresent()) { + manifestContent = JsonUtil.json2Object(content.get(), ManifestContent.class); + } else { + MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API, + LoggerTragetServiceName.VALIDATE_MANIFEST_CONTENT, ErrorLevel.ERROR.name(), + LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.EMPTY_FILE); + throw new Exception("The manifest file '" + SdcCommon.MANIFEST_NAME + "' has no content"); + } + } catch (Exception re) { + globalContext.addMessage(SdcCommon.MANIFEST_NAME, ErrorLevel.ERROR, + Messages.INVALID_MANIFEST_FILE.getErrorMessage(), + LoggerTragetServiceName.VALIDATE_MANIFEST_CONTENT, + LoggerErrorDescription.INVALID_MANIFEST); return; } @@ -60,22 +76,32 @@ public class ManifestValidator implements Validator { manifestFiles.stream().filter(name -> !globalContext.getFileContextMap().containsKey(name) ).forEach(name -> globalContext - .addMessage(name, ErrorLevel.ERROR, Messages.MISSING_FILE_IN_ZIP.getErrorMessage())); + .addMessage(name, ErrorLevel.ERROR, Messages.MISSING_FILE_IN_ZIP.getErrorMessage(), + LoggerTragetServiceName.VALIDATE_FILE_IN_ZIP, LoggerErrorDescription.MISSING_FILE)); globalContext.getFileContextMap().keySet().stream().filter(name -> - !manifestFiles.contains(name) && !AsdcCommon.MANIFEST_NAME.equals(name) + !manifestFiles.contains(name) && !SdcCommon.MANIFEST_NAME.equals(name) ).forEach(name -> globalContext.addMessage(name, ErrorLevel.WARNING, - Messages.MISSING_FILE_IN_MANIFEST.getErrorMessage()) + Messages.MISSING_FILE_IN_MANIFEST.getErrorMessage(), + LoggerTragetServiceName.VALIDATE_FILE_IN_MANIFEST, LoggerErrorDescription.MISSING_FILE) ); + mdcDataDebugMessage.debugExitMessage(null, null); } + private List<String> getManifestFileList(ManifestContent manifestContent, GlobalValidationContext context) { + + + mdcDataDebugMessage.debugEntryMessage(null, null); + ManifestScanner manifestScanner = new ManifestScanner(); manifestScanner.init(context); manifestScanner.scan(null, manifestContent.getData(), context); + + mdcDataDebugMessage.debugExitMessage(null, null); return manifestScanner.getFileList(); } @@ -98,7 +124,9 @@ public class ManifestValidator implements Validator { && childFileData.getType().equals(FileData.Type.HEAT_ENV)) { globalContext.addMessage(childFileData.getFile(), ErrorLevel.ERROR, ErrorMessagesFormatBuilder - .getErrorWithParameters(Messages.ENV_NOT_ASSOCIATED_TO_HEAT.getErrorMessage())); + .getErrorWithParameters(Messages.ENV_NOT_ASSOCIATED_TO_HEAT.getErrorMessage()), + LoggerTragetServiceName.SCAN_MANIFEST_STRUCTURE, + "env file is not associated to HEAT file"); } } } @@ -109,9 +137,7 @@ public class ManifestValidator implements Validator { if (data == null) { return; } - data.stream().forEach(chileFileData -> { - scan(chileFileData, chileFileData.getData(), globalContext); - }); + data.forEach(chileFileData -> scan(chileFileData, chileFileData.getData(), globalContext)); } @@ -122,28 +148,32 @@ public class ManifestValidator implements Validator { private void validateFileTypeVsFileName(FileData fileData) { String fileName = fileData.getFile(); if (fileName == null) { - this.globalValidationContext.addMessage(AsdcCommon.MANIFEST_NAME, ErrorLevel.ERROR, - Messages.MISSING_FILE_NAME_IN_MANIFEST.getErrorMessage()); + this.globalValidationContext.addMessage(SdcCommon.MANIFEST_NAME, ErrorLevel.ERROR, + Messages.MISSING_FILE_NAME_IN_MANIFEST.getErrorMessage(), + LoggerTragetServiceName.VALIDATE_FILE_TYPE_AND_NAME, "Missing file name in manifest"); } FileData.Type type = fileData.getType(); if (type == null) { this.globalValidationContext - .addMessage(fileName, ErrorLevel.ERROR, Messages.INVALID_FILE_TYPE.getErrorMessage()); + .addMessage(fileName, ErrorLevel.ERROR, Messages.INVALID_FILE_TYPE.getErrorMessage(), + LoggerTragetServiceName.VALIDATE_FILE_TYPE_AND_NAME, "Invalid file type"); } else if (type.equals(FileData.Type.HEAT_NET) || type.equals(FileData.Type.HEAT_VOL) || type.equals(FileData.Type.HEAT)) { if (fileName != null && !fileName.endsWith(".yml") && !fileName.endsWith(".yaml")) { this.globalValidationContext.addMessage(fileName, ErrorLevel.ERROR, ErrorMessagesFormatBuilder .getErrorWithParameters(Messages.WRONG_HEAT_FILE_EXTENSION.getErrorMessage(), - fileName)); + fileName), LoggerTragetServiceName.VALIDATE_FILE_TYPE_AND_NAME, + "Wrong HEAT file extention"); } } else if (type.equals(FileData.Type.HEAT_ENV)) { if (fileName != null && !fileName.endsWith(".env")) { this.globalValidationContext.addMessage(fileName, ErrorLevel.ERROR, ErrorMessagesFormatBuilder .getErrorWithParameters(Messages.WRONG_ENV_FILE_EXTENSION.getErrorMessage(), - fileName)); + fileName), LoggerTragetServiceName.VALIDATE_FILE_TYPE_AND_NAME, + "Wrong env file extention"); } } } |