From e84581567488cad47892c156996ae4464fd33373 Mon Sep 17 00:00:00 2001 From: Steve Alphonse Siani Date: Fri, 21 Dec 2018 10:31:48 -0500 Subject: [PATCH] Applied comments from review: Change 74622 - Draft Change-Id: I8ec37a628af98a332f568dc254e499dfdcf886ce Issue-ID: CCSDK-418 Signed-off-by: Steve Alphonse Siani --- .../core/utils/BluePrintFileUtils.kt | 46 +++++++++++++++++++++ .../test-blueprints/CBA_Zip_Test.zip | Bin 0 -> 5382 bytes 2 files changed, 46 insertions(+) mode change 100644 => 100755 components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/utils/BluePrintFileUtils.kt create mode 100755 components/model-catalog/blueprint-model/test-blueprints/CBA_Zip_Test.zip diff --git a/components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/utils/BluePrintFileUtils.kt b/components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/utils/BluePrintFileUtils.kt old mode 100644 new mode 100755 index 67ae39870..2be9f19ca --- a/components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/utils/BluePrintFileUtils.kt +++ b/components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/utils/BluePrintFileUtils.kt @@ -20,6 +20,7 @@ import com.att.eelf.configuration.EELFLogger import com.att.eelf.configuration.EELFManager import kotlinx.coroutines.runBlocking import org.apache.commons.io.FileUtils +import org.apache.commons.lang3.StringUtils import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException import org.onap.ccsdk.apps.controllerblueprints.core.data.ImportDefinition @@ -28,7 +29,16 @@ import org.onap.ccsdk.apps.controllerblueprints.core.service.BluePrintContext import java.io.File import java.io.FileFilter import java.nio.file.Files +import java.nio.file.Path +import java.nio.file.Paths import java.nio.file.StandardOpenOption +import java.text.MessageFormat +import java.time.Instant +import java.time.temporal.ChronoUnit +import java.time.ZoneId +import java.time.format.DateTimeFormatter + + class BluePrintFileUtils { companion object { @@ -196,6 +206,42 @@ class BluePrintFileUtils { "\nEntry-Definitions: Definitions/.json" + "\nTemplate-Tags: " } + + fun getBluePrintFile(fileName: String, targetPath: Path) : File { + val filePath = targetPath.resolve(fileName).toString() + val file = File(filePath) + check(file.exists()) { + throw BluePrintException("couldn't get definition file under path(${file.absolutePath})") + } + return file + } + + fun getCBAGeneratedFileName(fileName: String, prefix: String): String { + val DATE_FORMAT = "yyyyMMddHHmmss" + val formatter = DateTimeFormatter.ofPattern(DATE_FORMAT) + val datePrefix = Instant.now().atZone(ZoneId.systemDefault()).toLocalDateTime().format(formatter) + return MessageFormat.format(prefix, datePrefix, fileName) + } + + fun getCbaStorageDirectory(path: String): Path { + check(StringUtils.isNotBlank(path)) { + throw BluePrintException("CBA Path is missing.") + } + + val fileStorageLocation = Paths.get(path).toAbsolutePath().normalize() + + if (!Files.exists(fileStorageLocation)) + Files.createDirectories(fileStorageLocation) + + return fileStorageLocation + } + + fun stripFileExtension(fileName: String): String { + val dotIndexe = fileName.lastIndexOf('.') + + // In case dot is in first position, we are dealing with a hidden file rather than an extension + return if (dotIndexe > 0) fileName.substring(0, dotIndexe) else fileName + } } } \ No newline at end of file diff --git a/components/model-catalog/blueprint-model/test-blueprints/CBA_Zip_Test.zip b/components/model-catalog/blueprint-model/test-blueprints/CBA_Zip_Test.zip new file mode 100755 index 0000000000000000000000000000000000000000..77882ef149c82fb2526a60f43683b7bf86110511 GIT binary patch literal 5382 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 Dnr~ge literal 0 HcmV?d00001 -- 2.16.6