diff options
author | aribeiro <anderson.ribeiro@est.tech> | 2021-12-14 15:09:50 +0000 |
---|---|---|
committer | Michael Morris <michael.morris@est.tech> | 2021-12-21 16:18:46 +0000 |
commit | 8c0c0d7dfe706b8a224368aa066cb5ba4616678c (patch) | |
tree | c3eaa48a3322b190ab34cf9c53a3a2e7c2d51577 /openecomp-be/lib | |
parent | 04c4a2a3d7f308bdf6db8883fe16bbc3484f51b5 (diff) |
Identify SOL004 packages
Issue-ID: SDC-3819
Signed-off-by: MichaelMorris <michael.morris@est.tech>
Change-Id: I7ea36ebc27753e8068791cffc3340db30adc4662
Signed-off-by: aribeiro <anderson.ribeiro@est.tech>
Diffstat (limited to 'openecomp-be/lib')
3 files changed, 48 insertions, 9 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIService.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIService.java index dad05b64f2..de51b0bb2c 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIService.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIService.java @@ -38,7 +38,16 @@ public interface ETSIService { * @return true if all condition matched, false otherwise * @throws IOException when TOSCA.meta file is invalid */ - boolean isSol004WithToscaMetaDirectory(FileContentHandler handler) throws IOException; + boolean hasEtsiSol261Metadata(FileContentHandler handler) throws IOException; + + /** + * Checks if the package is a ETSI package. + * + * @param fileContentHandler the CSAR file handler + * @return {@code true} if the package is a ETSI package, {@code false} otherwise. + * @throws IOException when it was not able to parse the TOSCA.meta file + */ + boolean isEtsiPackage(final FileContentHandler fileContentHandler) throws IOException; /** * Update file structure. Moves non mano files to the correct folder based on the manifest non mano type. @@ -96,4 +105,5 @@ public interface ETSIService { * @return true if manifest files has onap_cnf_helm non mano entry */ boolean hasCnfEnhancements(final FileContentHandler fileContentHandler) throws IOException; + } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIServiceImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIServiceImpl.java index c5e7fcd03d..1399ea9765 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIServiceImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIServiceImpl.java @@ -25,6 +25,7 @@ import static org.openecomp.sdc.tosca.csar.CSARConstants.MAIN_SERVICE_TEMPLATE_M import static org.openecomp.sdc.tosca.csar.CSARConstants.MANIFEST_PNF_METADATA; import static org.openecomp.sdc.tosca.csar.CSARConstants.TOSCA_META_ORIG_PATH_FILE_NAME; import static org.openecomp.sdc.tosca.csar.ManifestTokenType.COMPATIBLE_SPECIFICATION_VERSIONS; +import static org.openecomp.sdc.tosca.csar.ToscaMetaEntryVersion251.ENTRY_MANIFEST; import static org.openecomp.sdc.tosca.csar.ToscaMetaEntryVersion261.ENTRY_DEFINITIONS; import static org.openecomp.sdc.tosca.csar.ToscaMetaEntryVersion261.ETSI_ENTRY_CHANGE_LOG; import static org.openecomp.sdc.tosca.csar.ToscaMetaEntryVersion261.ETSI_ENTRY_MANIFEST; @@ -52,6 +53,7 @@ import org.openecomp.sdc.be.config.NonManoConfiguration; import org.openecomp.sdc.be.config.NonManoConfigurationManager; import org.openecomp.sdc.be.config.NonManoFolderType; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; +import org.openecomp.sdc.common.CommonConfigurationManager; import org.openecomp.sdc.logging.api.Logger; import org.openecomp.sdc.logging.api.LoggerFactory; import org.openecomp.sdc.tosca.csar.Manifest; @@ -64,6 +66,7 @@ public class ETSIServiceImpl implements ETSIService { private static final Logger LOGGER = LoggerFactory.getLogger(ETSIServiceImpl.class); private final NonManoConfiguration nonManoConfiguration; + private final String ONAP_CSAR = "onap_csar"; public ETSIServiceImpl() { nonManoConfiguration = NonManoConfigurationManager.getInstance().getNonManoConfiguration(); @@ -74,12 +77,31 @@ public class ETSIServiceImpl implements ETSIService { } @Override - public boolean isSol004WithToscaMetaDirectory(FileContentHandler handler) throws IOException { + public boolean hasEtsiSol261Metadata(FileContentHandler handler) throws IOException { final Map<String, byte[]> templates = handler.getFiles(); return isMetaFilePresent(templates) && hasMetaMandatoryEntries(getMetadata(handler)); } @Override + public boolean isEtsiPackage(final FileContentHandler fileContentHandler) throws IOException { + return hasEtsiSol261Metadata(fileContentHandler) || !hasOnapCsarMetadata(fileContentHandler) + && !ONAP_CSAR.equalsIgnoreCase(getDefaultCsarFormat()); + } + + private boolean hasOnapCsarMetadata(final FileContentHandler fileContentHandler) throws IOException { + if (fileContentHandler.containsFile(TOSCA_META_PATH_FILE_NAME)){ + final ToscaMetadata metadata = + OnboardingToscaMetadata.parseToscaMetadataFile(fileContentHandler.getFileContentAsStream(TOSCA_META_PATH_FILE_NAME)); + return metadata.hasEntry(ONAP_CSAR); + } + return false; + } + + private String getDefaultCsarFormat() { + return CommonConfigurationManager.getInstance().getConfigValue("csarFormat", "default", ONAP_CSAR); + } + + @Override public Optional<Map<String, Path>> moveNonManoFileToArtifactFolder(final FileContentHandler handler) throws IOException { final Manifest manifest = loadManifest(handler); final Path originalManifestPath; @@ -226,7 +248,7 @@ public class ETSIServiceImpl implements ETSIService { public ResourceTypeEnum getResourceType(FileContentHandler handler) throws IOException { ToscaMetadata metadata = getMetadata(handler); - Manifest manifest = getManifest(handler, metadata.getMetaEntries().get(ETSI_ENTRY_MANIFEST.getName())); + Manifest manifest = getManifest(handler, getEntryManifestLocation(metadata)); return getResourceType(manifest); } @@ -244,7 +266,13 @@ public class ETSIServiceImpl implements ETSIService { public Manifest getManifest(FileContentHandler handler) throws IOException { ToscaMetadata metadata = getMetadata(handler); - return getManifest(handler, metadata.getMetaEntries().get(ETSI_ENTRY_MANIFEST.getName())); + return getManifest(handler, getEntryManifestLocation(metadata)); + } + + private String getEntryManifestLocation(final ToscaMetadata metadata) { + return metadata.getMetaEntries().containsKey(ETSI_ENTRY_MANIFEST.getName()) ? + metadata.getMetaEntries().get(ETSI_ENTRY_MANIFEST.getName()): + metadata.getMetaEntries().get(ENTRY_MANIFEST.getName()); } private Manifest getManifest(FileContentHandler handler, String manifestLocation) throws IOException { @@ -257,7 +285,7 @@ public class ETSIServiceImpl implements ETSIService { public Path getOriginalManifestPath(final FileContentHandler handler) throws IOException { final ToscaMetadata metadata = getOriginalMetadata(handler); - final String originalMetadataPath = metadata.getMetaEntries().get(ETSI_ENTRY_MANIFEST.getName()); + final String originalMetadataPath = getEntryManifestLocation(metadata); final Path path = Paths.get(originalMetadataPath); return path.getParent() == null ? Paths.get("") : path.getParent(); } @@ -298,4 +326,5 @@ public class ETSIServiceImpl implements ETSIService { public NonManoConfiguration getConfiguration() { return nonManoConfiguration; } + } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIServiceImplTest.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIServiceImplTest.java index 4254a56dcb..314db8f323 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIServiceImplTest.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIServiceImplTest.java @@ -94,27 +94,27 @@ public class ETSIServiceImplTest { FileContentHandler fileContentHandler = new FileContentHandler(); fileContentHandler .addFile("TOSCA-Metadata/TOSCA.meta.original", sol004MetaFile.getBytes(StandardCharsets.UTF_8)); - assertTrue(etsiService.isSol004WithToscaMetaDirectory(fileContentHandler)); + assertTrue(etsiService.hasEtsiSol261Metadata(fileContentHandler)); } @Test public void testIsSol004True() throws IOException { FileContentHandler fileContentHandler = new FileContentHandler(); fileContentHandler.addFile("TOSCA-Metadata/TOSCA.meta", sol004MetaFile.getBytes(StandardCharsets.UTF_8)); - assertTrue(etsiService.isSol004WithToscaMetaDirectory(fileContentHandler)); + assertTrue(etsiService.hasEtsiSol261Metadata(fileContentHandler)); } @Test public void testIsSol004False() throws IOException { FileContentHandler fileContentHandler = new FileContentHandler(); fileContentHandler.addFile("TOSCA-Metadata/TOSCA.meta.original", metaFile.getBytes(StandardCharsets.UTF_8)); - assertFalse(etsiService.isSol004WithToscaMetaDirectory(fileContentHandler)); + assertFalse(etsiService.hasEtsiSol261Metadata(fileContentHandler)); } @Test public void testIsSol004FalseWithNull() throws IOException { FileContentHandler fileContentHandler = new FileContentHandler(); - assertFalse(etsiService.isSol004WithToscaMetaDirectory(fileContentHandler)); + assertFalse(etsiService.hasEtsiSol261Metadata(fileContentHandler)); } @Test |