aboutsummaryrefslogtreecommitdiffstats
path: root/ms/controllerblueprints
diff options
context:
space:
mode:
authorottero <rodrigo.ottero@est.tech>2019-05-28 09:25:45 +0000
committerottero <rodrigo.ottero@est.tech>2019-05-28 09:25:45 +0000
commit5e1e26053d13c9e693762c69b43eff3093c34d29 (patch)
treea80c2cb1c10c4f5acae95e8f72ae61f2effcaf10 /ms/controllerblueprints
parent1f69e1c3569196305c23f085cfbc03bdba14f4e0 (diff)
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>
Diffstat (limited to 'ms/controllerblueprints')
-rw-r--r--ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintVelocityTemplateService.kt1
-rw-r--r--ms/controllerblueprints/modules/blueprint-core/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintTemplateServiceTest.kt35
-rwxr-xr-xms/controllerblueprints/modules/blueprint-core/src/test/resources/templates/default-variable-value-data.json3
-rwxr-xr-xms/controllerblueprints/modules/blueprint-core/src/test/resources/templates/default-variable-value-velocity-template.vtl2
4 files changed, 40 insertions, 1 deletions
diff --git a/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintVelocityTemplateService.kt b/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintVelocityTemplateService.kt
index 496182ee7..43e6d221f 100644
--- a/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintVelocityTemplateService.kt
+++ b/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintVelocityTemplateService.kt
@@ -82,4 +82,3 @@ object BluePrintVelocityTemplateService {
}
}
-
diff --git a/ms/controllerblueprints/modules/blueprint-core/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintTemplateServiceTest.kt b/ms/controllerblueprints/modules/blueprint-core/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintTemplateServiceTest.kt
index 02505acad..6f961c8ed 100644
--- a/ms/controllerblueprints/modules/blueprint-core/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintTemplateServiceTest.kt
+++ b/ms/controllerblueprints/modules/blueprint-core/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintTemplateServiceTest.kt
@@ -26,6 +26,7 @@ import org.onap.ccsdk.cds.controllerblueprints.core.utils.BluePrintMetadataUtils
import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
import org.springframework.test.context.junit4.SpringRunner
import kotlin.test.BeforeTest
+import kotlin.test.assertEquals
import kotlin.test.assertNotNull
@RunWith(SpringRunner::class)
@@ -97,5 +98,39 @@ class BluePrintTemplateServiceTest {
assertNotNull(content, "failed to generate content for velocity template")
}
}
+
+ @Test
+ fun `no value variable should evaluate to default value - standalone template mesh test`() {
+ runBlocking {
+ val template = JacksonUtils.getClassPathFileContent("templates/default-variable-value-velocity-template.vtl")
+ val json = JacksonUtils.getClassPathFileContent("templates/default-variable-value-data.json")
+
+ val content = BluePrintVelocityTemplateService.generateContent(template, json)
+ //first line represents a variable whose value was successfully retrieved, second line contains a variable
+ // whose value could not be evaluated
+ val expected = "sample-hostname\n\${node0_backup_router_address}"
+ assertEquals(expected, content, "No value variable should use default value")
+ }
+ }
+
+ @Test
+ fun `no value variable should evaluate to default value - blueprint processing test`() {
+ runBlocking {
+ val bluePrintTemplateService = BluePrintTemplateService()
+
+ val templateFile = "templates/default-variable-value-velocity-template.vtl"
+ val jsonFile = "templates/default-variable-value-data.json"
+
+ val content = bluePrintTemplateService.generateContentFromFiles(templateFile,
+ BluePrintConstants.ARTIFACT_VELOCITY_TYPE_NAME, jsonFile, false, mutableMapOf())
+
+ //first line represents a variable whose value was successfully retrieved, second line contains a variable
+ // whose value could not be evaluated
+ val expected = "sample-hostname\n\${node0_backup_router_address}"
+ assertEquals(expected, content, "No value variable should use default value")
+ }
+
+ }
+
}
diff --git a/ms/controllerblueprints/modules/blueprint-core/src/test/resources/templates/default-variable-value-data.json b/ms/controllerblueprints/modules/blueprint-core/src/test/resources/templates/default-variable-value-data.json
new file mode 100755
index 000000000..940ca8d73
--- /dev/null
+++ b/ms/controllerblueprints/modules/blueprint-core/src/test/resources/templates/default-variable-value-data.json
@@ -0,0 +1,3 @@
+{
+ "node0_hostname": "sample-hostname"
+}
diff --git a/ms/controllerblueprints/modules/blueprint-core/src/test/resources/templates/default-variable-value-velocity-template.vtl b/ms/controllerblueprints/modules/blueprint-core/src/test/resources/templates/default-variable-value-velocity-template.vtl
new file mode 100755
index 000000000..ce2458e2e
--- /dev/null
+++ b/ms/controllerblueprints/modules/blueprint-core/src/test/resources/templates/default-variable-value-velocity-template.vtl
@@ -0,0 +1,2 @@
+$node0_hostname
+${node0_backup_router_address} \ No newline at end of file