Merge "Created media folders for ResourceDictionary"
[ccsdk/cds.git] / ms / blueprintsprocessor / functions / resource-resolution / src / main / kotlin / org / onap / ccsdk / cds / blueprintsprocessor / functions / resource / resolution / processor / CapabilityResourceResolutionProcessor.kt
index ae08a1c..49cb83e 100644 (file)
@@ -20,6 +20,7 @@ package org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.pro
 
 import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.CapabilityResourceSource
 import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.ResourceResolutionConstants.PREFIX_RESOURCE_RESOLUTION_PROCESSOR
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.utils.ResourceAssignmentUtils
 import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.ComponentFunctionScriptingService
 import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
 import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
@@ -44,7 +45,7 @@ open class CapabilityResourceResolutionProcessor(private val applicationContext:
         return "${PREFIX_RESOURCE_RESOLUTION_PROCESSOR}source-capability"
     }
 
-    override fun process(resourceAssignment: ResourceAssignment) {
+    override suspend fun processNB(resourceAssignment: ResourceAssignment) {
 
         val resourceDefinition = resourceDictionaries[resourceAssignment.dictionaryName]
                 ?: throw BluePrintProcessorException("couldn't get resource definition for ${resourceAssignment.dictionaryName}")
@@ -71,21 +72,21 @@ open class CapabilityResourceResolutionProcessor(private val applicationContext:
         }
 
         // Assign Current Blueprint runtime and ResourceDictionaries
+        componentResourceAssignmentProcessor!!.scriptType = scriptType
         componentResourceAssignmentProcessor!!.raRuntimeService = raRuntimeService
         componentResourceAssignmentProcessor!!.resourceDictionaries = resourceDictionaries
 
         // Invoke componentResourceAssignmentProcessor
-        componentResourceAssignmentProcessor!!.apply(resourceAssignment)
+        componentResourceAssignmentProcessor!!.executeScript(resourceAssignment)
     }
 
-    override fun recover(runtimeException: RuntimeException, resourceAssignment: ResourceAssignment) {
-        log.info("Recovering for : ${resourceAssignment.name} : ${runtimeException.toString()}")
-        if (componentResourceAssignmentProcessor != null) {
-            componentResourceAssignmentProcessor!!.recover(runtimeException, resourceAssignment)
-        }
+    override suspend fun recoverNB(runtimeException: RuntimeException, resourceAssignment: ResourceAssignment) {
+        raRuntimeService.getBluePrintError()
+                .addError("Failed in CapabilityResourceResolutionProcessor : ${runtimeException.message}")
+        ResourceAssignmentUtils.setFailedResourceDataValue(resourceAssignment, runtimeException.message)
     }
 
-    fun scriptInstance(scriptType: String, scriptClassReference: String, instanceDependencies: List<String>)
+    suspend fun scriptInstance(scriptType: String, scriptClassReference: String, instanceDependencies: List<String>)
             : ResourceAssignmentProcessor {
 
         log.info("creating resource resolution of script type($scriptType), reference name($scriptClassReference) and" +
@@ -101,4 +102,5 @@ open class CapabilityResourceResolutionProcessor(private val applicationContext:
         }
         return scriptComponent
     }
+
 }
\ No newline at end of file