Revert "Renaming Files having BluePrint to have Blueprint"
[ccsdk/cds.git] / ms / blueprintsprocessor / modules / inbounds / designer-api / src / main / kotlin / org / onap / ccsdk / cds / blueprintsprocessor / designer / api / handler / BluePrintModelHandler.kt
index f55fee0..7bbaa8c 100644 (file)
@@ -24,30 +24,33 @@ import org.onap.ccsdk.cds.blueprintsprocessor.db.primary.domain.BlueprintModelSe
 import org.onap.ccsdk.cds.blueprintsprocessor.db.primary.repository.BlueprintModelContentRepository
 import org.onap.ccsdk.cds.blueprintsprocessor.db.primary.repository.BlueprintModelRepository
 import org.onap.ccsdk.cds.blueprintsprocessor.db.primary.repository.BlueprintModelSearchRepository
-import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.DesignerApiDomains
 import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.BootstrapRequest
+import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.DesignerApiDomains
+import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.WorkFlowData
 import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.WorkFlowSpecRequest
 import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.WorkFlowSpecResponse
-import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.WorkFlowData
 import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.WorkFlowsResponse
 import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.load.BluePrintDatabaseLoadService
 import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.utils.BluePrintEnhancerUtils
 import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException
-import org.onap.ccsdk.cds.controllerblueprints.core.logger
-import org.onap.ccsdk.cds.controllerblueprints.core.httpProcessorException
 import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
-import org.onap.ccsdk.cds.controllerblueprints.core.updateErrorMessage
-import org.onap.ccsdk.cds.controllerblueprints.core.normalizedPathName
-import org.onap.ccsdk.cds.controllerblueprints.core.normalizedFile
-import org.onap.ccsdk.cds.controllerblueprints.core.deleteNBDir
 import org.onap.ccsdk.cds.controllerblueprints.core.config.BluePrintLoadConfiguration
 import org.onap.ccsdk.cds.controllerblueprints.core.data.DataType
+import org.onap.ccsdk.cds.controllerblueprints.core.data.PropertyDefinition
+import org.onap.ccsdk.cds.controllerblueprints.core.deleteNBDir
+import org.onap.ccsdk.cds.controllerblueprints.core.httpProcessorException
 import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintCatalogService
 import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintEnhancerService
+import org.onap.ccsdk.cds.controllerblueprints.core.logger
+import org.onap.ccsdk.cds.controllerblueprints.core.normalizedFile
+import org.onap.ccsdk.cds.controllerblueprints.core.normalizedPathName
 import org.onap.ccsdk.cds.controllerblueprints.core.scripts.BluePrintCompileCache
 import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext
+import org.onap.ccsdk.cds.controllerblueprints.core.updateErrorMessage
 import org.onap.ccsdk.cds.controllerblueprints.core.utils.BluePrintFileUtils
 import org.onap.ccsdk.cds.controllerblueprints.core.utils.BluePrintMetadataUtils
+import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
+import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceAssignment
 import org.onap.ccsdk.cds.error.catalog.core.ErrorCatalogCodes
 import org.onap.ccsdk.cds.error.catalog.core.utils.errorCauseOrDefault
 import org.onap.ccsdk.cds.error.catalog.core.utils.errorMessageOrDefault
@@ -62,6 +65,7 @@ import org.springframework.http.ResponseEntity
 import org.springframework.http.codec.multipart.FilePart
 import org.springframework.stereotype.Service
 import org.springframework.transaction.annotation.Transactional
+import java.io.File
 import java.io.IOException
 import java.util.UUID
 
