From cb74139eb31d5bdaa6eb390ae7eebaf49729b7e4 Mon Sep 17 00:00:00 2001 From: "Muthuramalingam, Brinda Santh" Date: Wed, 27 Mar 2019 20:20:34 -0400 Subject: Improve save and delete cba Change-Id: I1dbfb6d8155e5a58663d7061de468c6d70bb29df Issue-ID: CCSDK-1137 Signed-off-by: Muthuramalingam, Brinda Santh --- .../db/BlueprintProcessorCatalogServiceImpl.kt | 50 +++++++++++++++------- 1 file changed, 34 insertions(+), 16 deletions(-) (limited to 'ms/blueprintsprocessor/modules/commons/db-lib') diff --git a/ms/blueprintsprocessor/modules/commons/db-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/db/BlueprintProcessorCatalogServiceImpl.kt b/ms/blueprintsprocessor/modules/commons/db-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/db/BlueprintProcessorCatalogServiceImpl.kt index 3234c9a3c..79f74e5dc 100755 --- a/ms/blueprintsprocessor/modules/commons/db-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/db/BlueprintProcessorCatalogServiceImpl.kt +++ b/ms/blueprintsprocessor/modules/commons/db-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/db/BlueprintProcessorCatalogServiceImpl.kt @@ -26,13 +26,11 @@ import org.onap.ccsdk.cds.controllerblueprints.core.common.ApplicationConstants import org.onap.ccsdk.cds.controllerblueprints.core.config.BluePrintPathConfiguration import org.onap.ccsdk.cds.controllerblueprints.core.data.ErrorCode import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintValidatorService -import org.onap.ccsdk.cds.controllerblueprints.core.utils.BluePrintArchiveUtils import org.onap.ccsdk.cds.controllerblueprints.db.resources.BlueprintCatalogServiceImpl import org.slf4j.LoggerFactory import org.springframework.dao.DataIntegrityViolationException import org.springframework.stereotype.Service import java.io.File -import java.nio.file.Files import java.nio.file.Path import java.util.* @@ -55,34 +53,54 @@ class BlueprintProcessorCatalogServiceImpl(bluePrintRuntimeValidatorService: Blu override suspend fun delete(name: String, version: String) { // Cleaning Deployed Blueprint deleteNBDir(bluePrintPathConfiguration.blueprintDeployPath, name, version) + log.info("removed cba file name($name), version($version) from deploy location") // Cleaning Data Base blueprintModelRepository .deleteByArtifactNameAndArtifactVersion(name, version) + log.info("removed cba file name($name), version($version) from database") } override suspend fun get(name: String, version: String, extract: Boolean): Path? { - val getId = UUID.randomUUID().toString() - var path = "${bluePrintPathConfiguration.blueprintArchivePath}/$getId/cba.zip" + val deployFile = normalizedFile(bluePrintPathConfiguration.blueprintDeployPath, name, version) + val cbaFile = normalizedFile(bluePrintPathConfiguration.blueprintArchivePath, + UUID.randomUUID().toString(), "cba.zip") - // TODO("Check first location for the file", If not get from database") + if (extract && deployFile.exists()) { + log.info("cba file name($name), version($version) already present(${deployFile.absolutePath})") + } else { + deployFile.reCreateNBDirs() + cbaFile.parentFile.reCreateNBDirs() - blueprintModelRepository.findByArtifactNameAndArtifactVersion(name, version)?.also { - it.blueprintModelContent.run { - val file = normalizedFile(path) - file.parentFile.reCreateDirs() + try { + log.info("getting cba file name($name), version($version) from db") + blueprintModelRepository.findByArtifactNameAndArtifactVersion(name, version)?.also { + it.blueprintModelContent.run { - file.writeBytes(this!!.content!!).let { - if (extract) { - path = "${bluePrintPathConfiguration.blueprintDeployPath}/$name/$version" - BluePrintArchiveUtils.deCompress(file, path) + cbaFile.writeBytes(this!!.content!!) + cbaFile.deCompress(deployFile) + log.info("cba file name($name), version($version) saved in (${deployFile.absolutePath})") } - return normalizedPath(path) } + + check(deployFile.exists() && deployFile.list().isNotEmpty()) { + throw BluePrintProcessorException("file check failed") + } + } catch (e: Exception) { + deleteNBDir(deployFile.absolutePath) + throw BluePrintProcessorException("failed to get get cba file name($name), version($version) from db" + + " : ${e.message}") + } finally { + deleteNBDir(cbaFile.parentFile.absolutePath) } } - return null + + return if (extract) { + deployFile.toPath() + } else { + cbaFile.toPath() + } } override suspend fun save(metadata: MutableMap, archiveFile: File) { @@ -112,7 +130,7 @@ class BlueprintProcessorCatalogServiceImpl(bluePrintRuntimeValidatorService: Blu blueprintModelContent.contentType = "CBA_ZIP" blueprintModelContent.name = "$artifactName:$artifactVersion" blueprintModelContent.description = "$artifactName:$artifactVersion CBA Zip Content" - blueprintModelContent.content = Files.readAllBytes(archiveFile.toPath()) + blueprintModelContent.content = archiveFile.readBytes() blueprintModelContent.blueprintModel = blueprintModel blueprintModel.blueprintModelContent = blueprintModelContent -- cgit 1.2.3-korg