Returning null for unresolved variables 19/88419/6
authorottero <rodrigo.ottero@est.tech>
Tue, 28 May 2019 09:25:45 +0000 (09:25 +0000)
committerottero <rodrigo.ottero@est.tech>
Tue, 28 May 2019 09:25:45 +0000 (09:25 +0000)
commit5e1e26053d13c9e693762c69b43eff3093c34d29
treea80c2cb1c10c4f5acae95e8f72ae61f2effcaf10
parent1f69e1c3569196305c23f085cfbc03bdba14f4e0
Returning null for unresolved variables

When Blueprints Processor was not able to evaluate a variable, it would
set its value to null.

The expected behaviour would be to set the value to the default repres-
entation in the formal notation as defined by Apache Velocity, which is
a dollar followed by the name of the variable between curly braces. For
example, if the value of the variable pnf-id could not be evaluated in
runtime, its value would be defined as the string "${pnf-id}".

The problem happened during evaluation of the variables that would be
later sent to the template-meshing code for processing.

The fix was to add a check before the value was assigned to the varia-
ble; if the was not null, the assignment will happen normally. Otherwi-
se, if the evaluation resolves to null, the variable receives the defa-
ult value (string "${<variable name>}").

Besides the tests that were put in place to test the code changed for
this fix, two tests were added to the existing test case of the templa-
te meshing code, to act as regression test.

Change-Id: I635afb1eba4c0d45b821811f0119fa6c87ea9542
Issue-ID: CCSDK-1358
Signed-off-by: ottero <rodrigo.ottero@est.tech>
ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/utils/ResourceAssignmentUtils.kt
ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/utils/ResourceAssignmentUtilsTest.kt [new file with mode: 0644]
ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintVelocityTemplateService.kt
ms/controllerblueprints/modules/blueprint-core/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintTemplateServiceTest.kt
ms/controllerblueprints/modules/blueprint-core/src/test/resources/templates/default-variable-value-data.json [new file with mode: 0755]
ms/controllerblueprints/modules/blueprint-core/src/test/resources/templates/default-variable-value-velocity-template.vtl [new file with mode: 0755]