aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/ManifestValidator.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/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.java251
1 files changed, 107 insertions, 144 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 675aa8adaf..ca01448a43 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
@@ -12,10 +12,13 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
-*/
-
+ */
package org.openecomp.sdc.validation.impl.validators;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
import org.openecomp.core.utilities.json.JsonUtil;
import org.openecomp.core.validation.ErrorMessageCode;
import org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder;
@@ -29,161 +32,121 @@ import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.api.LoggerFactory;
import org.openecomp.sdc.validation.Validator;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
-
public class ManifestValidator implements Validator {
- private static final Logger LOGGER = LoggerFactory.getLogger(YamlValidator.class);
- private static final ErrorMessageCode ERROR_CODE_MNF_1 = new ErrorMessageCode("MNF1");
- private static final ErrorMessageCode ERROR_CODE_MNF_2 = new ErrorMessageCode("MNF2");
- private static final ErrorMessageCode ERROR_CODE_MNF_3 = new ErrorMessageCode("MNF3");
- private static final ErrorMessageCode ERROR_CODE_MNF_4 = new ErrorMessageCode("MNF4");
- private static final ErrorMessageCode ERROR_CODE_MNF_5 = new ErrorMessageCode("MNF5");
- private static final ErrorMessageCode ERROR_CODE_MNF_6 = new ErrorMessageCode("MNF6");
- private static final ErrorMessageCode ERROR_CODE_MNF_7 = new ErrorMessageCode("MNF7");
- private static final ErrorMessageCode ERROR_CODE_MNF_8 = new ErrorMessageCode("MNF8");
-
- @Override
- public void validate(GlobalValidationContext globalContext) {
- Optional<InputStream> content = globalContext.getFileContent(SdcCommon.MANIFEST_NAME);
- ManifestContent manifestContent;
-
- try {
- if (content.isPresent()) {
- manifestContent = JsonUtil.json2Object(content.get(), ManifestContent.class);
- } else {
- throw new Exception("The manifest file '" + SdcCommon.MANIFEST_NAME + "' has no content");
- }
- } catch (Exception re) {
- LOGGER.error("Invalid manifest file", re);
- globalContext.addMessage(SdcCommon.MANIFEST_NAME, ErrorLevel.ERROR,
- ErrorMessagesFormatBuilder
- .getErrorWithParameters(ERROR_CODE_MNF_6,
- Messages.INVALID_MANIFEST_FILE.getErrorMessage()));
- return;
- }
- List<String> manifestFiles = getManifestFileList(manifestContent, globalContext);
- manifestFiles.stream().filter(name ->
- !globalContext.getFileContextMap().containsKey(name)
- ).forEach(name -> globalContext
- .addMessage(name, ErrorLevel.ERROR,ErrorMessagesFormatBuilder
- .getErrorWithParameters(ERROR_CODE_MNF_4,
- Messages.MISSING_FILE_IN_ZIP.getErrorMessage())));
-
- globalContext.getFileContextMap().keySet().stream().filter(name ->
- isNotManifestFiles(manifestFiles, name) && isNotManifestName(name)
- ).forEach(name ->
- globalContext.addMessage(name, ErrorLevel.WARNING,
- ErrorMessagesFormatBuilder
- .getErrorWithParameters(ERROR_CODE_MNF_5,
- Messages.MISSING_FILE_IN_MANIFEST.getErrorMessage())));
- }
-
- private boolean isNotManifestFiles(List<String> manifestFiles, String name) {
- return !manifestFiles.contains(name);
- }
-
- private boolean isNotManifestName(String name) {
- return !SdcCommon.MANIFEST_NAME.equals(name);
- }
-
-
- private List<String> getManifestFileList(ManifestContent manifestContent,
- GlobalValidationContext context) {
- ManifestScanner manifestScanner = new ManifestScanner();
- manifestScanner.scan(null, manifestContent.getData(), context);
- return manifestScanner.getFileList();
- }
-
-
- private class ManifestScanner {
- private final List<String> fileList = new ArrayList<>();
-
- public void scan(FileData fileData, List<FileData> data,
- GlobalValidationContext globalContext) {
- if (fileData == null) {
- for (FileData childFileData : data) {
- validateIfEnvIsAssociatedToHeat(globalContext, childFileData);
+ private static final Logger LOGGER = LoggerFactory.getLogger(YamlValidator.class);
+ private static final ErrorMessageCode ERROR_CODE_MNF_1 = new ErrorMessageCode("MNF1");
+ private static final ErrorMessageCode ERROR_CODE_MNF_2 = new ErrorMessageCode("MNF2");
+ private static final ErrorMessageCode ERROR_CODE_MNF_3 = new ErrorMessageCode("MNF3");
+ private static final ErrorMessageCode ERROR_CODE_MNF_4 = new ErrorMessageCode("MNF4");
+ private static final ErrorMessageCode ERROR_CODE_MNF_5 = new ErrorMessageCode("MNF5");
+ private static final ErrorMessageCode ERROR_CODE_MNF_6 = new ErrorMessageCode("MNF6");
+ private static final ErrorMessageCode ERROR_CODE_MNF_7 = new ErrorMessageCode("MNF7");
+ private static final ErrorMessageCode ERROR_CODE_MNF_8 = new ErrorMessageCode("MNF8");
+
+ @Override
+ public void validate(GlobalValidationContext globalContext) {
+ Optional<InputStream> content = globalContext.getFileContent(SdcCommon.MANIFEST_NAME);
+ ManifestContent manifestContent;
+ try {
+ if (content.isPresent()) {
+ manifestContent = JsonUtil.json2Object(content.get(), ManifestContent.class);
+ } else {
+ throw new Exception("The manifest file '" + SdcCommon.MANIFEST_NAME + "' has no content");
+ }
+ } catch (Exception re) {
+ LOGGER.error("Invalid manifest file", re);
+ globalContext.addMessage(SdcCommon.MANIFEST_NAME, ErrorLevel.ERROR,
+ ErrorMessagesFormatBuilder.getErrorWithParameters(ERROR_CODE_MNF_6, Messages.INVALID_MANIFEST_FILE.getErrorMessage()));
+ return;
}
- }
- if (fileData != null) {
- fileList.add(fileData.getFile());
- validateFileTypeVsFileName(globalContext,fileData);
- }
- if (data == null) {
- return;
- }
- data.forEach(chileFileData -> scan(chileFileData, chileFileData.getData(), globalContext));
+ List<String> manifestFiles = getManifestFileList(manifestContent, globalContext);
+ manifestFiles.stream().filter(name -> !globalContext.getFileContextMap().containsKey(name)).forEach(name -> globalContext
+ .addMessage(name, ErrorLevel.ERROR,
+ ErrorMessagesFormatBuilder.getErrorWithParameters(ERROR_CODE_MNF_4, Messages.MISSING_FILE_IN_ZIP.getErrorMessage())));
+ globalContext.getFileContextMap().keySet().stream().filter(name -> isNotManifestFiles(manifestFiles, name) && isNotManifestName(name))
+ .forEach(name -> globalContext.addMessage(name, ErrorLevel.WARNING,
+ ErrorMessagesFormatBuilder.getErrorWithParameters(ERROR_CODE_MNF_5, Messages.MISSING_FILE_IN_MANIFEST.getErrorMessage())));
}
- public List<String> getFileList() {
- return this.fileList;
+ private boolean isNotManifestFiles(List<String> manifestFiles, String name) {
+ return !manifestFiles.contains(name);
}
- private void validateFileTypeVsFileName(GlobalValidationContext globalValidationContext,
- FileData fileData) {
- String fileName = fileData.getFile();
- validateIfFileExists(globalValidationContext,fileName);
- FileData.Type type = fileData.getType();
- if (type == null) {
- globalValidationContext.addMessage(fileName, ErrorLevel.ERROR,
- ErrorMessagesFormatBuilder.getErrorWithParameters(ERROR_CODE_MNF_8,
- Messages.INVALID_FILE_TYPE.getErrorMessage()));
- } else if (type.equals(FileData.Type.HEAT_NET) || type.equals(FileData.Type.HEAT_VOL)
- || type.equals(FileData.Type.HEAT)) {
- validateIfFileHasYamlExtenstion(globalValidationContext,fileName);
- } else if (type.equals(FileData.Type.HEAT_ENV)) {
- validateIfFileHasEnvExtension(globalValidationContext,fileName);
- }
+ private boolean isNotManifestName(String name) {
+ return !SdcCommon.MANIFEST_NAME.equals(name);
}
- private void validateIfEnvIsAssociatedToHeat(GlobalValidationContext globalContext,
- FileData childFileData) {
- if (childFileData.getType() != null
- && childFileData.getType().equals(FileData.Type.HEAT_ENV)) {
- globalContext.addMessage(childFileData.getFile(), ErrorLevel.ERROR,
- ErrorMessagesFormatBuilder
- .getErrorWithParameters(ERROR_CODE_MNF_1,
- Messages.ENV_NOT_ASSOCIATED_TO_HEAT.getErrorMessage()));
- }
+ private List<String> getManifestFileList(ManifestContent manifestContent, GlobalValidationContext context) {
+ ManifestScanner manifestScanner = new ManifestScanner();
+ manifestScanner.scan(null, manifestContent.getData(), context);
+ return manifestScanner.getFileList();
}
- private void validateIfFileHasEnvExtension(GlobalValidationContext globalValidationContext,
- String fileName) {
- if (fileName != null && !fileName.endsWith(".env")) {
- globalValidationContext.addMessage(fileName, ErrorLevel.ERROR,
- ErrorMessagesFormatBuilder
- .getErrorWithParameters(ERROR_CODE_MNF_3,
- Messages.WRONG_ENV_FILE_EXTENSION.getErrorMessage(),
- fileName));
- }
- }
+ private class ManifestScanner {
+
+ private final List<String> fileList = new ArrayList<>();
+
+ public void scan(FileData fileData, List<FileData> data, GlobalValidationContext globalContext) {
+ if (fileData == null) {
+ for (FileData childFileData : data) {
+ validateIfEnvIsAssociatedToHeat(globalContext, childFileData);
+ }
+ }
+ if (fileData != null) {
+ fileList.add(fileData.getFile());
+ validateFileTypeVsFileName(globalContext, fileData);
+ }
+ if (data == null) {
+ return;
+ }
+ data.forEach(chileFileData -> scan(chileFileData, chileFileData.getData(), globalContext));
+ }
- private void validateIfFileHasYamlExtenstion(GlobalValidationContext globalValidationContext,
- String fileName) {
- if (fileName != null && !fileName.endsWith(".yml") && !fileName.endsWith(".yaml")) {
- globalValidationContext.addMessage(fileName, ErrorLevel.ERROR,
- ErrorMessagesFormatBuilder
- .getErrorWithParameters(ERROR_CODE_MNF_2,
- Messages.WRONG_HEAT_FILE_EXTENSION.getErrorMessage(),
- fileName));
- }
- }
+ public List<String> getFileList() {
+ return this.fileList;
+ }
- private void validateIfFileExists(GlobalValidationContext globalValidationContext,
- String fileName) {
- if (fileName == null) {
- globalValidationContext.addMessage(SdcCommon.MANIFEST_NAME, ErrorLevel.ERROR,
- ErrorMessagesFormatBuilder
- .getErrorWithParameters(ERROR_CODE_MNF_7,
- Messages.MISSING_FILE_NAME_IN_MANIFEST.getErrorMessage()));
+ private void validateFileTypeVsFileName(GlobalValidationContext globalValidationContext, FileData fileData) {
+ String fileName = fileData.getFile();
+ validateIfFileExists(globalValidationContext, fileName);
+ FileData.Type type = fileData.getType();
+ if (type == null) {
+ globalValidationContext.addMessage(fileName, ErrorLevel.ERROR,
+ ErrorMessagesFormatBuilder.getErrorWithParameters(ERROR_CODE_MNF_8, Messages.INVALID_FILE_TYPE.getErrorMessage()));
+ } else if (type.equals(FileData.Type.HEAT_NET) || type.equals(FileData.Type.HEAT_VOL) || type.equals(FileData.Type.HEAT)) {
+ validateIfFileHasYamlExtenstion(globalValidationContext, fileName);
+ } else if (type.equals(FileData.Type.HEAT_ENV)) {
+ validateIfFileHasEnvExtension(globalValidationContext, fileName);
+ }
+ }
- }
- }
+ private void validateIfEnvIsAssociatedToHeat(GlobalValidationContext globalContext, FileData childFileData) {
+ if (childFileData.getType() != null && childFileData.getType().equals(FileData.Type.HEAT_ENV)) {
+ globalContext.addMessage(childFileData.getFile(), ErrorLevel.ERROR,
+ ErrorMessagesFormatBuilder.getErrorWithParameters(ERROR_CODE_MNF_1, Messages.ENV_NOT_ASSOCIATED_TO_HEAT.getErrorMessage()));
+ }
+ }
- }
-
+ private void validateIfFileHasEnvExtension(GlobalValidationContext globalValidationContext, String fileName) {
+ if (fileName != null && !fileName.endsWith(".env")) {
+ globalValidationContext.addMessage(fileName, ErrorLevel.ERROR, ErrorMessagesFormatBuilder
+ .getErrorWithParameters(ERROR_CODE_MNF_3, Messages.WRONG_ENV_FILE_EXTENSION.getErrorMessage(), fileName));
+ }
+ }
+
+ private void validateIfFileHasYamlExtenstion(GlobalValidationContext globalValidationContext, String fileName) {
+ if (fileName != null && !fileName.endsWith(".yml") && !fileName.endsWith(".yaml")) {
+ globalValidationContext.addMessage(fileName, ErrorLevel.ERROR, ErrorMessagesFormatBuilder
+ .getErrorWithParameters(ERROR_CODE_MNF_2, Messages.WRONG_HEAT_FILE_EXTENSION.getErrorMessage(), fileName));
+ }
+ }
+
+ private void validateIfFileExists(GlobalValidationContext globalValidationContext, String fileName) {
+ if (fileName == null) {
+ globalValidationContext.addMessage(SdcCommon.MANIFEST_NAME, ErrorLevel.ERROR,
+ ErrorMessagesFormatBuilder.getErrorWithParameters(ERROR_CODE_MNF_7, Messages.MISSING_FILE_NAME_IN_MANIFEST.getErrorMessage()));
+ }
+ }
+ }
}