import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException
import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
+import org.onap.ccsdk.cds.controllerblueprints.core.asJsonNode
import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BlueprintFunctionNode
import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintVelocityTemplateService
-import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceAssignment
import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceDefinition
import org.slf4j.LoggerFactory
?: throw BluePrintProcessorException("couldn't get resource definition for ($name)")
}
- open fun resolveInputKeyMappingVariables(inputKeyMapping: Map<String, String>): Map<String, Any> {
- val resolvedInputKeyMapping = HashMap<String, Any>()
+ open fun resolveInputKeyMappingVariables(inputKeyMapping: Map<String, String>): Map<String, JsonNode> {
+ val resolvedInputKeyMapping = HashMap<String, JsonNode>()
if (MapUtils.isNotEmpty(inputKeyMapping)) {
for ((key, value) in inputKeyMapping) {
val resultValue = raRuntimeService.getResolutionStore(value)
- val expressionValue = JacksonUtils.getValue(resultValue)
- log.trace("Reference dictionary key ({}), value ({})", key, expressionValue)
- resolvedInputKeyMapping[key] = expressionValue
+ resolvedInputKeyMapping[key] = resultValue
}
}
return resolvedInputKeyMapping
}
- open suspend fun resolveFromInputKeyMapping(valueToResolve: String, keyMapping: MutableMap<String, Any>):
+ open suspend fun resolveFromInputKeyMapping(valueToResolve: String, keyMapping: MutableMap<String, JsonNode>):
String {
if (valueToResolve.isEmpty() || !valueToResolve.contains("$")) {
return valueToResolve
}
- return BluePrintVelocityTemplateService.generateContent(valueToResolve, additionalContext = keyMapping)
+ //TODO("Optimize to JSON Node directly without velocity").asJsonNode().toString()
+ return BluePrintVelocityTemplateService.generateContent(valueToResolve, keyMapping.asJsonNode().toString())
}
final override suspend fun applyNB(resourceAssignment: ResourceAssignment): Boolean {
} catch (runtimeException: RuntimeException) {
log.error("failed in ${getName()} : ${runtimeException.message}", runtimeException)
recoverNB(runtimeException, resourceAssignment)
+ return false
}
return true
}
try {
process(resourceAssignment)
} catch (runtimeException: RuntimeException) {
- log.error("failed in ${getName()} : ${runtimeException.message}", runtimeException)
+ log.error("failed in ResourceAssignmentProcessor : ${runtimeException.message}", runtimeException)
recover(runtimeException, resourceAssignment)
}
}