From 7093027dcaaaf7311a4f1fbf4b679032ba232e30 Mon Sep 17 00:00:00 2001 From: Oleg Mitsura Date: Wed, 22 Jan 2020 14:23:17 -0500 Subject: Enhancement better error messages. Issue-ID: CCSDK-2036 rev1: initial commit. Signed-off-by: Oleg Mitsura Change-Id: I0bc31a2a17a6dfedbb1870470e8bf6304be782b5 --- .../core/interfaces/BluePrintEnhancer.kt | 35 ++++++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) (limited to 'ms/blueprintsprocessor/modules/blueprints') diff --git a/ms/blueprintsprocessor/modules/blueprints/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/interfaces/BluePrintEnhancer.kt b/ms/blueprintsprocessor/modules/blueprints/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/interfaces/BluePrintEnhancer.kt index 535021b34..b657199c7 100644 --- a/ms/blueprintsprocessor/modules/blueprints/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/interfaces/BluePrintEnhancer.kt +++ b/ms/blueprintsprocessor/modules/blueprints/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/interfaces/BluePrintEnhancer.kt @@ -164,8 +164,17 @@ interface BluePrintTypeEnhancerService { bluePrintRuntimeService: BluePrintRuntimeService<*>, properties: MutableMap ) { + val errorMap = linkedMapOf() properties.forEach { propertyName, propertyDefinition -> - enhancePropertyDefinition(bluePrintRuntimeService, propertyName, propertyDefinition) + try { + enhancePropertyDefinition(bluePrintRuntimeService, propertyName, propertyDefinition) + } catch (e: BluePrintException) { + errorMap[propertyName] = e + } + } + if (errorMap.isNotEmpty()) { + val nestedErrors = errorMap.keys.map { "[ property: ${errorMap[it]?.message} ]" }.joinToString(";") + throw BluePrintException("Failed to enhance properties $nestedErrors") } } @@ -182,8 +191,17 @@ interface BluePrintTypeEnhancerService { bluePrintRuntimeService: BluePrintRuntimeService<*>, attributes: MutableMap ) { + val errorMap = linkedMapOf() attributes.forEach { attributeName, attributeDefinition -> - enhanceAttributeDefinition(bluePrintRuntimeService, attributeName, attributeDefinition) + try { + enhanceAttributeDefinition(bluePrintRuntimeService, attributeName, attributeDefinition) + } catch (e: BluePrintException) { + errorMap[attributeName] = e + } + } + if (errorMap.isNotEmpty()) { + val nestedErrors = errorMap.keys.map { "[ attribute: ${errorMap[it]?.message} ]" }.joinToString(";") + throw BluePrintException("Failed to enhance attributes $nestedErrors") } } @@ -204,8 +222,19 @@ interface BluePrintTypeEnhancerService { enhancers: List> ) { if (enhancers.isNotEmpty()) { + val errorMap = linkedMapOf() enhancers.forEach { - it.enhance(bluePrintRuntimeService, name, definition as T) + try { + it.enhance(bluePrintRuntimeService, name, definition as T) + } catch (e: BluePrintException) { + errorMap[name] = e + } + } + if (errorMap.isNotEmpty()) { + val nestedErrors = errorMap.keys.map { + "${errorMap[it]?.message ?: errorMap[it].toString()}" + }.joinToString(";") + throw BluePrintException("$name-->$nestedErrors") } } } -- cgit 1.2.3-korg