Applied comments from review: Change 74622 - Draft
authorSteve Alphonse Siani <alphonse.steve.siani.djissitchi@ibm.com>
Fri, 21 Dec 2018 15:31:48 +0000 (10:31 -0500)
committerSteve Alphonse Siani <alphonse.steve.siani.djissitchi@ibm.com>
Fri, 21 Dec 2018 20:43:49 +0000 (15:43 -0500)
Change-Id: I8ec37a628af98a332f568dc254e499dfdcf886ce
Issue-ID: CCSDK-418
Signed-off-by: Steve Alphonse Siani <alphonse.steve.siani.djissitchi@ibm.com>
components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/utils/BluePrintFileUtils.kt [changed mode: 0644->0755]
components/model-catalog/blueprint-model/test-blueprints/CBA_Zip_Test.zip [new file with mode: 0755]

old mode 100644 (file)
new mode 100755 (executable)
index 67ae398..2be9f19
@@ -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/<BLUEPRINT_NAME>.json" +
                     "\nTemplate-Tags: <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 (executable)
index 0000000..77882ef
Binary files /dev/null and b/components/model-catalog/blueprint-model/test-blueprints/CBA_Zip_Test.zip differ