From 56f989b82d6065a8aad01b28469aed16f7663e5c Mon Sep 17 00:00:00 2001 From: Alexis de Talhouët Date: Thu, 8 Aug 2019 18:20:13 -0400 Subject: Set resource data value when fetch from database MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When doing resource resolution, if the same resolution-key, or the same resource-id/resource-type combo, is used, then the process will only try to resolve the resources set with a "failure" status from the RESOURCE_RESOLUTION db table. In the case the resource has previsously successfully been resolved, then we need to set its value in the resource assignemnt resolution store so it can be used later in the processing, for instance if another resource depends on it. Change-Id: Ifa3957fe3d2365e1f4347aa61ed963124f8a69f7 Issue-ID: CCSDK-1606 Signed-off-by: Alexis de Talhouët --- .../functions/resource/resolution/ResourceResolutionService.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionService.kt b/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionService.kt index 314065763..b9b710390 100644 --- a/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionService.kt +++ b/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionService.kt @@ -121,7 +121,8 @@ open class ResourceResolutionServiceImpl(private var applicationContext: Applica if (isToStore(properties)) { val existingResourceResolution = isNewResolution(bluePrintRuntimeService, properties, artifactPrefix) if (existingResourceResolution.isNotEmpty()) { - updateResourceAssignmentWithExisting(existingResourceResolution, resourceAssignments) + updateResourceAssignmentWithExisting(bluePrintRuntimeService as ResourceAssignmentRuntimeService, + existingResourceResolution, resourceAssignments) } } @@ -296,15 +297,18 @@ open class ResourceResolutionServiceImpl(private var applicationContext: Applica } // Update the resource assignment list with the status of the resource that have already been resolved - private fun updateResourceAssignmentWithExisting(resourceResolutionList: List, + private fun updateResourceAssignmentWithExisting(raRuntimeService : ResourceAssignmentRuntimeService, + resourceResolutionList: List, resourceAssignmentList: MutableList) { resourceResolutionList.forEach { resourceResolution -> if (resourceResolution.status == BluePrintConstants.STATUS_SUCCESS) { resourceAssignmentList.forEach { if (compareOne(resourceResolution, it)) { log.info("Resource ({}) already resolve: value=({})", it.name, resourceResolution.value) - it.property!!.value = resourceResolution.value!!.asJsonPrimitive() + val value = resourceResolution.value!!.asJsonPrimitive() + it.property!!.value = value it.status = resourceResolution.status + ResourceAssignmentUtils.setResourceDataValue(it, raRuntimeService, value) } } } -- cgit 1.2.3-korg