Error when template-prefix-names list is set as an input 78/109278/3
authorJulien Fontaine <julien.fontaine@bell.ca>
Wed, 17 Jun 2020 19:51:45 +0000 (15:51 -0400)
committerKAPIL SINGAL <ks220y@att.com>
Fri, 19 Jun 2020 04:00:28 +0000 (04:00 +0000)
Case when template-prefix-names list for resource resolution is passed as an input was not handled.
When the audit service was trying to get input-prefix-names values he was only getting {"get_input": "..."} and was not resolving this expression.

Issue-ID: CCSDK-2456
Change-Id: If9ebbf0aa6b6eae3e44a7bfe0b930f622dfd3c1e
Signed-off-by: Julien Fontaine <julien.fontaine@bell.ca>
ms/blueprintsprocessor/modules/blueprints/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/PropertyAssignmentService.kt
ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/KafkaPublishAuditService.kt

index 4ae01c0..0444bbe 100644 (file)
@@ -40,7 +40,7 @@ import org.slf4j.LoggerFactory
  *
  * @author Brinda Santh
  */
-internal class PropertyAssignmentService(var bluePrintRuntimeService: BluePrintRuntimeService<MutableMap<String, JsonNode>>) {
+open class PropertyAssignmentService(var bluePrintRuntimeService: BluePrintRuntimeService<MutableMap<String, JsonNode>>) {
 
     private val log = LoggerFactory.getLogger(this::class.toString())
 
index 9ac11c7..6ff2179 100644 (file)
@@ -28,6 +28,7 @@ import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
 import org.onap.ccsdk.cds.controllerblueprints.core.asJsonPrimitive
 import org.onap.ccsdk.cds.controllerblueprints.core.common.ApplicationConstants
 import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintCatalogService
+import org.onap.ccsdk.cds.controllerblueprints.core.service.PropertyAssignmentService
 import org.onap.ccsdk.cds.controllerblueprints.core.utils.BluePrintMetadataUtils
 import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
 import org.onap.ccsdk.cds.controllerblueprints.core.utils.PropertyDefinitionUtils
@@ -158,8 +159,18 @@ class KafkaPublishAuditService(
                             blueprintContext.nodeTemplateInterfaceOperationInputs(nodeTemplateName, interfaceName, operationName)
                                     ?: hashMapOf()
 
+                    /** Getting values define in artifact-prefix-names */
+                    val input = executionServiceInput.payload.get("$workflowName-request")
+                    blueprintRuntimeService.assignWorkflowInputs(workflowName, input)
                     val artifactPrefixNamesNode = propertyAssignments[ResourceResolutionConstants.INPUT_ARTIFACT_PREFIX_NAMES]
-                    val artifactPrefixNames = JacksonUtils.getListFromJsonNode(artifactPrefixNamesNode!!, String::class.java)
+                    val propertyAssignmentService = PropertyAssignmentService(blueprintRuntimeService)
+                    val artifactPrefixNamesNodeValue = propertyAssignmentService.resolveAssignmentExpression(
+                            BluePrintConstants.MODEL_DEFINITION_TYPE_NODE_TEMPLATE,
+                            nodeTemplateName,
+                            ResourceResolutionConstants.INPUT_ARTIFACT_PREFIX_NAMES,
+                            artifactPrefixNamesNode!!)
+
+                    val artifactPrefixNames = JacksonUtils.getListFromJsonNode(artifactPrefixNamesNodeValue!!, String::class.java)
 
                     /** Storing mapping entries with metadata log-protect set to true */
                     val sensitiveParameters: List<String> = artifactPrefixNames