summaryrefslogtreecommitdiffstats
path: root/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment
diff options
context:
space:
mode:
Diffstat (limited to 'docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment')
-rwxr-xr-xdocs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius.cbabin0 -> 10020 bytes
-rwxr-xr-xdocs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Definitions/freeradius.json224
-rwxr-xr-xdocs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Plans/CONFIG_ConfigDeploy.xml27
-rwxr-xr-xdocs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Scripts/kotlin/kotlin.kt82
-rwxr-xr-xdocs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Scripts/python/ConfigDeploy.py39
-rwxr-xr-xdocs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/TOSCA-Metadata/TOSCA.meta6
-rwxr-xr-xdocs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/radius-mapping.json613
-rwxr-xr-xdocs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/radius-template.vtl211
-rwxr-xr-xdocs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/userconfig-mapping.json112
-rwxr-xr-xdocs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/userconfig-template.vtl1
-rwxr-xr-xdocs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/vnf-mapping.json375
-rwxr-xr-xdocs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/vnf-template.vtl166
-rwxr-xr-xdocs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius.zipbin0 -> 2280 bytes
-rwxr-xr-xdocs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/MANIFEST.json17
-rwxr-xr-xdocs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/radius.env17
-rwxr-xr-xdocs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/radius.yaml163
16 files changed, 2053 insertions, 0 deletions
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius.cba b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius.cba
new file mode 100755
index 000000000..37a74ddf0
--- /dev/null
+++ b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius.cba
Binary files differ
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Definitions/freeradius.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Definitions/freeradius.json
new file mode 100755
index 000000000..76d8e74cd
--- /dev/null
+++ b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Definitions/freeradius.json
@@ -0,0 +1,224 @@
+{
+ "tosca_definitions_version": "controller_blueprint_1_0_0",
+ "metadata": {
+ "template_author": "Abdelmuhaimen Seaudi",
+ "author-email": "abdelmuhaimen.seaudi@orange.com",
+ "user-groups": "ADMIN, OPERATION",
+ "template_name": "freeradius",
+ "template_version": "1.0.0",
+ "template_tags": "test, freeradius, freeradius_cds"
+ },
+ "imports": [{
+ "file": "Definitions/data_types.json"
+ },
+ {
+ "file": "Definitions/relationship_types.json"
+ },
+ {
+ "file": "Definitions/artifact_types.json"
+ },
+ {
+ "file": "Definitions/node_types.json"
+ },
+ {
+ "file": "Definitions/policy_types.json"
+ }],
+ "dsl_definitions": {
+ "ipam-1": {
+ "type": "token-auth",
+ "url": "http://netbox-nginx:8080",
+ "token": "Token 0123456789abcdef0123456789abcdef01234567"
+ },
+ "config-deploy-properties": {
+ "resolution-key": {
+ "get_input": "resolution-key"
+ },
+ "freeradius_ip": {
+ "get_input": "freeradius_ip"
+ }
+ },
+ "dynamic-db-source": {
+ "type": "maria-db",
+ "url": "jdbc:mysql://mariadb-galera:3306/sdnctl",
+ "username": "root",
+ "password": "secretpassword"
+ }
+ },
+ "topology_template": {
+ "workflows": {
+ "resource-assignment": {
+ "steps": {
+ "resource-assignment": {
+ "description": "Resource Assign Workflow",
+ "target": "resource-assignment"
+ }
+ },
+ "inputs": {
+ "template-prefix": {
+ "required": true,
+ "type": "list",
+ "entry_schema": {
+ "type": "string"
+ }
+ },
+ "resource-assignment-properties": {
+ "description": "Dynamic PropertyDefinition for workflow(resource-assignment).",
+ "required": true,
+ "type": "dt-resource-assignment-properties"
+ }
+ },
+ "outputs": {
+ "meshed-template": {
+ "type": "json",
+ "value": {
+ "get_attribute": ["resource-assignment",
+ "assignment-params"]
+ }
+ }
+ }
+ },
+ "config-assign": {
+ "steps": {
+ "config-assign": {
+ "description": "Config Assign Workflow",
+ "target": "config-assign",
+ "activities": [{
+ "call_operation": ""
+ }]
+ }
+ },
+ "inputs": {
+ "resolution-key": {
+ "required": true,
+ "type": "string"
+ },
+ "config-assign-properties": {
+ "description": "Dynamic PropertyDefinition for workflow(config-assign).",
+ "required": true,
+ "type": "dt-config-assign-properties"
+ }
+ },
+ "outputs": {
+ "dry-run": {
+ "type": "json",
+ "value": {
+ "get_attribute": ["config-assign",
+ "assignment-params"]
+ }
+ }
+ }
+ },
+ "config-deploy": {
+ "steps": {
+ "config-deploy": {
+ "description": "Resource Assign and Python Netconf Activation Workflow",
+ "target": "config-deploy-process",
+ "activities": [{
+ "call_operation": "ComponentScriptExecutor.process"
+ }]
+ }
+ },
+ "inputs": {
+ "resolution-key": {
+ "required": false,
+ "type": "string"
+ },
+ "service-instance-id": {
+ "required": false,
+ "type": "string"
+ },
+ "freeradius_ip": {
+ "required": false,
+ "type": "string"
+ },
+ "config-deploy-properties": {
+ "description": "Dynamic PropertyDefinition for workflow(config-deploy).",
+ "required": true,
+ "type": "dt-config-deploy-properties"
+ }
+ }
+ }
+ },
+ "node_templates": {
+ "resource-assignment": {
+ "type": "component-resource-resolution",
+ "interfaces": {
+ "ResourceResolutionComponent": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "artifact-prefix-names": {
+ "get_input": "template-prefix"
+ }
+ }
+ }
+ }
+ }
+ },
+ "artifacts": {
+ "vnf-template": {
+ "type": "artifact-template-velocity",
+ "file": "Templates/vnf-template.vtl"
+ },
+ "vnf-mapping": {
+ "type": "artifact-mapping-resource",
+ "file": "Templates/vnf-mapping.json"
+ },
+ "radius-template": {
+ "type": "artifact-template-velocity",
+ "file": "Templates/radius-template.vtl"
+ },
+ "radius-mapping": {
+ "type": "artifact-mapping-resource",
+ "file": "Templates/radius-mapping.json"
+ }
+ }
+ },
+ "config-assign": {
+ "type": "component-resource-resolution",
+ "interfaces": {
+ "ResourceResolutionComponent": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "resolution-key": {
+ "get_input": "resolution-key"
+ },
+ "store-result": true,
+ "artifact-prefix-names": ["userconfig"]
+ }
+ }
+ }
+ }
+ },
+ "artifacts": {
+ "userconfig-template": {
+ "type": "artifact-template-velocity",
+ "file": "Templates/userconfig-template.vtl"
+ },
+ "userconfig-mapping": {
+ "type": "artifact-mapping-resource",
+ "file": "Templates/userconfig-mapping.json"
+ }
+ }
+ },
+ "config-deploy-process": {
+ "type": "component-script-executor",
+ "interfaces": {
+ "ComponentScriptExecutor": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "script-type": "kotlin",
+ "script-class-reference": "org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts.SampleScriptComponent",
+ "instance-dependencies": [],
+ "dynamic-properties": "*config-deploy-properties"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Plans/CONFIG_ConfigDeploy.xml b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Plans/CONFIG_ConfigDeploy.xml
new file mode 100755
index 000000000..92fb2aa48
--- /dev/null
+++ b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Plans/CONFIG_ConfigDeploy.xml
@@ -0,0 +1,27 @@
+<service-logic
+ xmlns='http://www.onap.org/sdnc/svclogic'
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+ xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='CONFIG' version='1.0.0'>
+ <method rpc='ConfigDeploy' mode='sync'>
+ <block atomic="true">
+ <execute plugin="nf-account-collection" method="process">
+ <outcome value='failure'>
+ <return status="failure">
+ </return>
+ </outcome>
+ <outcome value='success'>
+ <execute plugin="execute" method="process">
+ <outcome value='failure'>
+ <return status="failure">
+ </return>
+ </outcome>
+ <outcome value='success'>
+ <return status='success'>
+ </return>
+ </outcome>
+ </execute>
+ </outcome>
+ </execute>
+ </block>
+ </method>
+</service-logic> \ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Scripts/kotlin/kotlin.kt b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Scripts/kotlin/kotlin.kt
new file mode 100755
index 000000000..e0d36ca17
--- /dev/null
+++ b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Scripts/kotlin/kotlin.kt
@@ -0,0 +1,82 @@
+package org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts
+
+import com.fasterxml.jackson.databind.node.ObjectNode
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractComponentFunction
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractScriptComponentFunction
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.ComponentFunctionScriptingService
+
+import java.io.ByteArrayInputStream
+import java.io.IOException
+import java.io.InputStream
+import org.apache.sshd.client.SshClient
+import org.apache.sshd.client.channel.ClientChannel
+import org.apache.sshd.client.future.AuthFuture
+import org.apache.sshd.client.future.ConnectFuture
+import org.apache.sshd.client.session.ClientSession
+import org.apache.sshd.common.future.SshFutureListener
+import org.apache.sshd.common.util.io.NoCloseInputStream
+import org.apache.sshd.common.util.io.NoCloseOutputStream
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.storedContentFromResolvedArtifactNB
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
+import org.onap.ccsdk.cds.controllerblueprints.core.asListOfString
+import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
+import org.slf4j.LoggerFactory
+import java.io.ByteArrayOutputStream
+import java.util.*
+
+open class SampleScriptComponent : AbstractScriptComponentFunction() {
+
+ private val log = LoggerFactory.getLogger(SampleScriptComponent::class.java)!!
+
+ override suspend fun processNB(executionRequest: ExecutionServiceInput) {
+ log.info("Hello Kotlin!")
+ val resolution_key = getDynamicProperties("resolution-key").asText()
+ log.info("resolution_key: $resolution_key")
+ val payload = storedContentFromResolvedArtifactNB(resolution_key, "userconfig")
+ val payloadObject = JacksonUtils.jsonNode(payload) as ObjectNode
+ val freeradius_ip: String = payloadObject.get("freeradius_ip").asText()
+ log.info("freeradius_ip: $freeradius_ip")
+ val user_config: String = payloadObject.get("user_config").asText()
+ log.info("user_config: $user_config")
+ log.info("Waiting 2 minutes for VM to initialize")
+ Thread.sleep(120000)
+ val client = SshClient.setUpDefaultClient()
+ client.start()
+ log.info("SSH Client Service started successfully")
+ val session = client.connect("cloud", freeradius_ip, 22).verify(3000).session
+ session.addPasswordIdentity("password")
+ log.info("SSH Client authenticating...")
+ val authFuture = session.auth().verify(3000)
+ log.info("SSH client session($session) created")
+ log.info("SSH Authenticated: $authFuture.isSuccess()")
+ val command="echo '$user_config' | sudo tee -a /etc/freeradius/users"
+ log.info("Executing host($session) command($command)")
+ val channel = session.createExecChannel(command)
+ val outputStream = ByteArrayOutputStream()
+ channel!!.out = outputStream
+ channel!!.err = outputStream
+ channel!!.open().await()
+ //val waitMask = channel!!.waitFor(Collections.unmodifiableSet(EnumSet.of(ClientChannelEvent.CLOSED)), 3000)
+ //if (waitMask.contains(ClientChannelEvent.TIMEOUT)) {
+ // throw BluePrintProcessorException("Failed to retrieve command result in time: $command")
+ //}
+ Thread.sleep(3000)
+ val exitStatus = channel!!.exitStatus
+ //ClientChannel. .validateCommandExitStatusCode(command, exitStatus!!)
+ if (channel != null) {
+ channel!!.close()
+ }
+ if (client.isOpen) {
+ client.stop()
+ }
+ log.info(outputStream.toString())
+ log.info("SSH Client Service stopped successfully")
+
+
+ }
+
+
+ override suspend fun recoverNB(runtimeException: RuntimeException, executionRequest: ExecutionServiceInput) {
+ }
+} \ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Scripts/python/ConfigDeploy.py b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Scripts/python/ConfigDeploy.py
new file mode 100755
index 000000000..2b88e8271
--- /dev/null
+++ b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Scripts/python/ConfigDeploy.py
@@ -0,0 +1,39 @@
+# Copyright (c) 2019 Bell Canada.
+#
+# 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.
+
+import netconf_constant
+from common import ResolutionHelper
+from time import sleep
+from netconfclient import NetconfClient
+from org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor import \
+ NetconfComponentFunction
+
+
+class ConfigDeploy(NetconfComponentFunction):
+
+ def process(self, execution_request):
+ log = globals()[netconf_constant.SERVICE_LOG]
+ print(globals())
+ rr = ResolutionHelper(self)
+
+ # Get meshed template from DB
+ resolution_key = self.getDynamicProperties("resolution-key").asText()
+ payload = rr.retrieve_resolved_template_from_database(resolution_key, "userconfig")
+ print(payload)
+
+
+ def recover(self, runtime_exception, execution_request):
+ log.error("Exception in the script {}", runtime_exception)
+ print self.addError(runtime_exception.cause.message)
+ return None \ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/TOSCA-Metadata/TOSCA.meta b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/TOSCA-Metadata/TOSCA.meta
new file mode 100755
index 000000000..bc98c171a
--- /dev/null
+++ b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/TOSCA-Metadata/TOSCA.meta
@@ -0,0 +1,6 @@
+TOSCA-Meta-File-Version: 1.0.0
+CSAR-Version: 1.0
+Created-By: SEAUDI, Abdelmuhaimen <abdelmuhaimen.seaudi@orange.com>
+Entry-Definitions: Definitions/freeradius.json
+Template-Tags: freeradius_CDS
+Content-Type: application/vnd.oasis.bpmn \ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/radius-mapping.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/radius-mapping.json
new file mode 100755
index 000000000..271167d77
--- /dev/null
+++ b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/radius-mapping.json
@@ -0,0 +1,613 @@
+[
+ {
+ "name": "radius_test_user",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "radius_test_user",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "radius_test_password",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "radius_test_password",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "freeradius_ip",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "freeradius_ip",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "cloud_env",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": "openstack"
+ },
+ "input-param": false,
+ "dictionary-name": "cloud_env",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vf_module_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": "${vf_module_name}"
+ },
+ "input-param": false,
+ "dictionary-name": "vf_module_name",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "aic-cloud-region",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "aic-cloud-region",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "keypair",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": "vlb_key"
+ },
+ "input-param": false,
+ "dictionary-name": "keypair",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "nfc-naming-code",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "nfc-naming-code",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vfccustomizationuuid"
+ ],
+ "version": 0
+ },
+ {
+ "name": "onap_private_net_cidr",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "onap_private_net_cidr",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "onap_private_net_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "onap_private_net_id",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "onap_private_subnet_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "onap_private_subnet_id",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "public_net_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "public_net_id",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "pub_key",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "pub_key",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "key_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "key_name",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "sec_group",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "sec_group",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "service-instance-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "service-instance-id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vf-module-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vf-module-label",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-label",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vf-module-model-customization-uuid"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vf-module-model-customization-uuid",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-model-customization-uuid",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vf-module-type",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-module-type",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vf-module-model-customization-uuid"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vf-naming-policy",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vf-naming-policy",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vfccustomizationuuid",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vfccustomizationuuid",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vf-module-model-customization-uuid"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vnf_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnf_name",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vm-type",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vm-type",
+ "dictionary-source": "processor-db",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnf-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnf-id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnf-model-customization-uuid",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnf-model-customization-uuid",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnfc-model-invariant-uuid",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnfc-model-invariant-uuid",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vfccustomizationuuid"
+ ],
+ "version": 0
+ },
+ {
+ "name": "vnfc-model-version",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnfc-model-version",
+ "dictionary-source": "processor-db",
+ "dependencies": [
+ "vfccustomizationuuid"
+ ],
+ "version": 0
+ }
+] \ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/radius-template.vtl b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/radius-template.vtl
new file mode 100755
index 000000000..f4c57d4cb
--- /dev/null
+++ b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/radius-template.vtl
@@ -0,0 +1,211 @@
+{
+ "resource-accumulator-resolved-data": [
+ {
+ "param-name": "radius_test_user",
+ "param-value": "${radius_test_user}"
+ },
+ {
+ "param-name": "radius_test_password",
+ "param-value": "${radius_test_password}"
+ },
+ {
+ "param-name": "freeradius_ip",
+ "param-value": "${freeradius_ip}"
+ },
+ {
+ "param-name": "service-instance-id",
+ "param-value": "${service-instance-id}"
+ },
+ {
+ "param-name": "vnf_id",
+ "param-value": "${vnf-id}"
+ },
+ {
+ "param-name": "vnf_name",
+ "param-value": "${vnf_name}"
+ },
+ {
+ "param-name": "vnf_model_customization_uuid",
+ "param-value": "${vnf-model-customization-uuid}"
+ },
+ {
+ "param-name": "vf_module_id",
+ "param-value": "${vf-module-id}"
+ },
+ {
+ "param-name": "vf_module_type",
+ "param-value": "${vf-module-type}"
+ },
+ {
+ "param-name": "vf_module_customization_uuid",
+ "param-value": "${vf-module-model-customization-uuid}"
+ },
+ {
+ "param-name": "vfc_customization_uuid",
+ "param-value": "${vfccustomizationuuid}"
+ },
+ {
+ "param-name": "aic-cloud-region",
+ "param-value": "${aic-cloud-region}"
+ },
+ {
+ "param-name": "vm-type",
+ "param-value": "${vm-type}"
+ },
+ {
+ "param-name": "vnfc-model-customization-uuid",
+ "param-value": "${vfccustomizationuuid}"
+ },
+ {
+ "param-name": "vnfc-model-invariant-uuid",
+ "param-value": "${vnfc-model-invariant-uuid}"
+ },
+ {
+ "param-name": "vnfc-model-version",
+ "param-value": "${vnfc-model-version}"
+ },
+ {
+ "param-name": "nfc-naming-code",
+ "param-value": "${nfc-naming-code}"
+ },
+ {
+ "param-name": "cloud_env",
+ "param-value": "openstack"
+ },
+ {
+ "param-name": "key_name",
+ "param-value": "${key_name}"
+ },
+ {
+ "param-name": "pub_key",
+ "param-value": "${pub_key}"
+ },
+ {
+ "param-name": "public_net_id",
+ "param-value": "${public_net_id}"
+ },
+ {
+ "param-name": "onap_private_net_id",
+ "param-value": "${onap_private_net_id}"
+ },
+ {
+ "param-name": "onap_private_subnet_id",
+ "param-value": "${onap_private_subnet_id}"
+ },
+ {
+ "param-name": "onap_private_net_cidr",
+ "param-value": "${onap_private_net_cidr}"
+ },
+ {
+ "param-name": "sec_group",
+ "param-value": "${sec_group}"
+ }
+ ],
+ "capability-data": [
+ {
+ "capability-name": "generate-name",
+ "key-mapping": [
+ {
+ "payload": [
+ {
+ "param-name": "resource-name",
+ "param-value": "freeRadius_name_0"
+ },
+ {
+ "param-name": "resource-value",
+ "param-value": "${freeRadius_name_0}"
+ },
+ {
+ "param-name": "external-key",
+ "param-value": "${vf-module-id}_freeRadius_name_0"
+ },
+ {
+ "param-name": "policy-instance-name",
+ "param-value": "${vf-naming-policy}"
+ },
+ {
+ "param-name": "naming-type",
+ "param-value": "VNFC"
+ },
+ {
+ "param-name": "VNF_NAME",
+ "param-value": "${vnf_name}"
+ },
+ {
+ "param-name": "NFC_NAMING_CODE",
+ "param-value": "${nfc-naming-code}"
+ }
+ ],
+ "output-key-mapping": [
+ {
+ "resource-name": "freeRadius_name_0",
+ "resource-value": "${freeRadius_name_0}"
+ }
+ ]
+ },
+ {
+ "payload": [
+ {
+ "param-name": "resource-name",
+ "param-value": "vf-module-name"
+ },
+ {
+ "param-name": "resource-value",
+ "param-value": "${vf-module-name}"
+ },
+ {
+ "param-name": "external-key",
+ "param-value": "${vf-module-id}_vf-module-name"
+ },
+ {
+ "param-name": "policy-instance-name",
+ "param-value": "${vf-naming-policy}"
+ },
+ {
+ "param-name": "naming-type",
+ "param-value": "VF-MODULE"
+ },
+ {
+ "param-name": "VNF_NAME",
+ "param-value": "${vnf_name}"
+ },
+ {
+ "param-name": "VF_MODULE_LABEL",
+ "param-value": "${vf-module-label}"
+ },
+ {
+ "param-name": "VF_MODULE_TYPE",
+ "param-value": "${vf-module-type}"
+ }
+ ],
+ "output-key-mapping": [
+ {
+ "resource-name": "vf-module-name",
+ "resource-value": "${vf-module-name}"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "capability-name": "aai-vf-module-put",
+ "key-mapping": [
+ {
+ "payload": [
+ {
+ "param-name": "vf-module",
+ "param-value": "vf-module"
+ }
+ ],
+ "output-key-mapping": [
+ {
+ "resource-name": "aai-vf-module-put",
+ "resource-value": "${status}"
+ }
+ ]
+ }
+ ]
+ }
+
+ ]
+} \ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/userconfig-mapping.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/userconfig-mapping.json
new file mode 100755
index 000000000..7fb2978af
--- /dev/null
+++ b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/userconfig-mapping.json
@@ -0,0 +1,112 @@
+[
+ {
+ "name": "service-instance-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "service-instance-id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnf-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "vnf-id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+
+ "name": "radius_test_user",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "radius_test_user",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "freeradius_ip",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "freeradius_ip",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ },
+ {
+ "name": "radius_test_password",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "radius_test_password",
+ "dictionary-source": "sdnc",
+ "dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ],
+ "version": 0
+ }
+] \ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/userconfig-template.vtl b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/userconfig-template.vtl
new file mode 100755
index 000000000..6a23c3f83
--- /dev/null
+++ b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/userconfig-template.vtl
@@ -0,0 +1 @@
+{"freeradius_ip":"$freeradius_ip","user_config":"$radius_test_user Cleartext-Password := \"$radius_test_password\""} \ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/vnf-mapping.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/vnf-mapping.json
new file mode 100755
index 000000000..55f0a698e
--- /dev/null
+++ b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/vnf-mapping.json
@@ -0,0 +1,375 @@
+[
+ {
+ "name": "radius_test_user",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "radius_test_user",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "radius_test_password",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "radius_test_password",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "cloud_env",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": "openstack"
+ },
+ "input-param": false,
+ "dictionary-name": "cloud_env",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "flavor_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "flavor_name",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "image_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "image_name",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "pub_key",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCs84Cy8+qi/jvucay0BwFtOq3ian0ulTXFGxkZcZCR0N48j88pbHJaEqb9e25MAsrfH+7Etb9Kd5nbBThEL/i0AyHXnDsc80Oq0sqlLcfLo3SGSurkrNoRofHboJ5Hn+N9SlWN5FCQGbTx1w3rjqR4LasAI6XxH9xpXSFyyge6ysVXH0cYaZ8sg98nFZa1fPJR9L8COjZvF+EYudub2RC5HVyV/sx7bliNFo9JwQh6du1abG4G7ZDjTIcYwYp21iq52UzWU28RVcAyY6AQZJu2lHLdsr8fPvyeWZpC5EqGsxI1G609m9G/dURRKwYfez/f2ATzpn5QjEX7LrLWBM8r Generated-by-Nova"
+ },
+ "input-param": false,
+ "dictionary-name": "pub_key",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "onap_private_net_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": ""
+ },
+ "input-param": false,
+ "dictionary-name": "onap_private_net_id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "onap_private_subnet_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": ""
+ },
+ "input-param": false,
+ "dictionary-name": "onap_private_subnet_id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "public_net_id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": ""
+ },
+ "input-param": false,
+ "dictionary-name": "public_net_id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "onap_private_net_cidr",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": ""
+ },
+ "input-param": false,
+ "dictionary-name": "onap_private_net_cidr",
+ "dictionary-source": "processor-db",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "sec_group",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "input-param": false,
+ "dictionary-name": "sec_group",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "service-instance-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": ""
+ },
+ "input-param": false,
+ "dictionary-name": "service-instance-id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnf-id",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": ""
+ },
+ "input-param": false,
+ "dictionary-name": "vnf-id",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnf-model-customization-uuid",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": ""
+ },
+ "input-param": false,
+ "dictionary-name": "vnf-model-customization-uuid",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vf-naming-policy",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": "SDNC_Policy.Config_MS_ONAP_VNF_NAMING_TIMESTAMP"
+ },
+ "input-param": false,
+ "dictionary-name": "vf-naming-policy",
+ "dictionary-source": "default",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "vnf_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": "${vnf_name}"
+ },
+ "input-param": false,
+ "dictionary-name": "vnf_name",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "aic-cloud-region",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": ""
+ },
+ "input-param": false,
+ "dictionary-name": "aic-cloud-region",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ },
+ {
+ "name": "key_name",
+ "property": {
+ "description": "",
+ "required": false,
+ "type": "string",
+ "status": "",
+ "constraints": [
+ {}
+ ],
+ "entry_schema": {
+ "type": ""
+ },
+ "default": "olc-key"
+ },
+ "input-param": false,
+ "dictionary-name": "key_name",
+ "dictionary-source": "input",
+ "dependencies": [],
+ "version": 0
+ }
+] \ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/vnf-template.vtl b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/vnf-template.vtl
new file mode 100755
index 000000000..8d1cf3b09
--- /dev/null
+++ b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/vnf-template.vtl
@@ -0,0 +1,166 @@
+{
+ "resource-accumulator-resolved-data": [
+ {
+ "param-name": "radius_test_user",
+ "param-value": "${radius_test_user}"
+ },
+ {
+ "param-name": "radius_test_password",
+ "param-value": "${radius_test_password}"
+ },
+ {
+ "param-name": "service-instance-id",
+ "param-value": "${service-instance-id}"
+ },
+ {
+ "param-name": "vnf_id",
+ "param-value": "${vnf-id}"
+ },
+ {
+ "param-name": "vf-naming-policy",
+ "param-value": "${vf-naming-policy}"
+ },
+ {
+ "param-name": "vnf-model-customization-uuid",
+ "param-value": "${vnf-model-customization-uuid}"
+ },
+ {
+ "param-name": "aic-cloud-region",
+ "param-value": "${aic-cloud-region}"
+ },
+ {
+ "param-name": "onap_private_net_id",
+ "param-value": "${onap_private_net_id}"
+ },
+ {
+ "param-name": "image_name",
+ "param-value": "${image_name}"
+ },
+ {
+ "param-name": "onap_private_subnet_id",
+ "param-value": "${onap_private_subnet_id}"
+ },
+ {
+ "param-name": "vfccustomizationuuid",
+ "param-value": "${vfccustomizationuuid}"
+ },
+ {
+ "param-name": "vf-module-model-customization-uuid",
+ "param-value": "${vf-module-model-customization-uuid}"
+ },
+ {
+ "param-name": "cloud_env",
+ "param-value": "${cloud_env}"
+ },
+ {
+ "param-name": "flavor_name",
+ "param-value": "${flavor_name}"
+ },
+ {
+ "param-name": "pub_key",
+ "param-value": "${pub_key}"
+ },
+ {
+ "param-name": "sec_group",
+ "param-value": "${sec_group}"
+ },
+ {
+ "param-name": "public_net_id",
+ "param-value": "${public_net_id}"
+ },
+ {
+ "param-name": "onap_private_net_cidr",
+ "param-value": "${onap_private_net_cidr}"
+ },
+ {
+ "param-name": "key_name",
+ "param-value": "${key_name}"
+ }
+ ],
+ "capability-data": [{
+ "capability-name": "generate-name",
+ "key-mapping": [{
+ "payload": [{
+ "param-name": "resource-name",
+ "param-value": "vnf_name"
+ },
+ {
+ "param-name": "resource-value",
+ "param-value": "${vnf_name}"
+ },
+ {
+ "param-name": "external-key",
+ "param-value": "${vnf-id}_vnf_name"
+ },
+ {
+ "param-name": "policy-instance-name",
+ "param-value": "${vf-naming-policy}"
+ },
+ {
+ "param-name": "naming-type",
+ "param-value": "VNF"
+ },
+ {
+ "param-name": "AIC_CLOUD_REGION",
+ "param-value": "${aic-cloud-region}"
+ }],
+ "output-key-mapping": [{
+ "resource-name": "vnf_name",
+ "resource-value": "${vnf_name}"
+ }]
+ }]
+ },
+ {
+ "capability-name": "aai-vnf-put",
+ "key-mapping": [
+ {
+ "payload": [
+ {
+ "param-name": "generic-vnf",
+ "param-value": "generic-vnf"
+ }
+ ],
+ "output-key-mapping": [
+ {
+ "resource-name": "aai-vnf-put",
+ "resource-value": "${status}"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "capability-name": "netbox-ip-assign",
+ "key-mapping": [
+
+
+ {
+ "payload": [
+ {
+ "param-name": "service-instance-id",
+ "param-value": "${service-instance-id}"
+ },
+ {
+ "param-name": "prefix-id",
+ "param-value": "3"
+ },
+ {
+ "param-name": "vnf-id",
+ "param-value": "${vnf-id}"
+ },
+ {
+ "param-name": "external_key",
+ "param-value": "${vnf-id}-freeradius_ip"
+ }
+ ],
+ "output-key-mapping": [
+ {
+ "resource-name": "freeradius_ip",
+ "resource-value": "${freeradius_ip}"
+ }
+ ]
+ },
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius.zip b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius.zip
new file mode 100755
index 000000000..114ef5402
--- /dev/null
+++ b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius.zip
Binary files differ
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/MANIFEST.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/MANIFEST.json
new file mode 100755
index 000000000..5719ac888
--- /dev/null
+++ b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/MANIFEST.json
@@ -0,0 +1,17 @@
+{
+ "name": "radius",
+ "description": "",
+ "data": [
+ {
+ "file": "radius.yaml",
+ "type": "HEAT",
+ "isBase": "true",
+ "data": [
+ {
+ "file": "radius.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/radius.env b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/radius.env
new file mode 100755
index 000000000..bee325592
--- /dev/null
+++ b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/radius.env
@@ -0,0 +1,17 @@
+parameters:
+# Metadata required by ONAP
+ vnf_id: FreeRadius-VNF
+ vf_module_id: FreeRadius-VF-module
+ vnf_name: FreeRadius-VNF-name
+
+# Server parameters, naming required by ONAP
+ image_name: ubuntu-16.04-daily
+ flavor_name: onap.small
+ pub_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDExKK9DuERvBQwdYbHzDw8en8pfg/1vEYHTIW2IS6+yhRH+jKncYVI/PHWjfM/ragWEipSyMHxfqhdlYylxVAYQKm1DTWCC9y3a6TUieFWn802Sb6YbEtXdYZWxlNWwD3Y/7c/zF7V6Oh30ZS3lMoncX9oh9nAM8GQL0m+4vcKMGX5am3S1qPslrcxhEEpOlFb9FX1jSy3aeHLb57aj0wp/g9WwWlDZ31FWensUZG6O0o2QUmMB0QOb2rIcFHlpRzF36i/2wKXT+xJxXEB38UwweJwohLRSo8sLqJvYRYjIxlZK2pgqyZalHq7GZBqfPyaLpXPUwMtE0oHV47zQABx root@qvocrobot-virtual-machine
+ key_name: FreeRadius-key
+ freeRadius_name_0: FreeRadius-VM-name
+ freeradius_ip: 10.0.0.100
+
+# Network parameters, naming required by ONAP
+ onap_private_net_id: admin
+ public_net_id: admin
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/radius.yaml b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/radius.yaml
new file mode 100755
index 000000000..a699ca00e
--- /dev/null
+++ b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/radius.yaml
@@ -0,0 +1,163 @@
+heat_template_version: 2013-05-23
+
+description: Heat template to deploy a FreeRadius
+
+parameters:
+# Metadata required by ONAP
+ vnf_name:
+ type: string
+ label: VM name
+ description: The VM name
+ vnf_id:
+ type: string
+ label: VNF ID
+ description: The VNF ID is provided by ONAP
+ vf_module_id:
+ type: string
+ label: VF module ID
+ description: The VF Module ID is provided by ONAP
+
+# Server parameters, naming required by ONAP
+ image_name:
+ type: string
+ label: Image name or ID
+ description: Image to be used for compute instance
+ flavor_name:
+ type: string
+ label: Flavor
+ description: Type of instance (flavor) to be used
+ pub_key:
+ type: string
+ label: Public key
+ description: Public key to be installed on the compute instance
+ key_name:
+ type: string
+ label: Public key name
+ description: Public key name to be installed on the compute instance
+ freeRadius_name_0:
+ type: string
+ label: VM name
+ description: The VM name
+
+# Network parameters, naming required by ONAP
+ onap_private_net_id:
+ type: string
+ label: management network
+ description: The management network
+ onap_private_subnet_id:
+ type: string
+ label: management network
+ description: The management network
+ public_net_id:
+ type: string
+ label: control plane network
+ description: The control plane network
+ freeradius_ip:
+ type: string
+ label: freeradius vm ip address
+ description: freeradius vm ip address
+
+resources:
+ random-str:
+ type: OS::Heat::RandomString
+ properties:
+ length: 4
+
+ freeRadius_key:
+ type: OS::Nova::KeyPair
+ properties:
+ name: { get_param: key_name }
+ public_key: { get_param: pub_key }
+ save_private_key: false
+
+ freeRadius_oam_security_group:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ description: security group
+ name:
+ str_replace:
+ template: pre_base_rand
+ params:
+ pre: oam_sg_
+ base: { get_param: vnf_name }
+ rand: { get_resource: random-str }
+ rules: [
+ {remote_ip_prefix: 0.0.0.0/0, protocol: tcp, port_range_min: 22, port_range_max: 22},
+ {remote_ip_prefix: 0.0.0.0/0, protocol: icmp}]
+
+ freeRadius_control_plane_security_group:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ description: security group
+ name:
+ str_replace:
+ template: pre_base_rand
+ params:
+ pre: cp_sg_
+ base: { get_param: vnf_name }
+ rand: { get_resource: random-str }
+ rules: [
+ {remote_ip_prefix: 0.0.0.0/0, protocol: tcp, port_range_min: 22, port_range_max: 22},
+ {remote_ip_prefix: 0.0.0.0/0, protocol: icmp}]
+
+ freeRadius_0_oam_port_0:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: pre_base_rand
+ params:
+ pre: oam_port_
+ base: { get_param: vnf_name }
+ rand: { get_resource: random-str }
+ network: { get_param: onap_private_net_id }
+ fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: freeradius_ip }}]
+ security_groups: [{ get_resource: freeRadius_oam_security_group }]
+
+ freeRadius_0_control_plane_port_0:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: pre_base_rand
+ params:
+ pre: cp_port_
+ base: { get_param: vnf_name }
+ rand: { get_resource: random-str }
+ network: { get_param: public_net_id }
+ security_groups: [{ get_resource: freeRadius_control_plane_security_group }]
+
+ freeRadius_VM_settings:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config: |
+ #!/bin/bash
+ apt-get update
+ apt-get install -y freeradius
+ echo -e "password\npassword" | passwd cloud
+ sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
+ service ssh restart
+
+
+ freeRadius_server_0:
+ type: OS::Nova::Server
+ properties:
+ image: { get_param: image_name }
+ flavor: { get_param: flavor_name }
+ name: { get_param: freeRadius_name_0 }
+ metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }, vnf_name: { get_param: vnf_name }}
+ key_name: { get_resource: freeRadius_key }
+ networks:
+ - port: { get_resource: freeRadius_0_oam_port_0 }
+ - port: { get_resource: freeRadius_0_control_plane_port_0 }
+ user_data_format: RAW
+ user_data: |
+ #!/bin/bash
+ echo "!!! Install FreeRadius"
+ apt-get update
+ apt-get install -y freeradius
+ echo "!!! Setup password authentication for user cloud"
+ echo -e "password\npassword" | passwd cloud
+ sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
+ service ssh restart
+ echo "!!! Done"