@@ -88,8 +92,8 @@ open class BluePrintModelHandler(
     open suspend fun bootstrapBlueprint(bootstrapRequest: BootstrapRequest) {
         log.info(
             "Bootstrap request with type load(${bootstrapRequest.loadModelType}), " +
-                    "resource dictionary load(${bootstrapRequest.loadResourceDictionary}) and " +
-                    "cba load(${bootstrapRequest.loadCBA})"
+                "resource dictionary load(${bootstrapRequest.loadResourceDictionary}) and " +
+                "cba load(${bootstrapRequest.loadCBA})"
         )
         if (bootstrapRequest.loadModelType) {
             bluePrintDatabaseLoadService.initModelTypes()
@@ -104,32 +108,72 @@ open class BluePrintModelHandler(
 
     @Throws(BluePrintException::class)
     open suspend fun prepareWorkFlowSpec(req: WorkFlowSpecRequest):
-            WorkFlowSpecResponse {
-        val basePath = blueprintsProcessorCatalogService.getFromDatabase(req
-                .blueprintName, req.version)
-        log.info("blueprint base path $basePath")
-
-        val blueprintContext = BluePrintMetadataUtils.getBluePrintContext(basePath.toString())
-        val workFlow = blueprintContext.workflowByName(req.workflowName)
+        WorkFlowSpecResponse {
+            val basePath = blueprintsProcessorCatalogService.getFromDatabase(
+                req
+                    .blueprintName,
+                req.version
+            )
+            log.info("blueprint base path $basePath")
+
+            val blueprintContext = BluePrintMetadataUtils.getBluePrintContext(basePath.toString())
+            val workFlow = blueprintContext.workflowByName(req.workflowName)
+
+            val wfRes = WorkFlowSpecResponse()
+            wfRes.blueprintName = req.blueprintName
+            wfRes.version = req.version
+
+            val workFlowData = WorkFlowData()
+            workFlowData.workFlowName = req.workflowName
+            workFlowData.inputs = workFlow.inputs
+            workFlowData.outputs = workFlow.outputs
+            wfRes.workFlowData = workFlowData
+
+            if (workFlow.inputs != null) {
+                for ((k, v) in workFlow.inputs!!) {
+                    addPropertyInfo(k, v, blueprintContext, wfRes)
+                }
+            }
 
-        val wfRes = WorkFlowSpecResponse()
-        wfRes.blueprintName = req.blueprintName
-        wfRes.version = req.version
+            if (workFlow.outputs != null) {
+                for ((k, v) in workFlow.outputs!!) {
+                    addPropertyInfo(k, v, blueprintContext, wfRes)
+                }
+            }
 
-        val workFlowData = WorkFlowData()
-        workFlowData.workFlowName = req.workflowName
-        workFlowData.inputs = workFlow.inputs
-        workFlowData.outputs = workFlow.outputs
+            return wfRes
+        }
 
-        for ((k, v) in workFlow.inputs!!) {
-            addDataType(v.type, blueprintContext, wfRes)
+    private fun addPropertyInfo(propName: String, prop: PropertyDefinition, ctx: BluePrintContext, res: WorkFlowSpecResponse) {
+        updatePropertyInfo(propName, prop, ctx, res)
+        addDataType(prop.type, ctx, res)
+        if (prop.entrySchema != null && prop.entrySchema!!.type != null) {
+            addDataType(prop.entrySchema!!.type, ctx, res)
         }
+    }
 
-        for ((k, v) in workFlow.outputs!!) {
-            addDataType(v.type, blueprintContext, wfRes)
+    private fun updatePropertyInfo(name: String, prop: PropertyDefinition, ctx: BluePrintContext, res: WorkFlowSpecResponse) {
+        if (prop.inputparam == null || prop.inputparam == false) {
+            var workflow = ctx.workflowByName(res.workFlowData.workFlowName)
+            for ((k, v) in workflow.steps!!) {
+                var arts = ctx.nodeTemplateArtifacts(v.target!!)
+                if (arts != null) {
+                    for ((k, v) in arts.entries!!) {
+                        if (v.type == "artifact-mapping-resource") {
+                            val file: String = v.file
+                            val completePath = ctx.rootPath.plus(File.separator).plus(file)
+                            val resourceAssignment = JacksonUtils.getListFromFile(completePath, ResourceAssignment::class.java)
+                            for (res in resourceAssignment) {
+                                if (res.name == name && res.inputParameter) {
+                                    prop.inputparam = true
+                                    return
+                                }
+                            }
+                        }
+                    }
+                }
+            }
         }
-        wfRes.workFlowData = workFlowData
-        return wfRes
     }
 
     private fun addDataType(name: String, ctx: BluePrintContext, res: WorkFlowSpecResponse) {
@@ -141,15 +185,18 @@ open class BluePrintModelHandler(
     }
 
     private fun addParentDataType(data: DataType, ctx: BluePrintContext, res: WorkFlowSpecResponse) {
-        for ((k, v) in data.properties!!) {
-            addDataType(v.type, ctx, res)
+        if (data.properties != null) {
+            for ((k, v) in data.properties!!) {
+                addPropertyInfo(k, v, ctx, res)
+            }
         }
     }
 
     @Throws(BluePrintException::class)
     open suspend fun getWorkflowNames(name: String, version: String): WorkFlowsResponse {
         val basePath = blueprintsProcessorCatalogService.getFromDatabase(
-                name, version)
+            name, version
+        )
         log.info("blueprint base path $basePath")
 
         var res = WorkFlowsResponse()
@@ -157,7 +204,8 @@ open class BluePrintModelHandler(
         res.version = version
 
         val blueprintContext = BluePrintMetadataUtils.getBluePrintContext(
-                basePath.toString())
+            basePath.toString()
+        )
         if (blueprintContext.workflows() != null) {
             res.workflows = blueprintContext.workflows()!!.keys
         }
@@ -168,7 +216,7 @@ open class BluePrintModelHandler(
      * This is a getAllBlueprintModel method to retrieve all the BlueprintModel in Database
      *
      * @return List<BlueprintModelSearch> list of the controller blueprint archives
-    </BlueprintModelSearch> */
+     </BlueprintModelSearch> */
     open fun allBlueprintModel(): List<BlueprintModelSearch> {
         return blueprintModelSearchRepository.findAll()
     }
@@ -177,7 +225,7 @@ open class BluePrintModelHandler(
      * This is a getAllBlueprintModel method to retrieve all the BlueprintModel in Database
      *
      * @return List<BlueprintModelSearch> list of the controller blueprint archives
-    </BlueprintModelSearch> */
+     </BlueprintModelSearch> */
     open fun allBlueprintModel(pageRequest: Pageable): Page<BlueprintModelSearch> {
         return blueprintModelSearchRepository.findAll(pageRequest)
     }
@@ -188,14 +236,16 @@ open class BluePrintModelHandler(
      * @param filePart filePart
      * @return Mono<BlueprintModelSearch>
      * @throws BluePrintException BluePrintException
-    </BlueprintModelSearch> */
+     </BlueprintModelSearch> */
     @Throws(BluePrintException::class)
     open suspend fun saveBlueprintModel(filePart: FilePart): BlueprintModelSearch {
         try {
             return upload(filePart, false)
         } catch (e: IOException) {
-            throw httpProcessorException(ErrorCatalogCodes.IO_FILE_INTERRUPT, DesignerApiDomains.DESIGNER_API,
-                    "Error in Save CBA: ${e.message}", e.errorCauseOrDefault())
+            throw httpProcessorException(
+                ErrorCatalogCodes.IO_FILE_INTERRUPT, DesignerApiDomains.DESIGNER_API,
+                "Error in Save CBA: ${e.message}", e.errorCauseOrDefault()
+            )
         }
     }
 
@@ -204,7 +254,7 @@ open class BluePrintModelHandler(
      *
      * @param tags tags
      * @return List<BlueprintModelSearch>
-    </BlueprintModelSearch> */
+     </BlueprintModelSearch> */
     open fun searchBlueprintModels(tags: String): List<BlueprintModelSearch> {
         return blueprintModelSearchRepository.findByTagsContainingIgnoreCase(tags)
     }
@@ -220,10 +270,10 @@ open class BluePrintModelHandler(
     @Throws(BluePrintException::class)
     open fun getBlueprintModelSearchByNameAndVersion(name: String, version: String): BlueprintModelSearch? {
         return blueprintModelSearchRepository.findByArtifactNameAndArtifactVersion(name, version)
-            /*?: throw BluePrintException(
-                ErrorCode.RESOURCE_NOT_FOUND.value,
-                String.format(BLUEPRINT_MODEL_NAME_VERSION_FAILURE_MSG, name, version)
-            )*/
+        /*?: throw BluePrintException(
+            ErrorCode.RESOURCE_NOT_FOUND.value,
+            String.format(BLUEPRINT_MODEL_NAME_VERSION_FAILURE_MSG, name, version)
+        )*/
     }
 
     /**
@@ -233,7 +283,7 @@ open class BluePrintModelHandler(
      * @param version version
      * @return ResponseEntity<Resource>
      * @throws BluePrintException BluePrintException
-    </Resource> */
+     </Resource> */
     @Throws(BluePrintException::class)
     open fun downloadBlueprintModelFileByNameAndVersion(
         name: String,
@@ -246,8 +296,10 @@ open class BluePrintModelHandler(
         } catch (e: BluePrintProcessorException) {
             e.http(ErrorCatalogCodes.RESOURCE_NOT_FOUND)
             val errorMsg = "Error while downloading the CBA file by Blueprint Name ($name) and Version ($version)."
-            throw e.updateErrorMessage(DesignerApiDomains.DESIGNER_API, errorMsg,
-                    "Wrong resource definition or resolution failed.")
+            throw e.updateErrorMessage(
+                DesignerApiDomains.DESIGNER_API, errorMsg,
+                "Wrong resource definition or resolution failed."
+            )
         }
     }
 
@@ -256,28 +308,32 @@ open class BluePrintModelHandler(
      *
      * @return ResponseEntity<Resource>
      * @throws BluePrintException BluePrintException
-    </Resource> */
+     </Resource> */
     @Throws(BluePrintException::class)
     open fun downloadBlueprintModelFile(id: String): ResponseEntity<Resource> {
         val blueprintModel: BlueprintModel
         try {
             blueprintModel = getBlueprintModel(id)
         } catch (e: BluePrintException) {
-            throw httpProcessorException(ErrorCatalogCodes.RESOURCE_NOT_FOUND, DesignerApiDomains.DESIGNER_API,
-                    "Error while downloading the CBA file: couldn't get blueprint modelby ID ($id)",
-                    e.errorCauseOrDefault())
+            throw httpProcessorException(
+                ErrorCatalogCodes.RESOURCE_NOT_FOUND, DesignerApiDomains.DESIGNER_API,
+                "Error while downloading the CBA file: couldn't get blueprint modelby ID ($id)",
+                e.errorCauseOrDefault()
+            )
         }
 
         val fileName = "${blueprintModel.artifactName}_${blueprintModel.artifactVersion}.zip"
         val file = blueprintModel.blueprintModelContent?.content
-            ?: throw httpProcessorException(ErrorCatalogCodes.RESOURCE_NOT_FOUND, DesignerApiDomains.DESIGNER_API,
-                    "Error while downloading the CBA file: couldn't get model content")
+            ?: throw httpProcessorException(
+                ErrorCatalogCodes.RESOURCE_NOT_FOUND, DesignerApiDomains.DESIGNER_API,
+                "Error while downloading the CBA file: couldn't get model content"
+            )
         return prepareResourceEntity(fileName, file)
     }
 
     /**
      * @return ResponseEntity<Resource>
-    </Resource> */
+     </Resource> */
     private fun prepareResourceEntity(fileName: String, file: ByteArray): ResponseEntity<Resource> {
         return ResponseEntity.ok()
             .contentType(MediaType.parseMediaType("text/plain"))
@@ -335,8 +391,10 @@ open class BluePrintModelHandler(
     @Throws(BluePrintException::class)
     open fun getBlueprintModelSearch(id: String): BlueprintModelSearch {
         return blueprintModelSearchRepository.findById(id)
-            ?: throw httpProcessorException(ErrorCatalogCodes.RESOURCE_NOT_FOUND, DesignerApiDomains.DESIGNER_API,
-                    String.format(BLUEPRINT_MODEL_ID_FAILURE_MSG, id))
+            ?: throw httpProcessorException(
+                ErrorCatalogCodes.RESOURCE_NOT_FOUND, DesignerApiDomains.DESIGNER_API,
+                String.format(BLUEPRINT_MODEL_ID_FAILURE_MSG, id)
+            )
     }
 
     /**
@@ -346,7 +404,7 @@ open class BluePrintModelHandler(
      * @param keyWord
      *
      * @return List<BlueprintModelSearch> list of the controller blueprint
-    </BlueprintModelSearch> */
+     </BlueprintModelSearch> */
     open fun searchBluePrintModelsByKeyWord(keyWord: String): List<BlueprintModelSearch> {
         return blueprintModelSearchRepository.findByUpdatedByOrTagsOrOrArtifactNameOrOrArtifactVersionOrArtifactType(
             keyWord, keyWord, keyWord, keyWord, keyWord
@@ -360,9 +418,9 @@ open class BluePrintModelHandler(
      * @param keyWord
      *
      * @return List<BlueprintModelSearch> list of the controller blueprint
-    </BlueprintModelSearch> */
+     </BlueprintModelSearch> */
     open fun searchBluePrintModelsByKeyWordPaged(keyWord: String, pageRequest: PageRequest): Page<BlueprintModelSearch> {
-        return blueprintModelSearchRepository.findByUpdatedByOrTagsOrOrArtifactNameOrOrArtifactVersionOrArtifactType(
+        return blueprintModelSearchRepository.findByUpdatedByContainingIgnoreCaseOrTagsContainingIgnoreCaseOrArtifactNameContainingIgnoreCaseOrArtifactVersionContainingIgnoreCaseOrArtifactTypeContainingIgnoreCase(
             keyWord,
             keyWord,
             keyWord,
@@ -382,7 +440,7 @@ open class BluePrintModelHandler(
     @Throws(BluePrintException::class)
     open fun deleteBlueprintModel(id: String) {
         val dbBlueprintModel = blueprintModelRepository.findById(id)
-        if (dbBlueprintModel != null && dbBlueprintModel.isPresent) {
+        if (dbBlueprintModel.isPresent) {
             blueprintModelContentRepository.deleteByBlueprintModel(dbBlueprintModel.get())
             blueprintModelRepository.delete(dbBlueprintModel.get())
         } else {
@@ -415,16 +473,21 @@ open class BluePrintModelHandler(
         } catch (e: BluePrintProcessorException) {
             e.http(ErrorCatalogCodes.IO_FILE_INTERRUPT)
             val errorMsg = "Error while enhancing the CBA package."
-            throw e.updateErrorMessage(DesignerApiDomains.DESIGNER_API, errorMsg,
-                    "Wrong CBA file provided, please verify and enrich Again.")
+            throw e.updateErrorMessage(
+                DesignerApiDomains.DESIGNER_API, errorMsg,
+                "Wrong CBA file provided, please verify and enrich Again."
+            )
         } catch (e: Exception) {
-            throw httpProcessorException(ErrorCatalogCodes.IO_FILE_INTERRUPT, DesignerApiDomains.DESIGNER_API,
-                    "EnrichBlueprint: ${e.message}", e.errorCauseOrDefault())
+            throw httpProcessorException(
+                ErrorCatalogCodes.IO_FILE_INTERRUPT, DesignerApiDomains.DESIGNER_API,
+                "EnrichBlueprint: ${e.message}", e.errorCauseOrDefault()
+            )
         }
     }
 
     /**
      * This is a publishBlueprintModel method to change the status published to YES
+     * NOTE: this method is meant for enriched blueprints only.
      *
      * @param filePart filePart
      * @return BlueprintModelSearch
@@ -437,11 +500,44 @@ open class BluePrintModelHandler(
         } catch (e: BluePrintProcessorException) {
             e.http(ErrorCatalogCodes.IO_FILE_INTERRUPT)
             val errorMsg = "Error in Publishing CBA."
-            throw e.updateErrorMessage(DesignerApiDomains.DESIGNER_API, errorMsg,
-                    "Wrong CBA provided, please verify and enrich your CBA.")
+            throw e.updateErrorMessage(
+                DesignerApiDomains.DESIGNER_API, errorMsg,
+                "Wrong CBA provided, please verify and enrich your CBA."
+            )
+        } catch (e: Exception) {
+            throw httpProcessorException(
+                ErrorCatalogCodes.IO_FILE_INTERRUPT, DesignerApiDomains.DESIGNER_API,
+                "Error in Publishing CBA: ${e.message}", e.errorCauseOrDefault()
+            )
+        }
+    }
+
+    /**
+     * Enrich and publish the blueprint.
+     * NOTE: this method is meant for the unenriched vs publishBlueprint(filePart)
+     *       which is used for enriched blueprints.
+     *
+     * @param filePart filePart
+     * @return BlueprintModelSearch
+     * @throws BluePrintException BluePrintException
+     */
+    @Throws(BluePrintException::class)
+    open suspend fun enrichAndPublishBlueprint(filePart: FilePart): BlueprintModelSearch {
+        try {
+            val enhancedByteArray = enrichBlueprintFileSource(filePart)
+            return upload(enhancedByteArray, true)
+        } catch (e: BluePrintProcessorException) {
+            e.http(ErrorCatalogCodes.IO_FILE_INTERRUPT)
+            val errorMsg = "Error while enhancing and uploading the CBA package."
+            throw e.updateErrorMessage(
+                DesignerApiDomains.DESIGNER_API, errorMsg,
+                "Wrong CBA file provided, please verify the source CBA."
+            )
         } catch (e: Exception) {
-            throw httpProcessorException(ErrorCatalogCodes.IO_FILE_INTERRUPT, DesignerApiDomains.DESIGNER_API,
-                    "Error in Publishing CBA: ${e.message}", e.errorCauseOrDefault())
+            throw httpProcessorException(
+                ErrorCatalogCodes.IO_FILE_INTERRUPT, DesignerApiDomains.DESIGNER_API,
+                "EnrichBlueprint: ${e.message}", e.errorCauseOrDefault()
+            )
         }
     }
 
@@ -461,16 +557,22 @@ open class BluePrintModelHandler(
             val blueprintId = blueprintsProcessorCatalogService.saveToDatabase(saveId, compressedFile, validate)
 
             return blueprintModelSearchRepository.findById(blueprintId)
-                ?: throw httpProcessorException(ErrorCatalogCodes.RESOURCE_NOT_FOUND, DesignerApiDomains.DESIGNER_API,
-                        String.format(BLUEPRINT_MODEL_ID_FAILURE_MSG, blueprintId))
+                ?: throw httpProcessorException(
+                    ErrorCatalogCodes.RESOURCE_NOT_FOUND, DesignerApiDomains.DESIGNER_API,
+                    String.format(BLUEPRINT_MODEL_ID_FAILURE_MSG, blueprintId)
+                )
         } catch (e: BluePrintException) {
             e.http(ErrorCatalogCodes.IO_FILE_INTERRUPT)
             val errorMsg = "Error in Upload CBA."
-            throw e.updateErrorMessage(DesignerApiDomains.DESIGNER_API, errorMsg,
-                    "Wrong enriched CBA.")
+            throw e.updateErrorMessage(
+                DesignerApiDomains.DESIGNER_API, errorMsg,
+                "Wrong enriched CBA."
+            )
         } catch (e: IOException) {
-            throw httpProcessorException(ErrorCatalogCodes.IO_FILE_INTERRUPT, DesignerApiDomains.DESIGNER_API,
-                    "Error in Upload CBA: ${e.errorMessageOrDefault()}", e.errorCauseOrDefault())
+            throw httpProcessorException(
+                ErrorCatalogCodes.IO_FILE_INTERRUPT, DesignerApiDomains.DESIGNER_API,
+                "Error in Upload CBA: ${e.errorMessageOrDefault()}", e.errorCauseOrDefault()
+            )
         } finally {
             // Clean blueprint script cache
             val cacheKey = BluePrintFileUtils
@@ -487,13 +589,17 @@ open class BluePrintModelHandler(
         try {
             val blueprintModel = getBlueprintModelByNameAndVersion(name, version)
             return blueprintModel.blueprintModelContent?.content
-                ?: throw httpProcessorException(ErrorCatalogCodes.RESOURCE_NOT_FOUND, DesignerApiDomains.DESIGNER_API,
-                        "Error while downloading the CBA file: couldn't get model content")
+                ?: throw httpProcessorException(
+                    ErrorCatalogCodes.RESOURCE_NOT_FOUND, DesignerApiDomains.DESIGNER_API,
+                    "Error while downloading the CBA file: couldn't get model content"
+                )
         } catch (e: BluePrintException) {
             e.http(ErrorCatalogCodes.RESOURCE_NOT_FOUND)
             val errorMsg = "Fail to get Blueprint Model content."
-            throw e.updateErrorMessage(DesignerApiDomains.DESIGNER_API, errorMsg,
-                    "Wrong name and version was provide.")
+            throw e.updateErrorMessage(
+                DesignerApiDomains.DESIGNER_API, errorMsg,
+                "Wrong name and version was provide."
+            )
         }
     }
 
@@ -505,10 +611,12 @@ open class BluePrintModelHandler(
         val blueprintWorkingDir = normalizedPathName(bluePrintLoadConfiguration.blueprintWorkingPath, enhanceId)
         try {
             when (fileSource) {
-                is FilePart -> BluePrintEnhancerUtils
-                    .copyFilePartToEnhanceDir(fileSource, blueprintArchive, blueprintWorkingDir)
-                is ByteArray -> BluePrintEnhancerUtils
-                    .copyByteArrayToEnhanceDir(fileSource, blueprintArchive, blueprintWorkingDir)
+                is FilePart ->
+                    BluePrintEnhancerUtils
+                        .copyFilePartToEnhanceDir(fileSource, blueprintArchive, blueprintWorkingDir)
+                is ByteArray ->
+                    BluePrintEnhancerUtils
+                        .copyByteArrayToEnhanceDir(fileSource, blueprintArchive, blueprintWorkingDir)
             } // Enhance the Blue Prints
             bluePrintEnhancerService.enhance(blueprintWorkingDir)
 
@@ -518,8 +626,10 @@ open class BluePrintModelHandler(
             val errorMsg = "Fail Enriching the CBA."
             throw e.updateErrorMessage(DesignerApiDomains.DESIGNER_API, errorMsg)
         } catch (e: IOException) {
-            throw httpProcessorException(ErrorCatalogCodes.IO_FILE_INTERRUPT, DesignerApiDomains.DESIGNER_API,
-                    "Error while Enriching the CBA file.", e.errorCauseOrDefault())
+            throw httpProcessorException(
+                ErrorCatalogCodes.IO_FILE_INTERRUPT, DesignerApiDomains.DESIGNER_API,
+                "Error while Enriching the CBA file.", e.errorCauseOrDefault()
+            )
         } finally {
             BluePrintEnhancerUtils.cleanEnhancer(blueprintArchive, blueprintWorkingDir)
         }