From 86e7aa2e9dc7d69b6f7154618a214217f92504ac Mon Sep 17 00:00:00 2001 From: Rudrangi Anupriya Date: Wed, 30 Mar 2022 16:14:10 +0530 Subject: CCSDK-3472 Maven plugin support of velocity for CBA package creation in IDE Change-Id: I873be858c44b3ca36f4e292e44a483a2af6e83f1 Signed-off-by: Rudrangi Anupriya Issue-ID: CCSDK-3472 --- .../Templates/base-config-data-velocity.json | 36 +++++++++++ .../Templates/base-config-velocity-template.vtl | 61 ++++++++++++++++++ .../Templates/default-variable-value-data.json | 3 + .../default-variable-value-velocity-template.vtl | 2 + .../Tests/default-variable-value-data.txt | 2 + .../core/service/BlueprintVelocityTemplateTest.kt | 72 ++++++++++++++++++++++ 6 files changed, 176 insertions(+) create mode 100644 components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Templates/base-config-data-velocity.json create mode 100644 components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Templates/base-config-velocity-template.vtl create mode 100644 components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Templates/default-variable-value-data.json create mode 100644 components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Templates/default-variable-value-velocity-template.vtl create mode 100644 components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Tests/default-variable-value-data.txt create mode 100644 components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Tests/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BlueprintVelocityTemplateTest.kt (limited to 'components') diff --git a/components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Templates/base-config-data-velocity.json b/components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Templates/base-config-data-velocity.json new file mode 100644 index 000000000..2acc6fcdd --- /dev/null +++ b/components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Templates/base-config-data-velocity.json @@ -0,0 +1,36 @@ +{ + "node0_hostname": "sdnc-host", + "node0_backup_router_address": "2001:1890:1253::192:168:100:1", + "servers": [ + "Server1", + "Server2", + "Server3" + ], + "tacplus-servers": [ + { + "tacplus-server-name": "tacplus-server-name1", + "tacplus-server-source-address": "enc-dsdsasa1" + }, + { + "tacplus-server-name": "tacplus-server-name2", + "tacplus-server-source-address": "enc-dsdsasa2" + } + ], + "classes": [ + { + "name": "superuser-class", + "idle-timeout": 5, + "permissions": "all" + }, + { + "name": "tacacs-adv-class", + "idle-timeout": 5 + }, + { + "name": "tacacs-base-class", + "idle-timeout": 5 + } + ], + "system-password": "teamops-system-password", + "root-password": "teamops-root-password" +} diff --git a/components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Templates/base-config-velocity-template.vtl b/components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Templates/base-config-velocity-template.vtl new file mode 100644 index 000000000..f7b1269b3 --- /dev/null +++ b/components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Templates/base-config-velocity-template.vtl @@ -0,0 +1,61 @@ + + 15.1X49-D50.3 + + node0 + + #foreach($server in ${servers}) + $StringUtils.upperCase("$server") + #end + + + ${node0_hostname} + +
${node0_backup_router_address}
+ $node0_backup_router_address +
+ #foreach($tacplus-server in ${tacplus-servers}) + + $tacplus-server.tacplus-server-name + $tacplus-server.tacplus-server-source-address + + #end + + ONAP information assets + #foreach($class in ${classes}) + + $class.name + $class.idle-timeout + #if ($class.permissions) + $class.permissions + #end + + #end + + readonly + Read Only Account Access + 1001 + tacacs-base-class + + + readwrite + Read - Write Account Access + 1002 + tacacs-adv-class + + ${system-password} + + + + readwrite + Emergency Access Only + 1000 + superuser-class + + ${root-password} + + + +
+
+
\ No newline at end of file diff --git a/components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Templates/default-variable-value-data.json b/components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Templates/default-variable-value-data.json new file mode 100644 index 000000000..46e793a0b --- /dev/null +++ b/components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Templates/default-variable-value-data.json @@ -0,0 +1,3 @@ +{ + "node0_hostname": "sample-hostname" +} diff --git a/components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Templates/default-variable-value-velocity-template.vtl b/components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Templates/default-variable-value-velocity-template.vtl new file mode 100644 index 000000000..ce2458e2e --- /dev/null +++ b/components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Templates/default-variable-value-velocity-template.vtl @@ -0,0 +1,2 @@ +$node0_hostname +${node0_backup_router_address} \ No newline at end of file diff --git a/components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Tests/default-variable-value-data.txt b/components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Tests/default-variable-value-data.txt new file mode 100644 index 000000000..f2359e863 --- /dev/null +++ b/components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Tests/default-variable-value-data.txt @@ -0,0 +1,2 @@ +sample-hostname +${node0_backup_router_address} \ No newline at end of file diff --git a/components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Tests/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BlueprintVelocityTemplateTest.kt b/components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Tests/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BlueprintVelocityTemplateTest.kt new file mode 100644 index 000000000..56d23a210 --- /dev/null +++ b/components/model-catalog/blueprint-model/archetype-blueprint/src/main/resources/archetype-resources/Tests/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BlueprintVelocityTemplateTest.kt @@ -0,0 +1,72 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - CCSDK + * ================================================================================ + * Copyright (C) 2022 Tech Mahindra + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.ccsdk.cds.controllerblueprints.core.service + +import kotlinx.coroutines.runBlocking +import org.junit.Test +import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintVelocityTemplateService +import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils +import kotlin.test.BeforeTest +import java.io.File +import java.util.* +import kotlin.test.assertEquals +import kotlin.test.assertNotNull + + +class BlueprintVelocityTemplateTest { + private val velocityHome = System.getenv("velocity_path") + + + @BeforeTest + fun setup() { + val properties = Properties() + properties["file.resource.loader.path"] = velocityHome + } + @Test + fun testVelocityGeneratedContent() { + runBlocking { + val template = JacksonUtils.getContent("Templates/base-config-velocity-template.vtl") + val json = JacksonUtils.getContent("Templates/base-config-data-velocity.json") + val content = BluePrintVelocityTemplateService.generateContent(template, json) + 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.getContent("Templates/default-variable-value-velocity-template.vtl") + val json = JacksonUtils.getContent("Templates/default-variable-value-data.json") + val content = BluePrintVelocityTemplateService.generateContent(template, json) + val expected = "sample-hostname\n\${node0_backup_router_address}" + assertEquals(expected, content, "No value variable should use default value") + } + } + @Test + fun `Expected value variable from file`() { + runBlocking { + val template = JacksonUtils.getContent("Templates/default-variable-value-velocity-template.vtl") + val json = JacksonUtils.getContent("Templates/default-variable-value-data.json") + val content = BluePrintVelocityTemplateService.generateContent(template, json) + val expected = File("Tests/kotlin/default-variable-value-data.txt").readText() + assertEquals(expected, content, "expected value variable from file") + } + + } +} \ No newline at end of file -- cgit 1.2.3-korg