From ef0e8be1453e3959b38c9832e3e729e4e86a9e04 Mon Sep 17 00:00:00 2001 From: Liang Date: Wed, 13 Mar 2019 01:49:25 +0000 Subject: specify a new type to cloud specific artifacts Change-Id: I26e9533989a377d407290451063d97263a814d6b Issue-ID: SDC-2041 Signed-off-by: Liang Ding --- .../sdc/heat/datatypes/manifest/FileData.java | 1 + .../ManifestCreatorNamingConventionImpl.java | 23 ++++++++++++++++- .../ManifestCreatorNamingConventionImplTest.java | 29 ++++++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/filedatastructuremodule/ManifestCreatorNamingConventionImplTest.java diff --git a/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/manifest/FileData.java b/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/manifest/FileData.java index 35276b4f11..d343264528 100644 --- a/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/manifest/FileData.java +++ b/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/manifest/FileData.java @@ -93,6 +93,7 @@ public class FileData { MURANO_PKG("MURANO_PKG"), VENDOR_LICENSE("VENDOR_LICENSE"), VF_LICENSE("VF_LICENSE"), + CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT("CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT"), OTHER("OTHER"); private String displayName; 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/filedatastructuremodule/ManifestCreatorNamingConventionImpl.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/filedatastructuremodule/ManifestCreatorNamingConventionImpl.java index 3c100f1ed5..e1a47db9db 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/filedatastructuremodule/ManifestCreatorNamingConventionImpl.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/filedatastructuremodule/ManifestCreatorNamingConventionImpl.java @@ -36,6 +36,11 @@ import java.util.regex.Pattern; public class ManifestCreatorNamingConventionImpl implements ManifestCreator { protected static final Logger logger = LoggerFactory.getLogger(ManifestCreatorNamingConventionImpl.class); + + private static final String CLOUD_SPECIFIC_FIXED_KEY_WORD = "cloudtech"; + private static final String[][] CLOUD_SPECIFIC_KEY_WORDS = {{"k8s", "azure", "aws"}, /* cloud specific technology */ + {"charts", "day0", "configtemplate"} /*cloud specific sub type*/}; + @Override public Optional createManifest( VspDetails vspDetails, FilesDataStructure filesDataStructure) { @@ -132,6 +137,18 @@ public class ManifestCreatorNamingConventionImpl implements ManifestCreator { return Pattern.matches(Constants.BASE_HEAT_REGEX, fileName) && !isVolFile(fileName); } + protected boolean isCloudSpecificArtifact(String artifact) { + if (artifact.contains(CLOUD_SPECIFIC_FIXED_KEY_WORD)) { + for (int i = 0; i < CLOUD_SPECIFIC_KEY_WORDS.length; i++) { + if (Arrays.stream(CLOUD_SPECIFIC_KEY_WORDS[i]).noneMatch(str -> artifact.contains(str))) { + return false; + } + } + return true; + } else { + return false; + } + } private void addArtifactsToManifestFileDataList( FilesDataStructure filesDataStructure, List fileDataList) { @@ -139,7 +156,11 @@ public class ManifestCreatorNamingConventionImpl implements ManifestCreator { .union(filesDataStructure.getArtifacts(), filesDataStructure.getUnassigned()); if (CollectionUtils.isNotEmpty(forArtifacts)) { for (String artifact : forArtifacts) { - fileDataList.add(createBaseFileData(FileData.Type.OTHER, artifact)); + if (isCloudSpecificArtifact(artifact)) { + fileDataList.add(createBaseFileData(FileData.Type.CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT, artifact)); + } else { + fileDataList.add(createBaseFileData(FileData.Type.OTHER, artifact)); + } } } } 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/filedatastructuremodule/ManifestCreatorNamingConventionImplTest.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/filedatastructuremodule/ManifestCreatorNamingConventionImplTest.java new file mode 100644 index 0000000000..f5d24575a3 --- /dev/null +++ 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/filedatastructuremodule/ManifestCreatorNamingConventionImplTest.java @@ -0,0 +1,29 @@ +package org.openecomp.sdc.vendorsoftwareproduct.services.impl.filedatastructuremodule; + +import org.junit.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +public class ManifestCreatorNamingConventionImplTest extends ManifestCreatorNamingConventionImpl { + + private static final String ARTIFACT_1 = "cloudtech_k8s_charts.zip"; + private static final String ARTIFACT_2 = "cloudtech_azure_day0.zip"; + private static final String ARTIFACT_3 = "cloudtech_aws_configtemplate.zip"; + private static final String ARTIFACT_4 = "k8s_charts.zip"; + private static final String ARTIFACT_5 = "cloudtech_openstack_configtemplate.zip"; + + @Test + public void testIsCloudSpecificArtifact() { + assertTrue(isCloudSpecificArtifact(ARTIFACT_1)); + assertTrue(isCloudSpecificArtifact(ARTIFACT_2)); + assertTrue(isCloudSpecificArtifact(ARTIFACT_3)); + assertFalse(isCloudSpecificArtifact(ARTIFACT_4)); + assertFalse(isCloudSpecificArtifact(ARTIFACT_5)); + } +} -- cgit 1.2.3-korg