Merge "Fixnig file import in script, import and template&mapping."
[ccsdk/cds.git] / ms / blueprintsprocessor / modules / inbounds / designer-api / src / main / kotlin / org / onap / ccsdk / cds / blueprintsprocessor / designer / api / enhancer / BluePrintEnhancerServiceImpl.kt
index b4d149e..1d534bb 100644 (file)
 
 package org.onap.ccsdk.cds.blueprintsprocessor.designer.api.enhancer
 
+import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.DesignerApiDomains
 import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
+import org.onap.ccsdk.cds.controllerblueprints.core.logger
+import org.onap.ccsdk.cds.controllerblueprints.core.updateErrorMessage
+import org.onap.ccsdk.cds.controllerblueprints.core.httpProcessorException
 import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintEnhancerService
 import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintTypeEnhancerService
-import org.onap.ccsdk.cds.controllerblueprints.core.logger
 import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext
 import org.onap.ccsdk.cds.controllerblueprints.core.utils.BluePrintFileUtils
 import org.onap.ccsdk.cds.controllerblueprints.core.utils.BluePrintMetadataUtils
 import org.onap.ccsdk.cds.controllerblueprints.resource.dict.utils.ResourceDictionaryUtils
+import org.onap.ccsdk.cds.error.catalog.core.ErrorCatalogCodes
+import org.onap.ccsdk.cds.error.catalog.core.utils.errorCauseOrDefault
 import org.springframework.stereotype.Service
-import java.util.*
+import java.io.IOException
+import java.util.UUID
 
 @Service
-open class BluePrintEnhancerServiceImpl(private val bluePrintTypeEnhancerService: BluePrintTypeEnhancerService,
-                                        private val resourceDefinitionEnhancerService: ResourceDefinitionEnhancerService) : BluePrintEnhancerService {
+open class BluePrintEnhancerServiceImpl(
+    private val bluePrintTypeEnhancerService: BluePrintTypeEnhancerService,
+    private val resourceDefinitionEnhancerService: ResourceDefinitionEnhancerService
+) : BluePrintEnhancerService {
 
     private val log = logger(BluePrintEnhancerServiceImpl::class)
 
@@ -48,16 +57,20 @@ open class BluePrintEnhancerServiceImpl(private val bluePrintTypeEnhancerService
 
         log.info("Enhancing blueprint($basePath)")
         val blueprintRuntimeService = BluePrintMetadataUtils
-                .getBaseEnhancementBluePrintRuntime(UUID.randomUUID().toString(), basePath)
+            .getBaseEnhancementBluePrintRuntime(UUID.randomUUID().toString(), basePath)
 
         try {
 
-            bluePrintTypeEnhancerService.enhanceServiceTemplate(blueprintRuntimeService, "service_template",
-                    blueprintRuntimeService.bluePrintContext().serviceTemplate)
+            bluePrintTypeEnhancerService.enhanceServiceTemplate(
+                blueprintRuntimeService, "service_template",
+                blueprintRuntimeService.bluePrintContext().serviceTemplate
+            )
 
             log.info("##### Enhancing blueprint Resource Definitions")
-            val resourceDefinitions = resourceDefinitionEnhancerService.enhance(bluePrintTypeEnhancerService,
-                    blueprintRuntimeService)
+            val resourceDefinitions = resourceDefinitionEnhancerService.enhance(
+                bluePrintTypeEnhancerService,
+                blueprintRuntimeService
+            )
 
             // Write the Enhanced Blueprint Definitions
             BluePrintFileUtils.writeEnhancedBluePrint(blueprintRuntimeService.bluePrintContext())
@@ -68,12 +81,17 @@ open class BluePrintEnhancerServiceImpl(private val bluePrintTypeEnhancerService
             if (blueprintRuntimeService.getBluePrintError().errors.isNotEmpty()) {
                 throw BluePrintException(blueprintRuntimeService.getBluePrintError().errors.toString())
             }
-
+        } catch (e: BluePrintProcessorException) {
+            val errorMsg = "Error while enriching the CBA package."
+            throw e.updateErrorMessage(DesignerApiDomains.DESIGNER_API, errorMsg,
+                    "Wrong blueprint definitions or resource definitions.")
+        } catch (e: IOException) {
+            throw httpProcessorException(ErrorCatalogCodes.IO_FILE_INTERRUPT, DesignerApiDomains.DESIGNER_API,
+                    "IO Error: CBA file failed enrichment - ${e.message}", e.errorCauseOrDefault())
         } catch (e: Exception) {
-            throw e
+            throw httpProcessorException(ErrorCatalogCodes.IO_FILE_INTERRUPT, DesignerApiDomains.DESIGNER_API,
+                    "Error in Enriching CBA: ${e.message}", e.errorCauseOrDefault())
+        }
+            return blueprintRuntimeService.bluePrintContext()
         }
-        return blueprintRuntimeService.bluePrintContext()
-    }
-
 }
-