From e84581567488cad47892c156996ae4464fd33373 Mon Sep 17 00:00:00 2001 From: Steve Alphonse Siani Date: Fri, 21 Dec 2018 10:31:48 -0500 Subject: 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 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) mode change 100644 => 100755 components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/utils/BluePrintFileUtils.kt (limited to 'components/core') 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 -- cgit 1.2.3-korg