summaryrefslogtreecommitdiffstats
path: root/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/csar/validation/SOL004MetaDirectoryValidator.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/csar/validation/SOL004MetaDirectoryValidator.java')
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/csar/validation/SOL004MetaDirectoryValidator.java27
1 files changed, 25 insertions, 2 deletions
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/csar/validation/SOL004MetaDirectoryValidator.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/csar/validation/SOL004MetaDirectoryValidator.java
index 5f81910417..22ab4f45a6 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/csar/validation/SOL004MetaDirectoryValidator.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/csar/validation/SOL004MetaDirectoryValidator.java
@@ -23,6 +23,7 @@
package org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.csar.validation;
+import static org.openecomp.sdc.be.config.NonManoArtifactType.ONAP_CNF_HELM;
import static org.openecomp.sdc.be.config.NonManoArtifactType.ONAP_PM_DICTIONARY;
import static org.openecomp.sdc.be.config.NonManoArtifactType.ONAP_SW_INFORMATION;
import static org.openecomp.sdc.be.config.NonManoArtifactType.ONAP_VES_EVENTS;
@@ -81,6 +82,7 @@ import org.openecomp.sdc.vendorsoftwareproduct.impl.onboarding.OnboardingPackage
import org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.csar.validation.exception.MissingCertificateException;
import org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.csar.validation.utils.FileExtractor;
import org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.csar.validation.utils.InternalFilesFilter;
+import org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.csar.validation.utils.ValidatorUtils;
import org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.exceptions.InvalidManifestMetadataException;
import org.openecomp.sdc.vendorsoftwareproduct.security.SecurityManager;
import org.openecomp.sdc.vendorsoftwareproduct.security.SecurityManagerException;
@@ -102,6 +104,7 @@ class SOL004MetaDirectoryValidator implements Validator {
private Set<String> folderList;
private ToscaMetadata toscaMetadata;
private final InternalFilesFilter internalFilesFilter = new InternalFilesFilter();
+ protected final ValidatorUtils validatorUtils = new ValidatorUtils();
public SOL004MetaDirectoryValidator() {
securityManager = SecurityManager.getInstance();
@@ -122,7 +125,7 @@ class SOL004MetaDirectoryValidator implements Validator {
if (packageHasCertificate()) {
verifySignedFiles();
}
- validatePMDictionaryContentsAgainstSchema();
+ validatePmDictionaryContentsAgainstSchema();
return Collections.unmodifiableMap(getAnyValidationErrors());
}
@@ -390,6 +393,8 @@ class SOL004MetaDirectoryValidator implements Validator {
internalNonManoFileList.forEach(this::validateYaml);
} else if (nonManoArtifactType == ONAP_SW_INFORMATION) {
validateSoftwareInformationNonManoArtifact(files);
+ } else if (nonManoArtifactType == ONAP_CNF_HELM) {
+ validateOnapCnfHelmNonManoEntry(files);
}
});
@@ -546,7 +551,7 @@ class SOL004MetaDirectoryValidator implements Validator {
return errors;
}
- private void validatePMDictionaryContentsAgainstSchema() {
+ private void validatePmDictionaryContentsAgainstSchema() {
final Stream<byte[]> pmDictionaryFiles = new FileExtractor(getEtsiEntryManifestPath(), contentHandler)
.findFiles(ONAP_PM_DICTIONARY);
new PMDictionaryValidator()
@@ -556,4 +561,22 @@ class SOL004MetaDirectoryValidator implements Validator {
private String getEtsiEntryManifestPath() {
return toscaMetadata.getMetaEntries().get(ETSI_ENTRY_MANIFEST.getName());
}
+
+ /**
+ * Validates if onap_cnf_helm non_mano type points to a file
+ * @param files
+ */
+ private void validateOnapCnfHelmNonManoEntry(final List<String> files) {
+ if (CollectionUtils.isEmpty(files)) {
+ reportError(ErrorLevel.ERROR, Messages.EMPTY_ONAP_CNF_HELM_NON_MANO_ERROR.getErrorMessage());
+ return;
+ }
+ if (files.size() != 1) {
+ final String formattedFileList = files.stream()
+ .map(filePath -> String.format("'%s'", filePath))
+ .collect(Collectors.joining(", "));
+ reportError(ErrorLevel.ERROR,
+ Messages.UNIQUE_ONAP_CNF_HELM_NON_MANO_ERROR.formatMessage(formattedFileList));
+ }
+ }
}