SO-3835 Modify-Config flow of slice (Day-2) -snssai not updated in config map of... 75/129975/4
authorRudrangi Anupriya <ra00745022@techmahindra.com>
Mon, 18 Jul 2022 16:33:14 +0000 (22:03 +0530)
committerKAPIL SINGAL <ks220y@att.com>
Mon, 22 Aug 2022 19:29:41 +0000 (19:29 +0000)
Issue-ID: SO-3835

Change-Id: I7578b3292b625e0773ee67a0b6db60c8e192fe1a
Signed-off-by: Rudrangi Anupriya <ra00745022@techmahindra.com>
33 files changed:
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Scripts/kotlin/KotlinDayOneConfig.kt
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Scripts/kotlin/KotlinK8sProfileUpload.kt
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Scripts/kotlin/KotlinK8sUpdateConfig.kt
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/amf-mapping.json [deleted file]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/amf-template.vtl [deleted file]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/base_template-mapping.json [deleted file]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/base_template-template.vtl [deleted file]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/baseconfig-mapping.json
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/baseconfig-template.vtl
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/baseconfigput-mapping.json
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/baseconfigput-template.vtl
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/config-deploy-aai-mapping.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/config-deploy-aai-template.vtl [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/config-deploy-sdnc-mapping.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/config-deploy-sdnc-template.vtl [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/helm_amf-mapping.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/helm_amf-template.vtl [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/helm_smf-mapping.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/helm_smf-template.vtl [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/helm_upf-mapping.json [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/helm_upf-template.vtl [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/k8s-profiles/helm_amf-config-template.tar.gz [moved from components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/k8s-profiles/amf-config-template.tar.gz with 100% similarity]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/k8s-profiles/helm_amf-profile.tar.gz [moved from components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/k8s-profiles/template-profile.tar.gz with 100% similarity]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/k8s-profiles/helm_smf-config-template.tar.gz [moved from components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/k8s-profiles/smf-config-template.tar.gz with 100% similarity]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/k8s-profiles/helm_smf-profile.tar.gz [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/k8s-profiles/helm_upf-config-template.tar.gz [moved from components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/k8s-profiles/upf-config-template.tar.gz with 100% similarity]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/k8s-profiles/helm_upf-profile.tar.gz [new file with mode: 0644]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/smf-mapping.json [deleted file]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/smf-template.vtl [deleted file]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/upf-mapping.json [deleted file]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/upf-template.vtl [deleted file]
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/vnf-mapping.json
components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/vnf-template.vtl

index 9e2b463..1e13ec0 100644 (file)
@@ -1,6 +1,6 @@
 /*
 * Copyright © 2019 TechMahindra
-* Author: Malinconico Aniello Paolo, Vamshi Namilikonda, Thamlur Raju
+*
 * 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
@@ -20,6 +20,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore
 import com.fasterxml.jackson.annotation.JsonProperty
 import com.fasterxml.jackson.databind.ObjectMapper
 import com.fasterxml.jackson.databind.node.ObjectNode
+import com.fasterxml.jackson.databind.JsonNode
+import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
 import java.io.File
 import java.nio.file.Path
 import java.nio.file.Paths
@@ -36,8 +38,13 @@ import org.onap.ccsdk.cds.blueprintsprocessor.rest.BasicAuthRestClientProperties
 import org.onap.ccsdk.cds.blueprintsprocessor.rest.RestClientProperties
 import org.onap.ccsdk.cds.blueprintsprocessor.rest.service.BasicAuthRestClientService
 import org.onap.ccsdk.cds.blueprintsprocessor.rest.service.BlueprintWebClientService
+import org.onap.ccsdk.cds.blueprintsprocessor.core.BluePrintPropertiesService
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.k8s.definition.K8sPluginDefinitionApi
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.k8s.K8sConnectionPluginConfiguration
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.k8s.definition.K8sDefinitionRestClient
 import org.onap.ccsdk.cds.blueprintsprocessor.rest.service.RestLoggerService
 import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractScriptComponentFunction
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.contentFromResolvedArtifactNB
 import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
 import org.onap.ccsdk.cds.controllerblueprints.core.utils.ArchiveType
 import org.onap.ccsdk.cds.controllerblueprints.core.utils.BluePrintArchiveUtils
@@ -51,6 +58,7 @@ import org.springframework.web.client.RestTemplate
 import org.yaml.snakeyaml.Yaml
 import java.util.ArrayList
 import java.io.IOException
+
 import java.util.Base64
 import java.nio.charset.Charset
 import java.nio.file.Files
@@ -80,137 +88,137 @@ open class DayOneConfig : AbstractScriptComponentFunction() {
         val aaiApiUsername = getDynamicProperties("aai-access").get("username").asText()
         val aaiApiPassword = getDynamicProperties("aai-access").get("password").asText()
 
-        log.info("AAI params $aaiApiUrl")
 
-        val resolution_key = getDynamicProperties("resolution-key").asText()
 
-        val payload = storedContentFromResolvedArtifactNB(resolution_key, prefix)
+        log.info("AAI params $aaiApiUrl")
 
-        val payloadObject = JacksonUtils.jsonNode(payload) as ObjectNode
 
-        val serviceInstanceID: String = getResolvedParameter(payloadObject, "service-instance-id")
-        val vnfID: String = getResolvedParameter(payloadObject, "vnf-id")
 
-        log.info("Get serviceInstanceID $serviceInstanceID")
-        log.info("Get vnfID $vnfID")
 
-        val vnfUrl = aaiApiUrl + "/aai/v19/network/generic-vnfs/generic-vnf/" + vnfID + "/vf-modules";
+        val resolution_key = getDynamicProperties("resolution-key").asText()
 
-        val mapOfHeaders = hashMapOf<String, String>()
-        mapOfHeaders.put("Accept", "application/json")
-        mapOfHeaders.put("Content-Type", "application/json")
-        mapOfHeaders.put("x-FromAppId", "SO")
-        mapOfHeaders.put("X-TransactionId", "get_aai_subscr")
-        val basicAuthRestClientProperties: BasicAuthRestClientProperties = BasicAuthRestClientProperties()
-        basicAuthRestClientProperties.username = aaiApiUsername
-        basicAuthRestClientProperties.password = aaiApiPassword
-        basicAuthRestClientProperties.url = vnfUrl
-        basicAuthRestClientProperties.additionalHeaders =mapOfHeaders
-        val basicAuthRestClientService: BasicAuthRestClientService= BasicAuthRestClientService(basicAuthRestClientProperties)
-        try {
-            val resultOfGet: BlueprintWebClientService.WebClientResponse<String> = basicAuthRestClientService.exchangeResource(HttpMethod.GET.name, "", "")
+        val sdnc_payload:String = contentFromResolvedArtifactNB("config-deploy-sdnc")
+        //log.info("SDNC payload $sdnc_payload")
+        val sdnc_payloadObject = JacksonUtils.jsonNode(sdnc_payload) as ObjectNode
 
-            val aaiBody = resultOfGet.body
-            val aaiPayloadObject = JacksonUtils.jsonNode(aaiBody) as ObjectNode
 
-            for (item in aaiPayloadObject.get("vf-module")) {
+        val aai_payload:String = contentFromResolvedArtifactNB("config-deploy-aai")
+        //log.info("AAI payload $aai_payload")
+        val aai_payloadObject = JacksonUtils.jsonNode(aai_payload) as ObjectNode
 
-                log.info("item payload Deatils : $item")
 
-                val isItBaseVfModule = item.get("is-base-vf-module").asText()
 
-                if(isItBaseVfModule.toBoolean())
-                    continue
 
-                val vfModuleID: String = item.get("vf-module-id").asText()
 
-                log.info("AAI Vf-module ID is : $vfModuleID")
 
-                val vfModuleInvariantID: String = item.get("model-invariant-id").asText()
+        try {
 
-                log.info("AAI Vf-module Invariant ID is : $vfModuleInvariantID")
+            for (item in sdnc_payloadObject.get("vf-modules")){
 
-                val vfModuleUUID: String = item.get("model-version-id").asText()
+                var instanceID:String =""
+                val modelTopology = item.get("vf-module-data").get("vf-module-topology")
 
-                log.info("AAI Vf-module UUID is : $vfModuleUUID")
 
-                val vfModuleInstance: String = item.get("heat-stack-id").asText()
 
-                log.info("AAI Vf-module Heat Stack ID : $vfModuleInstance")
+                val moduleParameters = modelTopology.get("vf-module-parameters").get("param")
 
-                var delimiter = "/"
+                val label: String? = getParamValueByName(moduleParameters, "vf-module-label")
+                val modelInfo = modelTopology.get("onap-model-information")
+                val vfModuleInvariantID = modelInfo.get("model-invariant-uuid").asText()
+                log.info("VF MOdule Inavriant ID $vfModuleInvariantID")
+                val vfModuleCustID=modelInfo.get("model-customization-uuid").asText()
+                val vfModuleUUID=modelInfo.get("model-uuid").asText()
+                val idInfo = modelTopology.get("vf-module-topology-identifier")
+                val vfModuleID = idInfo.get("vf-module-id").asText()
+                for (aai_item in aai_payloadObject.get("vf-modules"))
+                {
+                    if (aai_item.get("vf-module-id").asText() == vfModuleID && aai_item.get("heat-stack-id") != null)
+                    {
+                        instanceID=aai_item.get("heat-stack-id").asText()
+                        break
+                    }
+                }
 
-                val Instance = vfModuleInstance.split(delimiter)
-                val instanceName = Instance[0]
-                val instanceID = Instance[1]
-                log.info("instance name is : $instanceName")
-                log.info("K8S instance ID is : $instanceID")
 
-                val instanceNameNameArray: List<String> = instanceName.split("..")
-                val typOfVfmodule = instanceNameNameArray[1]
-                log.info("Type of vf-module: $typOfVfmodule")
 
                 val k8sRbProfileName: String = "profile_" + vfModuleID
 
-                val k8sConfigTemplateName: String = "template_" + vfModuleID
+                val k8sConfigTemplateName: String = "template_" + vfModuleCustID
 
-                val api = K8sConfigTemplateApi(k8sApiUsername, k8sApiPassword, baseK8sApiUrl, vfModuleInvariantID, vfModuleUUID, k8sConfigTemplateName)
+                val api = K8sConfigTemplateApi(k8sApiUsername, k8sApiPassword, baseK8sApiUrl, vfModuleInvariantID, vfModuleCustID, k8sConfigTemplateName)
 
                 // Check if definition exists
                 if (!api.hasDefinition()) {
-                    throw BluePrintProcessorException("K8s Config Template ($vfModuleInvariantID/$vfModuleUUID) -  $k8sConfigTemplateName not found ")
+                    throw BluePrintProcessorException("K8S Definition ($vfModuleInvariantID/$vfModuleCustID)  not found ")
                 }
+                val bluePrintPropertiesService: BluePrintPropertiesService =this.functionDependencyInstanceAsType("bluePrintPropertiesService")
+                val k8sConfiguration = K8sConnectionPluginConfiguration(bluePrintPropertiesService)
+                val rbDefinitionService = K8sDefinitionRestClient(k8sConfiguration,vfModuleInvariantID, vfModuleCustID)
+
+
+                val def: BlueprintWebClientService.WebClientResponse<String> = rbDefinitionService.exchangeResource(HttpMethod.GET.name,"","")
+                log.info(def.body.toString())
+                val rbdef = JacksonUtils.jsonNode(def.body.toString()) as ObjectNode
+                val chartName = rbdef.get("chart-name").asText()
 
                 log.info("Config Template name: $k8sConfigTemplateName")
 
-                if (k8sRbProfileName.equals("")) {
-                    throw BluePrintProcessorException("K8s rb profile name is empty! Either define profile name to use or choose default")
-                }
+
 
                 var configTemplate = K8sConfigTemplate()
                 configTemplate.templateName = k8sConfigTemplateName
                 configTemplate.description = " "
-                configTemplate.ChartName = typOfVfmodule
+                configTemplate.ChartName = chartName
                 log.info("Chart name: ${configTemplate.ChartName}")
 
-                val instanceAPI = K8sInstanceApi(k8sApiUsername, k8sApiPassword, baseK8sApiUrl, vfModuleInvariantID, vfModuleUUID)
-                val configMapName: String = instanceAPI.getInsnceDetails(instanceID, typOfVfmodule)
-
-                log.info("configmap retrieved " +typOfVfmodule+ "vfmodule ->"+ configMapName)
-                modifyTemplate(configMapName, typOfVfmodule)
 
-                val configTemplateFile: Path = prepareConfigTemplateJson(k8sConfigTemplateName, typOfVfmodule)
 
                 if (!api.hasConfigTemplate(configTemplate)) {
-                    log.info("K8s Config Template Upload Started")
+
+
+                    val configTemplateFile: Path = prepareConfigTemplateJson(k8sConfigTemplateName, vfModuleID, label)
+
+                    log.info("Config Template Upload Started")
                     api.createConfigTemplate(configTemplate)
                     api.uploadConfigTemplateContent(configTemplate, configTemplateFile)
-                    log.info("K8s Config Template Upload Completed")
+                    log.info("Config Template Upload Completed")
                 }
             }
             log.info("DAY-1 Script excution completed")
+
+
         }
         catch (e: Exception) {
-            log.info("Caught exception trying to get the vnf Details!!")
-           // throw BluePrintProcessorException("${e.message}")
+            log.info("Caught exception during config template preparation!!")
+            throw BluePrintProcessorException("${e.message}")
+        }
+    }
+    private fun getParamValueByName(params: JsonNode, paramName: String): String? {
+        for (param in params) {
+            if (param.get("name").asText() == paramName && param.get("value").asText() != "null") {
+                return param.get("value").asText()
+
+            }
         }
+        return null
     }
 
-    fun prepareConfigTemplateJson(configTemplateName: String, typOfVfmodule: String): Path {
+    fun prepareConfigTemplateJson(configTemplateName: String, vfModuleID: String, label: String?): Path {
         val bluePrintContext = bluePrintRuntimeService.bluePrintContext()
         val bluePrintBasePath: String = bluePrintContext.rootPath
 
-        var profileFilePath: Path = Paths.get(bluePrintBasePath.plus(File.separator).plus("Templates").plus(File.separator).plus("k8s-profiles").plus(File.separator).plus(typOfVfmodule +"-config-template.tar.gz"))
+        var profileFilePath: Path = Paths.get(bluePrintBasePath.plus(File.separator).plus("Templates").plus(File.separator).plus("k8s-profiles").plus(File.separator).plus(label +"-config-template.tar.gz"))
         log.info("Reading K8s Config Template file: $profileFilePath")
 
         val profileFile = profileFilePath.toFile()
 
         if (!profileFile.exists())
-            throw BluePrintProcessorException("K8s Profile template file $profileFilePath does not exists")
+            throw BluePrintProcessorException("K8s Config template file $profileFilePath does not exists")
 
         return profileFilePath
     }
 
+
     fun getResolvedParameter(payload: ObjectNode, keyName: String): String {
         for (node in payload.get("resource-accumulator-resolved-data").elements()) {
             if (node.get("param-name").asText().equals(keyName)) {
@@ -220,167 +228,13 @@ open class DayOneConfig : AbstractScriptComponentFunction() {
         return ""
     }
     override suspend fun recoverNB(runtimeException: RuntimeException, executionRequest: ExecutionServiceInput) {
-        log.info("Executing Recovery")
-        addError("${runtimeException.message}")
+        log.info("Recover function called!")
+        log.info("Execution request : $executionRequest")
+        log.error("Exception", runtimeException)
+        addError(runtimeException.message!!)
     }
 
-    fun modifyTemplate(configmapName: String, typOfVfmodule: String): String {
-
-        log.info("Executing modifyTemplate ->")
-
-        val bluePrintContext = bluePrintRuntimeService.bluePrintContext()
-        val bluePrintBasePath: String = bluePrintContext.rootPath
 
-        val destPath: String = "/tmp/config-template-"+typOfVfmodule
-
-        var templateFilePath: Path = Paths.get(bluePrintBasePath.plus(File.separator).plus("Templates").plus(File.separator).plus("k8s-profiles").plus(File.separator).plus(typOfVfmodule +"-config-template.tar.gz"))
-
-        log.info("Reading config template file: ${templateFilePath}")
-        val templateFile = templateFilePath.toFile()
-
-        if (!templateFile.exists())
-            throw BluePrintProcessorException("K8s Profile template file ${templateFilePath} does not exists")
-
-        log.info("Decompressing config template to ${destPath}")
-
-        val decompressedProfile: File = BluePrintArchiveUtils.deCompress(templateFilePath.toFile(),
-                "${destPath}", ArchiveType.TarGz)
-
-        log.info("${templateFilePath.toString()} decompression completed")
-
-        //Here we update override.yaml file
-
-        val manifestFileName = destPath.plus(File.separator).plus(typOfVfmodule).plus(File.separator).plus("templates").plus(File.separator).plus("configmap.yaml")
-        log.info("Modification of configmap.yaml file at ${manifestFileName.toString()}")
-        var finalManifest = ""
-        File(manifestFileName).bufferedReader().use { inr ->
-            val manifestYaml = Yaml()
-            val manifestObject: Map<String, Any> = manifestYaml.load(inr)
-
-            for((k,v) in manifestObject) {
-                log.info("manifestObject: ${k}, ${v}" )
-            }
-
-            log.info("Uploaded YAML object")
-
-            val metadata: MutableMap<String, Any> = manifestObject.get("metadata") as MutableMap<String, Any>
-            log.info("Uploaded config YAML object")
-
-            for((k,v) in metadata) {
-                metadata.put(k, configmapName)
-            }
-
-            finalManifest = manifestYaml.dump(manifestObject)
-        }
-
-        File(manifestFileName).bufferedWriter().use { out -> out.write(finalManifest) }
-
-        log.info(finalManifest)
-
-        log.info("Reading config template file: ${templateFilePath}")
-
-        if (!templateFile.exists())
-            throw BluePrintProcessorException("config template file ${templateFilePath} does not exists")
-
-        val tempMainPath: File = createTempDir("config-template-", "")
-        val tempConfigTemplatePath: File = createTempDir("conftemplate-", "", tempMainPath)
-        log.info("Decompressing profile to ${tempConfigTemplatePath.toString()}")
-
-        val decompressedProfile2: File = BluePrintArchiveUtils.deCompress(templateFilePath.toFile(),
-                "${tempConfigTemplatePath.toString()}", ArchiveType.TarGz)
-
-        log.info("${templateFilePath.toString()} decompression completed")
-
-        //Here we update configmap.yaml file
-
-        log.info("Modification of configmap.yaml file ")
-        val manifestFileName2 = destPath.toString().plus(File.separator).plus(typOfVfmodule).plus(File.separator).plus("templates").plus(File.separator).plus("configmap.yaml")
-        val destOverrideFile = tempConfigTemplatePath.toString().plus(File.separator).plus(typOfVfmodule).plus(File.separator).plus("templates").plus(File.separator).plus("configmap.yaml")
-        log.info("destination override file ${destOverrideFile}")
-
-        File(manifestFileName2).copyTo(File(destOverrideFile), true)
-
-        if (!BluePrintArchiveUtils.compress(decompressedProfile2, templateFilePath.toFile(),
-                        ArchiveType.TarGz)) {
-            throw BluePrintProcessorException("Profile compression has failed")
-        }
-
-        log.info("${templateFilePath.toString()} compression completed")
-
-        return ""
-    }
-
-    inner class K8sInstanceApi(
-            val username: String,
-            val password: String,
-            val baseUrl: String,
-            val definition: String,
-            val definitionVersion: String
-    ) {
-        private val service: UploadConfigTemplateRestClientService // BasicAuthRestClientService
-
-        init {
-            var mapOfHeaders = hashMapOf<String, String>()
-            mapOfHeaders.put("Accept", "application/json")
-            mapOfHeaders.put("Content-Type", "application/json")
-            mapOfHeaders.put("cache-control", " no-cache")
-            mapOfHeaders.put("Accept", "application/json")
-            var basicAuthRestClientProperties: BasicAuthRestClientProperties = BasicAuthRestClientProperties()
-            basicAuthRestClientProperties.username = username
-            basicAuthRestClientProperties.password = password
-            basicAuthRestClientProperties.url = "$baseUrl/v1/instance"
-            basicAuthRestClientProperties.additionalHeaders = mapOfHeaders
-
-            this.service = UploadConfigTemplateRestClientService(basicAuthRestClientProperties)
-        }
-
-        fun getInsnceDetails(instanceId: String, vfModuleType: String): String {
-            log.info("Executing K8sInstanceApi.getInsnceDetails")
-            try {
-                val result: BlueprintWebClientService.WebClientResponse<String> = service.exchangeResource(HttpMethod.GET.name, "/${instanceId}", "")
-                print(result)
-                if (result.status >= 200 && result.status < 300) {
-                    log.info("K8s instance details retrieved, processing it for configmap details")
-                    log.info("response body -> "+result.body.toString())
-                    val cmName: String = processInstanceResponse(result.body, vfModuleType)
-                    return cmName
-                } else
-                    return ""
-            } catch (e: Exception) {
-                log.info("Caught exception trying to get k8s instance details")
-                throw BluePrintProcessorException("${e.message}")
-            }
-        }
-
-        fun processInstanceResponse(response: String, vfModuleType: String): String {
-
-            log.info("K8s instance details retrieved, processing it for configmap details")
-
-            val gson = Gson()
-
-            val startInd = response.indexOf('[')
-            val endInd = response.indexOf(']')
-
-            val subStr = response.substring(startInd, endInd+1)
-
-            val resourceType = object : TypeToken<Array<K8sResources>>() {}.type
-
-            var resources: Array<K8sResources> = gson.fromJson(subStr, resourceType)
-
-            for (resource in resources){
-
-                if(resource.GVK?.Kind == "ConfigMap" && resource.Name?.contains(vfModuleType)){
-
-                    return resource.Name
-
-                }
-
-            }
-            return ""
-
-        }
-
-    }
 
     inner class K8sConfigTemplateApi(
             val username: String,
@@ -453,7 +307,7 @@ open class DayOneConfig : AbstractScriptComponentFunction() {
                 }
             } catch (e: Exception) {
                 log.info("Caught exception trying to create k8s config template ${profile.templateName}  - updated")
-            //    throw BluePrintProcessorException("${e.message}")
+                //    throw BluePrintProcessorException("${e.message}")
             }
         }
 
@@ -579,6 +433,6 @@ fun main(args: Array<String>) {
 
     val kotlin = DayOneConfig()
 
-    kotlin.modifyTemplate("modified", "upf")
+
 
 }
index 2b8c7b2..55d73f3 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Copyright © 2019 Orange
- * Author: Malinconico Aniello Paolo <aniellopaolo.malinconico@guest.telecomitalia.it>
+ *
  * 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
@@ -65,10 +65,8 @@ open class K8sProfileUpload : AbstractScriptComponentFunction() {
         val prefixList: ArrayList<String> = getTemplatePrefixList(executionRequest)
         for (prefix in prefixList) {
             if (prefix.toLowerCase().equals("vnf")) {
-                log.info("For vnf-level resource-assignment, profile is not performed. Creating override_values")
-                val assignmentParams = getDynamicProperties("assignment-params")
-                val payloadObject = JacksonUtils.jsonNode(assignmentParams.get(prefix).asText()) as ObjectNode
-                createOverrideVaues(payloadObject)
+                log.info("For vnf-level resource-assignment, profile is not performed.")
+
                 continue
             }
             val assignmentParams = getDynamicProperties("assignment-params")
@@ -77,14 +75,16 @@ open class K8sProfileUpload : AbstractScriptComponentFunction() {
             log.info("Uploading K8S profile for template prefix $prefix")
 
             val vfModuleModelInvariantUuid: String = getResolvedParameter(payloadObject, "vf-module-model-invariant-uuid")
+            val vfModuleId: String = getResolvedParameter(payloadObject, "vf-module-id")
             val vfModuleModelUuid: String = getResolvedParameter(payloadObject, "vf-module-model-customization-uuid")
             val k8sRbProfileName: String = getResolvedParameter(payloadObject, "k8s-rb-profile-name")
             val k8sRbProfileNamespace: String = getResolvedParameter(payloadObject, "k8s-rb-profile-namespace")
-            val vnfId: String = getResolvedParameter(payloadObject, "vnf-id")
-            log.info("******vnfID************   $vnfId")
+            val releaseName:String = getResolvedParameter(payloadObject, "k8s-rb-instance-release-name")
+
+            log.info("******vfModuleID************   $vfModuleId")
             log.info("k8sRbProfileName $k8sRbProfileName")
 
-            // Extract supportedNssai
+
             val api = K8sApi(k8sApiUsername, k8sApiPassword, baseK8sApiUrl, vfModuleModelInvariantUuid, vfModuleModelUuid)
 
             if (!api.hasDefinition()) {
@@ -101,13 +101,15 @@ open class K8sProfileUpload : AbstractScriptComponentFunction() {
                 if (api.hasProfile(k8sRbProfileName)) {
                     log.info("Profile Already Existing - skipping upload")
                 } else {
-                    val profileFilePath: Path = prepareProfileFile(k8sRbProfileName, vnfId)
+                    createOverrideValues(payloadObject,  vfModuleId, prefix)
+                    val profileFilePath: Path = prepareProfileFile(k8sRbProfileName, vfModuleId, prefix)
 
                     var profile = K8sProfile()
                     profile.profileName = k8sRbProfileName
                     profile.rbName = vfModuleModelInvariantUuid
                     profile.rbVersion = vfModuleModelUuid
                     profile.namespace = k8sRbProfileNamespace
+                    profile.releaseName = releaseName
                     api.createProfile(profile)
                     api.uploadProfileContent(profile, profileFilePath)
 
@@ -117,10 +119,10 @@ open class K8sProfileUpload : AbstractScriptComponentFunction() {
         }
     }
 
-    fun prepareProfileFile(k8sRbProfileName: String, vnfId: String): Path {
+    fun prepareProfileFile(k8sRbProfileName: String, vfModuleId: String, prefix: String): Path {
         val bluePrintContext = bluePrintRuntimeService.bluePrintContext()
         val bluePrintBasePath: String = bluePrintContext.rootPath
-        var profileFilePath: Path = Paths.get(bluePrintBasePath.plus(File.separator).plus("Templates").plus(File.separator).plus("k8s-profiles").plus(File.separator).plus("template-profile.tar.gz"))
+        var profileFilePath: Path = Paths.get(bluePrintBasePath.plus(File.separator).plus("Templates").plus(File.separator).plus("k8s-profiles").plus(File.separator).plus("$prefix-profile.tar.gz"))
         log.info("Reading K8s profile file: $profileFilePath")
 
         val profileFile = profileFilePath.toFile()
@@ -133,22 +135,23 @@ open class K8sProfileUpload : AbstractScriptComponentFunction() {
         log.info("Decompressing profile to $tempProfilePath")
 
         val decompressedProfile: File = BluePrintArchiveUtils.deCompress(
-            profileFilePath.toFile(),
-            "$tempProfilePath",
-            ArchiveType.TarGz
+                profileFilePath.toFile(),
+                "$tempProfilePath",
+                ArchiveType.TarGz
         )
 
         log.info("$profileFilePath decompression completed")
-        val tempOverrideValuesPath: String = "/tmp/k8s-profile-" + vnfId
+        val destPath: String = "/tmp/k8s-profile-" + vfModuleId
 
-        // Here we are copying the tmp override_values file (created at vnf level) into the profile, before uploading it. This function is performed only at vfmodule level
+        // Here we update override.yaml file
 
         log.info("Modification of override.yaml file ")
-        val tmpOverrideFile = tempOverrideValuesPath.toString().plus(File.separator).plus("override_values.yaml")
+        val manifestFileName = destPath.toString().plus(File.separator).plus("override_values.yaml")
         val destOverrideFile = tempProfilePath.toString().plus(File.separator).plus("override_values.yaml")
         log.info("destination override file $destOverrideFile")
-        File(tmpOverrideFile).copyTo(File(destOverrideFile), true)
-        profileFilePath = Paths.get(tempMainPath.toString().plus(File.separator).plus("template-profile.tar.gz"))
+        File(manifestFileName).copyTo(File(destOverrideFile), true)
+        profileFilePath = Paths.get(tempMainPath.toString().plus(File.separator).plus("$prefix-profile.tar.gz"))
+
 
         if (!BluePrintArchiveUtils.compress(decompressedProfile, profileFilePath.toFile(), ArchiveType.TarGz)) {
             throw BluePrintProcessorException("Profile compression has failed")
@@ -164,7 +167,8 @@ open class K8sProfileUpload : AbstractScriptComponentFunction() {
         return result
     }
 
-    fun createOverrideVaues(payloadObject: ObjectNode): String {
+
+    fun createOverrideValues(payloadObject: ObjectNode,  vfModuleId: String, prefix:String): String {
         // Extract supportedNssai
         val supportedNssaiMap = LinkedHashMap<String, Any>()
         val snssai: String = getResolvedParameter(payloadObject, "config.supportedNssai.sNssai.snssai")
@@ -173,11 +177,9 @@ open class K8sProfileUpload : AbstractScriptComponentFunction() {
 
         val bluePrintContext = bluePrintRuntimeService.bluePrintContext()
         val bluePrintBasePath: String = bluePrintContext.rootPath
-        val vnfId: String = getResolvedParameter(payloadObject, "vnf-id")
-        val destPath: String = "/tmp/k8s-profile-" + vnfId
-        log.info("*********vnfID***** $vnfId")
+        val destPath: String = "/tmp/k8s-profile-" + vfModuleId
 
-        var profileFilePath: Path = Paths.get(bluePrintBasePath.plus(File.separator).plus("Templates").plus(File.separator).plus("k8s-profiles").plus(File.separator).plus("template-profile.tar.gz"))
+        var profileFilePath: Path = Paths.get(bluePrintBasePath.plus(File.separator).plus("Templates").plus(File.separator).plus("k8s-profiles").plus(File.separator).plus("$prefix-profile.tar.gz"))
         log.info("Reading K8s profile file: $profileFilePath")
         val profileFile = profileFilePath.toFile()
 
@@ -188,9 +190,9 @@ open class K8sProfileUpload : AbstractScriptComponentFunction() {
         log.info("Decompressing profile to $destPath")
 
         val decompressedProfile: File = BluePrintArchiveUtils.deCompress(
-            profileFilePath.toFile(),
-            "$destPath",
-            ArchiveType.TarGz
+                profileFilePath.toFile(),
+                "$destPath",
+                ArchiveType.TarGz
         )
 
         log.info("$profileFilePath decompression completed")
@@ -245,6 +247,8 @@ open class K8sProfileUpload : AbstractScriptComponentFunction() {
         return ""
     }
 
+
+
     fun getResolvedParameter(payload: ObjectNode, keyName: String): String {
         for (node in payload.get("resource-accumulator-resolved-data").elements()) {
             if (node.get("param-name").asText().equals(keyName)) {
@@ -274,16 +278,18 @@ open class K8sProfileUpload : AbstractScriptComponentFunction() {
     }
 
     override suspend fun recoverNB(runtimeException: RuntimeException, executionRequest: ExecutionServiceInput) {
-        log.info("Executing Recovery")
-        addError("${runtimeException.message}")
+        log.info("Recover function called!")
+        log.info("Execution request : $executionRequest")
+        log.error("Exception", runtimeException)
+        addError(runtimeException.message!!)
     }
 
     inner class K8sApi(
-        val username: String,
-        val password: String,
-        val baseUrl: String,
-        val definition: String,
-        val definitionVersion: String
+            val username: String,
+            val password: String,
+            val baseUrl: String,
+            val definition: String,
+            val definitionVersion: String
     ) {
         private val service: UploadFileRestClientService // BasicAuthRestClientService
 
@@ -319,9 +325,9 @@ open class K8sProfileUpload : AbstractScriptComponentFunction() {
         fun hasProfile(profileName: String): Boolean {
             try {
                 val result: BlueprintWebClientService.WebClientResponse<String> = service.exchangeResource(
-                    HttpMethod.GET.name,
-                    "/profile/$profileName",
-                    ""
+                        HttpMethod.GET.name,
+                        "/profile/$profileName",
+                        ""
                 )
                 if (result.status >= 200 && result.status < 300)
                     return true
@@ -340,9 +346,9 @@ open class K8sProfileUpload : AbstractScriptComponentFunction() {
             val profileJsonString: String = objectMapper.writeValueAsString(profile)
             try {
                 val result: BlueprintWebClientService.WebClientResponse<String> = service.exchangeResource(
-                    HttpMethod.POST.name,
-                    "/profile",
-                    profileJsonString
+                        HttpMethod.POST.name,
+                        "/profile",
+                        profileJsonString
                 )
                 if (result.status < 200 || result.status >= 300) {
                     throw Exception(result.body)
@@ -356,8 +362,8 @@ open class K8sProfileUpload : AbstractScriptComponentFunction() {
         fun uploadProfileContent(profile: K8sProfile, filePath: Path) {
             try {
                 val result: BlueprintWebClientService.WebClientResponse<String> = service.uploadBinaryFile(
-                    "/profile/${profile.profileName}/content",
-                    filePath
+                        "/profile/${profile.profileName}/content",
+                        filePath
                 )
                 if (result.status < 200 || result.status >= 300) {
                     throw Exception(result.body)
@@ -371,20 +377,20 @@ open class K8sProfileUpload : AbstractScriptComponentFunction() {
 }
 
 class UploadFileRestClientService(
-    private val restClientProperties:
+        private val restClientProperties:
         BasicAuthRestClientProperties
 ) : BlueprintWebClientService {
 
     override fun defaultHeaders(): Map<String, String> {
 
         val encodedCredentials = setBasicAuth(
-            restClientProperties.username,
-            restClientProperties.password
+                restClientProperties.username,
+                restClientProperties.password
         )
         return mapOf(
-            HttpHeaders.CONTENT_TYPE to MediaType.APPLICATION_JSON_VALUE,
-            HttpHeaders.ACCEPT to MediaType.APPLICATION_JSON_VALUE,
-            HttpHeaders.AUTHORIZATION to "Basic $encodedCredentials"
+                HttpHeaders.CONTENT_TYPE to MediaType.APPLICATION_JSON_VALUE,
+                HttpHeaders.ACCEPT to MediaType.APPLICATION_JSON_VALUE,
+                HttpHeaders.AUTHORIZATION to "Basic $encodedCredentials"
         )
     }
 
@@ -393,26 +399,26 @@ class UploadFileRestClientService(
     }
 
     override fun convertToBasicHeaders(headers: Map<String, String>):
-        Array<BasicHeader> {
-            val customHeaders: MutableMap<String, String> = headers.toMutableMap()
-            // inject additionalHeaders
-            customHeaders.putAll(verifyAdditionalHeaders(restClientProperties))
+            Array<BasicHeader> {
+        val customHeaders: MutableMap<String, String> = headers.toMutableMap()
+        // inject additionalHeaders
+        customHeaders.putAll(verifyAdditionalHeaders(restClientProperties))
 
-            if (!headers.containsKey(HttpHeaders.AUTHORIZATION)) {
-                val encodedCredentials = setBasicAuth(
+        if (!headers.containsKey(HttpHeaders.AUTHORIZATION)) {
+            val encodedCredentials = setBasicAuth(
                     restClientProperties.username,
                     restClientProperties.password
-                )
-                customHeaders[HttpHeaders.AUTHORIZATION] =
+            )
+            customHeaders[HttpHeaders.AUTHORIZATION] =
                     "Basic $encodedCredentials"
-            }
-            return super.convertToBasicHeaders(customHeaders)
         }
+        return super.convertToBasicHeaders(customHeaders)
+    }
 
     private fun setBasicAuth(username: String, password: String): String {
         val credentialsString = "$username:$password"
         return Base64.getEncoder().encodeToString(
-            credentialsString.toByteArray(Charset.defaultCharset())
+                credentialsString.toByteArray(Charset.defaultCharset())
         )
     }
 
@@ -446,9 +452,11 @@ class K8sProfile {
     var profileName: String? = null
     @get:JsonProperty("namespace")
     var namespace: String? = "default"
+    @get:JsonProperty("releaseName")
+    var releaseName: String? = null
 
     override fun toString(): String {
-        return "$rbName:$rbVersion:$profileName"
+        return "$rbName:$rbVersion:$profileName:$releaseName"
     }
 
     override fun equals(other: Any?): Boolean {
index d107996..937c00a 100644 (file)
@@ -1,6 +1,6 @@
 /*
 *  Copyright © 2019 TechMahindra
-*  Author: Vamshi Namilikonda <vn00480215@techmahindra.com>
+*
 *  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
@@ -21,6 +21,7 @@ import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractScriptC
 import org.slf4j.LoggerFactory
 import com.fasterxml.jackson.databind.node.ObjectNode
 import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
+import com.fasterxml.jackson.databind.node.ArrayNode
 import org.onap.ccsdk.cds.blueprintsprocessor.rest.service.BlueprintWebClientService
 import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
 import java.nio.file.Path
@@ -41,6 +42,14 @@ import java.nio.file.Files
 import org.onap.ccsdk.cds.blueprintsprocessor.rest.service.RestLoggerService
 import org.apache.http.client.ClientProtocolException
 import com.fasterxml.jackson.databind.ObjectMapper
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.k8s.definition.K8sPluginDefinitionApi
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.k8s.K8sConnectionPluginConfiguration
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.k8s.definition.K8sDefinitionRestClient
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.k8s.instance.K8sConfigValueRequest
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.k8s.instance.K8sPluginInstanceApi
+import org.onap.ccsdk.cds.blueprintsprocessor.core.BluePrintPropertiesService
+import com.fasterxml.jackson.dataformat.yaml.YAMLFactory
+import com.fasterxml.jackson.module.kotlin.convertValue
 
 import com.google.gson.Gson
 import com.google.gson.reflect.TypeToken
@@ -60,6 +69,7 @@ open class KotlinK8sUpdateConfig : AbstractScriptComponentFunction() {
 
         println("Exeuting processNB")
         log.info("Executing processNB from Kotlin script: KotlinK8sUpdateConfig ...")
+        val bluePrintPropertiesService: BluePrintPropertiesService =this.functionDependencyInstanceAsType("bluePrintPropertiesService")
 
         // read the config  input
         val baseK8sApiUrl = getDynamicProperties("api-access").get("url").asText()
@@ -105,6 +115,8 @@ open class KotlinK8sUpdateConfig : AbstractScriptComponentFunction() {
             val aaiBody = resultOfGet.body
             val aaiPayloadObject = JacksonUtils.jsonNode(aaiBody) as ObjectNode
 
+            log.info("aaiPayloadObject: $aaiPayloadObject")
+
             for (item in aaiPayloadObject.get("vf-module")) {
 
                 log.info("item payload Deatils : $item")
@@ -126,15 +138,22 @@ open class KotlinK8sUpdateConfig : AbstractScriptComponentFunction() {
 
                 log.info("AAI Vf-module UUID is : $vfModuleModelUuid")
 
+                val vfModuleCustUuid: String = item.get("model-customization-id").asText()
+
+                log.info("AAI Vf-module Customization UUID is : $vfModuleCustUuid")
+
+
                 val vfModuleInstance: String = item.get("heat-stack-id").asText()
 
                 log.info("AAI Vf-module Heat Stack ID : $vfModuleInstance")
 
                 val profileName: String = "profile-"+ vfModuleID
-                val templateName: String = "template_" + vfModuleID
+                val templateName: String = "template_" + vfModuleCustUuid
+
+                //val randomString = getRandomString(6)
+                val configName: String = "config_"+ vfModuleID
 
-                val randomString = getRandomString(6)
-                val configName: String = "config_"+ randomString
+                log.info("payloadObject: $payloadObject")
 
                 var supportedNssai: String = getResolvedParameter(payloadObject, "supportedNssai")
 
@@ -144,12 +163,12 @@ open class KotlinK8sUpdateConfig : AbstractScriptComponentFunction() {
                 log.info("templateName ->"+ templateName)
 
 
-                executeK8sAPI(supportedNssai, k8sApiUsername, k8sApiPassword, baseK8sApiUrl, vfModuleModelInvariantUuid, vfModuleModelUuid, templateName, configName, profileName)
+                executeK8sAPI(bluePrintPropertiesService,supportedNssai, k8sApiUsername, k8sApiPassword, baseK8sApiUrl, vfModuleModelInvariantUuid, vfModuleCustUuid, templateName, configName, profileName, vfModuleInstance)
 
             }
         }
         catch (e: Exception) {
-            log.info("Caught exception trying to get the vnf Details!!")
+            log.info("Caught exception trying to set config values!!")
             throw BluePrintProcessorException("${e.message}")
         }
     }
@@ -161,7 +180,7 @@ open class KotlinK8sUpdateConfig : AbstractScriptComponentFunction() {
                 .joinToString("")
     }
 
-    fun executeK8sAPI(supportedNssai: String, k8sApiUsername:String, k8sApiPassword:String, baseK8sApiUrl:String, vfModuleModelInvariantUuid:String, vfModuleModelUuid: String, templateName: String, configName:String, profileName:String){
+    fun executeK8sAPI(bluePrintPropertiesService: BluePrintPropertiesService,supportedNssai: String, k8sApiUsername:String, k8sApiPassword:String, baseK8sApiUrl:String, vfModuleModelInvariantUuid:String, vfModuleCustUuid: String, templateName: String, configName:String, profileName:String, instanceId: String){
 
         println("Executing executeK8sAPI ...")
 
@@ -169,7 +188,7 @@ open class KotlinK8sUpdateConfig : AbstractScriptComponentFunction() {
         val sNssaiAsJsonObj = parseSupportedNssai(supportedNssai)
 
         // contruct config api
-        val api = K8sConfigApi(k8sApiUsername, k8sApiPassword, baseK8sApiUrl, vfModuleModelInvariantUuid, vfModuleModelUuid)
+        val api = K8sConfigApi(k8sApiUsername, k8sApiPassword, baseK8sApiUrl, vfModuleModelInvariantUuid, vfModuleCustUuid, instanceId, bluePrintPropertiesService)
 
 
         // invoke config api
@@ -183,7 +202,7 @@ open class KotlinK8sUpdateConfig : AbstractScriptComponentFunction() {
         config.values.supportedNssai.snssaiInitial.snssaiSecond.snssaiFinalArray = Array<SnssaiFinal>(sNssaiAsJsonObj.size){i-> SnssaiFinal()}
 
         val dest = buildSNssaiArray(config.values.supportedNssai.snssaiInitial.snssaiSecond.snssaiFinalArray, sNssaiAsJsonObj)
-        api.createOrUpdateConfig(config, profileName)
+        api.createOrUpdateConfig(config, profileName, instanceId, configName, templateName)
 
         log.info("K8s Configurations create or update Completed")
 
@@ -231,8 +250,18 @@ open class KotlinK8sUpdateConfig : AbstractScriptComponentFunction() {
         return ""
     }
 
+    fun getTemplatePrefixList(executionRequest: ExecutionServiceInput): ArrayList<String> {
+        val result = ArrayList<String>()
+        for (prefix in executionRequest.payload.get("resource-assignment-request").get("template-prefix").elements())
+            result.add(prefix.asText())
+        return result
+    }
+
     override suspend fun recoverNB(runtimeException: RuntimeException, executionRequest: ExecutionServiceInput) {
-        log.info("Executing Recovery")
+        log.info("Recover function called!")
+        log.info("Execution request : $executionRequest")
+        log.error("Exception", runtimeException)
+        addError(runtimeException.message!!)
     }
 
     inner class K8sConfigApi(
@@ -240,7 +269,10 @@ open class KotlinK8sUpdateConfig : AbstractScriptComponentFunction() {
             val password: String,
             val baseUrl: String,
             val definition: String,
-            val definitionVersion: String
+            val definitionVersion: String,
+            val instanceId: String,
+            val bluePrintPropertiesService: BluePrintPropertiesService
+
     ) {
         private val service: UploadFileConfigClientService // BasicAuthRestClientService
 
@@ -253,14 +285,16 @@ open class KotlinK8sUpdateConfig : AbstractScriptComponentFunction() {
             var basicAuthRestClientProperties: BasicAuthRestClientProperties = BasicAuthRestClientProperties()
             basicAuthRestClientProperties.username = username
             basicAuthRestClientProperties.password = password
-            basicAuthRestClientProperties.url = "$baseUrl/v1/rb/definition/$definition/$definitionVersion"
+            basicAuthRestClientProperties.url = "$baseUrl/v1/instance"
             basicAuthRestClientProperties.additionalHeaders = mapOfHeaders
 
             this.service = UploadFileConfigClientService(basicAuthRestClientProperties)
         }
 
-        fun createOrUpdateConfig(configJson: K8sConfigPayloadJson, profileName: String) {
+        fun createOrUpdateConfig(configJson: K8sConfigPayloadJson, profileName: String, instanceId: String, configName: String, templateName: String) {
             val objectMapper = ObjectMapper()
+            var obj: Any? = null
+            val yamlReader = ObjectMapper(YAMLFactory())
 
             for(snssai in configJson.values.supportedNssai.snssaiInitial.snssaiSecond.snssaiFinalArray){
                 println("snssai->" +snssai.snssai)
@@ -268,7 +302,7 @@ open class KotlinK8sUpdateConfig : AbstractScriptComponentFunction() {
 
             }
 
-            val configJsonString: String = objectMapper.writeValueAsString(configJson)
+            val configJsonString: String = objectMapper.writeValueAsString(configJson.values)
 
             log.info("payload generated -> "+ configJsonString)
 
@@ -280,16 +314,20 @@ open class KotlinK8sUpdateConfig : AbstractScriptComponentFunction() {
             val finalPayload: String = configJsonString.replaceRange(startInd..endInd, snssaiArray)
 
             log.info("payload restructured -> "+ finalPayload)
+            obj = yamlReader.readValue(finalPayload, Any::class.java)
+
 
-            try {
-                val result: BlueprintWebClientService.WebClientResponse<String> = service.exchangeResource(HttpMethod.POST.name,
-                        "/profile/${profileName}/config", finalPayload)
-                if (result.status < 200 || result.status >= 300) {
-                    throw Exception(result.body)
-                }
-            } catch (e: Exception) {
-                log.info("Caught exception trying to create or update configuration ")
-                throw BluePrintProcessorException("${e.message}")
+
+            val api = K8sPluginInstanceApi(K8sConnectionPluginConfiguration(bluePrintPropertiesService))
+
+            val configValueRequest = K8sConfigValueRequest()
+            configValueRequest.templateName = configJson.templateName
+            configValueRequest.configName = configJson.configName
+            configValueRequest.values = objectMapper.convertValue(obj)
+            if (api.hasConfigurationValues(instanceId, configName)) {
+                api.editConfigurationValues(configValueRequest, instanceId, configName)
+            } else {
+                api.createConfigurationValues(configValueRequest, instanceId)
             }
         }
 
@@ -429,16 +467,6 @@ fun main(args: Array<String>) {
 
     val kotlin = KotlinK8sUpdateConfig()
 
-    /* supportedNssai
-     k8sApiUsername
-     k8sApiPassword
-     baseK8sApiUrl
-     vfModuleModelInvariantUuid
-     vfModuleModelUuid
-     templateName
-     configName
-     profileName*/
-
-    kotlin.executeK8sAPI(supportedNssai, "admin", "admin", "http://0.0.0.0:9015", "rb_test", "1", "template_test", "config_test", "profile_test")
+
 
 }
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/amf-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/amf-mapping.json
deleted file mode 100644 (file)
index 069d58d..0000000
+++ /dev/null
@@ -1,261 +0,0 @@
-[
-  {
-    "name": "vf-module-model-invariant-uuid",
-    "property": {
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-module-model-invariant-uuid",
-    "dictionary-source": "processor-db",
-    "dependencies": [
-      "vf-module-model-customization-uuid"
-    ]
-  },
-  {
-    "name": "vf-module-model-version",
-    "property": {
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-module-model-version",
-    "dictionary-source": "processor-db",
-    "dependencies": [
-      "vf-module-model-customization-uuid"
-    ]
-  },
-  {
-    "name": "management-prefix-id",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "management-prefix-id",
-    "dictionary-source": "processor-db",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "service-instance-id",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "service-instance-id",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "vf-module-id",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-module-id",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "vf-module-label",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "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"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-module-model-customization-uuid",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "vf-naming-policy",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-naming-policy",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ],
-    "version": 0
-  },
-  {
-    "name": "vnf-id",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vnf-id",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "vnf_name",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vnf_name",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ],
-    "version": 0
-  },
-  {
-    "name": "k8s-rb-profile-namespace",
-    "property": {
-      "description": "K8s namespace to create helm chart for specified profile",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "k8s-rb-profile-namespace",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "k8s-rb-profile-name",
-    "property": {
-      "description": "Profile name used in multicloud/k8s plugin to identify Helm chart(s) where this mapping is providing override values.",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "k8s-rb-profile-name",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "fiveg0_snssai",
-    "property": {
-      "description": "",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "fiveg0_snssai",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "snssai",
-    "property": {
-      "description": "",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "snssai",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "config.test",
-    "property": {
-      "description": "",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "config.test",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "config.singletest",
-    "property": {
-      "description": "",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "singletest",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "config.amfName",
-    "property": {
-      "description": "amf name",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "config.amfName",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "amfName",
-    "property": {
-      "description": "amf name",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "amfName",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "config.supportedNssai.sNssai.snssai",
-    "property": {
-      "description": "supportedNssai.sNssai.snssai properties",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "config.supportedNssai.sNssai.snssai",
-    "dictionary-source": "sdnc",
-    "dependencies": []
-  }
-]
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/amf-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/amf-template.vtl
deleted file mode 100644 (file)
index b2abaae..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-{
-  "capability-data": [
-    {
-      "capability-name": "generate-name",
-      "key-mapping": [
-        {
-          "output-key-mapping": [
-            {
-              "resource-name": "vf_module_name",
-              "resource-value": "${vf-module-name}"
-            }
-          ],
-          "payload": [
-            {
-              "param-name": "VF_MODULE_TYPE",
-              "param-value": "vfmt"
-            },
-            {
-              "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}"
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "capability-name": "aai-vf-module-put",
-      "key-mapping": [
-        {
-          "output-key-mapping": [
-            {
-              "resource-name": "aai-vf-module-put",
-              "resource-value": ""
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "capability-name": "unresolved-composite-data",
-      "key-mapping": [
-        {
-          "output-key-mapping": [
-            {
-              "resource-name": "config.amfName",
-              "resource-value": "${vf_module_name}"
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "capability-name": "unresolved-composite-data",
-      "key-mapping": [
-        {
-          "output-key-mapping": [
-            {
-              "resource-name": "amfName",
-              "resource-value": "${vf_module_name}"
-            }
-          ]
-        }
-      ]
-    }
-  ],
-  "resource-accumulator-resolved-data": [
-    {
-      "param-name": "vf-module-model-invariant-uuid",
-      "param-value": "${vf-module-model-invariant-uuid}"
-    },
-    {
-      "param-name": "vf-module-model-customization-uuid",
-      "param-value": "${vf-module-model-customization-uuid}"
-    },
-    {
-      "param-name": "vnf-id",
-      "param-value": "${vnf-id}"
-    },
-    {
-      "param-name": "config.test",
-      "param-value": "${config.test}"
-    },
-    {
-      "param-name": "vf-module-id",
-      "param-value": "${vf-module-id}"
-    },
-    {
-      "param-name": "k8s-rb-profile-name",
-      "param-value": "profile-${vf-module-id}"
-    },
-    {
-      "param-name": "k8s-rb-profile-namespace",
-      "param-value": "ns-${vf-module-id}"
-    },
-    {
-      "param-name": "fiveg0_snssai",
-      "param-value": "${fiveg0_snssai}"
-    },
-    {
-      "param-name": "snssai",
-      "param-value": "${fiveg0_snssai}"
-    },
-    {
-      "param-name": "config.supportedNssai.sNssai.snssai",
-      "param-value": "${fiveg0_snssai}"
-    },
-    {
-      "param-name": "config.singletest",
-      "param-value": "${singletest}"
-    }
-  ]
-}
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/base_template-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/base_template-mapping.json
deleted file mode 100644 (file)
index cceb4fe..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-[
-  {
-    "name": "vf-module-model-invariant-uuid",
-    "property": {
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-module-model-invariant-uuid",
-    "dictionary-source": "processor-db",
-    "dependencies": [
-      "vf-module-model-customization-uuid"
-    ]
-  },
-  {
-    "name": "vf-module-model-version",
-    "property": {
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-module-model-version",
-    "dictionary-source": "processor-db",
-    "dependencies": [
-      "vf-module-model-customization-uuid"
-    ]
-  },
-  {
-    "name": "management-prefix-id",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "management-prefix-id",
-    "dictionary-source": "processor-db",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "vnf_name",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vnf_name",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ],
-    "version": 0
-  },
-  {
-    "name": "service-instance-id",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "service-instance-id",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "vf-module-label",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-module-label",
-    "dictionary-source": "processor-db",
-    "dependencies": [
-      "vf-module-model-customization-uuid"
-    ],
-    "version": 0
-  },
-  {
-    "name": "vf-naming-policy",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-naming-policy",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ],
-    "version": 0
-  },
-  {
-    "name": "vf-module-model-customization-uuid",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-module-model-customization-uuid",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "vnf-id",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vnf-id",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "vf-module-id",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-module-id",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "k8s-rb-profile-namespace",
-    "property": {
-      "description": "K8s namespace to create helm chart for specified profile",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "k8s-rb-profile-namespace",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "k8s-rb-profile-name",
-    "property": {
-      "description": "Profile name used in multicloud/k8s plugin to identify Helm chart(s) where this mapping is providing override values.",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "k8s-rb-profile-name",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  }
-]
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/base_template-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/base_template-template.vtl
deleted file mode 100644 (file)
index fcee846..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-{
-  "capability-data": [
-    {
-      "capability-name": "generate-name",
-      "key-mapping": [
-        {
-          "output-key-mapping": [
-            {
-              "resource-name": "vf_module_name",
-              "resource-value": "${vf-module-name}"
-            }
-          ],
-          "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_TYPE",
-              "param-value": "vfmt"
-            },
-            {
-              "param-name": "VF_MODULE_LABEL",
-              "param-value": "${vf-module-label}"
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "capability-name": "aai-vf-module-put",
-      "key-mapping": [
-        {
-          "output-key-mapping": [
-            {
-              "resource-name": "aai-vf-module-put",
-              "resource-value": ""
-            }
-          ]
-        }
-      ]
-    }
-  ],
-  "resource-accumulator-resolved-data": [
-    {
-      "param-name": "vf-module-model-invariant-uuid",
-      "param-value": "${vf-module-model-invariant-uuid}"
-    },
-    {
-      "param-name": "vf-module-model-customization-uuid",
-      "param-value": "${vf-module-model-customization-uuid}"
-    },
-    {
-      "param-name": "vf-module-id",
-      "param-value": "${vf-module-id}"
-    },
-    {
-      "param-name": "k8s-rb-profile-name",
-      "param-value": "profile-${vf-module-id}"
-    },
-    {
-      "param-name": "k8s-rb-profile-namespace",
-      "param-value": "ns-${vf-module-id}"
-    },
-    {
-      "param-name": "vnf-id",
-      "param-value": "${vnf-id}"
-    }
-  ]
-}
index e5cc9b6..9bfa103 100644 (file)
@@ -1,42 +1,42 @@
-[
-  {
-    "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
-  }
-]
+[\r
+  {\r
+    "name": "service-instance-id",\r
+    "property": {\r
+      "description": "",\r
+      "required": false,\r
+      "type": "string",\r
+      "status": "",\r
+      "constraints": [\r
+        {}\r
+      ],\r
+      "entry_schema": {\r
+        "type": ""\r
+      }\r
+    },\r
+    "input-param": false,\r
+    "dictionary-name": "service-instance-id",\r
+    "dictionary-source": "input",\r
+    "dependencies": [],\r
+    "version": 0\r
+  },\r
+  {\r
+    "name": "vnf-id",\r
+    "property": {\r
+      "description": "",\r
+      "required": false,\r
+      "type": "string",\r
+      "status": "",\r
+      "constraints": [\r
+        {}\r
+      ],\r
+      "entry_schema": {\r
+        "type": ""\r
+      }\r
+    },\r
+    "input-param": false,\r
+    "dictionary-name": "vnf-id",\r
+    "dictionary-source": "input",\r
+    "dependencies": [],\r
+    "version": 0\r
+  }\r
+]
\ No newline at end of file
index b45b814..822626c 100644 (file)
@@ -1,12 +1,12 @@
-{
-  "resource-accumulator-resolved-data": [
-    {
-      "param-name": "service-instance-id",
-      "param-value": "${service-instance-id}"
-    },
-    {
-      "param-name": "vnf-id",
-      "param-value": "${vnf-id}"
-    }
-  ]
-}
+{\r
+    "resource-accumulator-resolved-data": [\r
+               {\r
+            "param-name": "service-instance-id",\r
+            "param-value": "${service-instance-id}"\r
+        },\r
+               {\r
+            "param-name": "vnf-id",\r
+            "param-value": "${vnf-id}"\r
+        }      \r
+       ]\r
+}      
\ No newline at end of file
index 104f6e9..a3b4e35 100644 (file)
@@ -1,56 +1,56 @@
-[
-  {
-    "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": "supportedNssai",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string",
-      "default": "hello"
-    },
-    "input-param": false,
-    "dictionary-name": "supportedNssai",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  }
-]
+[\r
+  {\r
+    "name": "service-instance-id",\r
+    "property": {\r
+      "description": "",\r
+      "required": false,\r
+      "type": "string",\r
+      "status": "",\r
+      "constraints": [\r
+        {}\r
+      ],\r
+      "entry_schema": {\r
+        "type": ""\r
+      }\r
+    },\r
+    "input-param": false,\r
+    "dictionary-name": "service-instance-id",\r
+    "dictionary-source": "input",\r
+    "dependencies": [],\r
+    "version": 0\r
+  },\r
+  {\r
+    "name": "vnf-id",\r
+    "property": {\r
+      "description": "",\r
+      "required": false,\r
+      "type": "string",\r
+      "status": "",\r
+      "constraints": [\r
+        {}\r
+      ],\r
+      "entry_schema": {\r
+        "type": ""\r
+      }\r
+    },\r
+    "input-param": false,\r
+    "dictionary-name": "vnf-id",\r
+    "dictionary-source": "input",\r
+    "dependencies": [],\r
+    "version": 0\r
+  },\r
+  {\r
+       "name": "supportedNssai",\r
+       "property": {\r
+               "description": "",\r
+               "required": false,\r
+               "type": "string",\r
+               "default": "hello"\r
+       },\r
+       "input-param": false,\r
+       "dictionary-name": "supportedNssai",\r
+       "dictionary-source": "input",\r
+       "dependencies": [],\r
+       "version": 0\r
+  }\r
+]
\ No newline at end of file
index 1967a20..afda3c7 100644 (file)
@@ -1,16 +1,16 @@
-{
-  "resource-accumulator-resolved-data": [
-    {
-      "param-name": "service-instance-id",
-      "param-value": "${service-instance-id}"
-    },
-    {
-      "param-name": "vnf-id",
-      "param-value": "${vnf-id}"
-    },
-    {
-      "param-name": "supportedNssai",
-      "param-value": "${supportedNssai}"
-    }
-  ]
-}
+{\r
+    "resource-accumulator-resolved-data": [\r
+               {\r
+            "param-name": "service-instance-id",\r
+            "param-value": "${service-instance-id}"\r
+        },\r
+               {\r
+            "param-name": "vnf-id",\r
+            "param-value": "${vnf-id}"\r
+        },\r
+               {\r
+            "param-name": "supportedNssai",\r
+            "param-value": "${supportedNssai}"\r
+        }              \r
+       ]\r
+}      
\ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/config-deploy-aai-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/config-deploy-aai-mapping.json
new file mode 100644 (file)
index 0000000..9dc90f2
--- /dev/null
@@ -0,0 +1,63 @@
+[\r
+    {\r
+        "name": "service-instance-id",\r
+        "property": {\r
+            "description": "",\r
+            "required": false,\r
+            "type": "string",\r
+            "status": "",\r
+            "constraints": [\r
+                {}\r
+            ],\r
+            "entry_schema": {\r
+                "type": ""\r
+            }\r
+        },\r
+        "input-param": false,\r
+        "dictionary-name": "service-instance-id",\r
+        "dictionary-source": "input",\r
+        "dependencies": [],\r
+        "version": 0\r
+    },\r
+    {\r
+        "name": "vnf-id",\r
+        "property": {\r
+            "description": "",\r
+            "required": false,\r
+            "type": "string"\r
+        },\r
+        "input-param": false,\r
+        "dictionary-name": "vnf-id",\r
+        "dictionary-source": "input",\r
+        "dependencies": [],\r
+        "version": 0\r
+    },\r
+    {\r
+        "name": "vf-modules-list-sdnc",\r
+        "property": {\r
+            "description": "list of modules associated with vnf from MDSAL",\r
+            "type": "json"\r
+        },\r
+        "input-param": false,\r
+        "dictionary-name": "vf-modules-list",\r
+        "dictionary-source": "sdnc",\r
+        "dependencies": [\r
+            "service-instance-id",\r
+            "vnf-id"\r
+        ]\r
+    },\r
+    {\r
+        "name": "vf-modules-list-aai",\r
+        "property": {\r
+            "description": "list of modules associated with vnf from AAI",\r
+            "type": "json"\r
+        },\r
+        "input-param": false,\r
+        "dictionary-name": "vf-modules-list",\r
+        "dictionary-source": "aai-data",\r
+        "dependencies": [\r
+            "service-instance-id",\r
+            "vnf-id"\r
+        ]\r
+    }\r
+]\r
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/config-deploy-aai-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/config-deploy-aai-template.vtl
new file mode 100644 (file)
index 0000000..9d4e340
--- /dev/null
@@ -0,0 +1 @@
+${vf-modules-list-aai}
\ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/config-deploy-sdnc-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/config-deploy-sdnc-mapping.json
new file mode 100644 (file)
index 0000000..9dc90f2
--- /dev/null
@@ -0,0 +1,63 @@
+[\r
+    {\r
+        "name": "service-instance-id",\r
+        "property": {\r
+            "description": "",\r
+            "required": false,\r
+            "type": "string",\r
+            "status": "",\r
+            "constraints": [\r
+                {}\r
+            ],\r
+            "entry_schema": {\r
+                "type": ""\r
+            }\r
+        },\r
+        "input-param": false,\r
+        "dictionary-name": "service-instance-id",\r
+        "dictionary-source": "input",\r
+        "dependencies": [],\r
+        "version": 0\r
+    },\r
+    {\r
+        "name": "vnf-id",\r
+        "property": {\r
+            "description": "",\r
+            "required": false,\r
+            "type": "string"\r
+        },\r
+        "input-param": false,\r
+        "dictionary-name": "vnf-id",\r
+        "dictionary-source": "input",\r
+        "dependencies": [],\r
+        "version": 0\r
+    },\r
+    {\r
+        "name": "vf-modules-list-sdnc",\r
+        "property": {\r
+            "description": "list of modules associated with vnf from MDSAL",\r
+            "type": "json"\r
+        },\r
+        "input-param": false,\r
+        "dictionary-name": "vf-modules-list",\r
+        "dictionary-source": "sdnc",\r
+        "dependencies": [\r
+            "service-instance-id",\r
+            "vnf-id"\r
+        ]\r
+    },\r
+    {\r
+        "name": "vf-modules-list-aai",\r
+        "property": {\r
+            "description": "list of modules associated with vnf from AAI",\r
+            "type": "json"\r
+        },\r
+        "input-param": false,\r
+        "dictionary-name": "vf-modules-list",\r
+        "dictionary-source": "aai-data",\r
+        "dependencies": [\r
+            "service-instance-id",\r
+            "vnf-id"\r
+        ]\r
+    }\r
+]\r
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/config-deploy-sdnc-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/config-deploy-sdnc-template.vtl
new file mode 100644 (file)
index 0000000..ae6efa7
--- /dev/null
@@ -0,0 +1 @@
+${vf-modules-list-sdnc}
\ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/helm_amf-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/helm_amf-mapping.json
new file mode 100644 (file)
index 0000000..aee7200
--- /dev/null
@@ -0,0 +1,152 @@
+[
+    {
+        "name": "vf-module-model-invariant-uuid",
+        "property": {
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vf-module-model-invariant-uuid",
+        "dictionary-source": "processor-db",
+        "dependencies": [
+            "vf-module-model-customization-uuid"
+        ]
+    },
+        {
+        "name": "fivegc0_snssai",
+        "property": {
+            "description": "",
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "fivegc0_snssai",
+        "dictionary-source": "sdnc",
+        "dependencies": [
+            "service-instance-id",
+            "vnf-id"
+        ]
+    },
+    {
+        "name": "vf-module-model-version",
+        "property": {
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vf-module-model-version",
+        "dictionary-source": "processor-db",
+        "dependencies": [
+            "vf-module-model-customization-uuid"
+        ]
+    },
+    {
+        "name": "management-prefix-id",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "management-prefix-id",
+        "dictionary-source": "processor-db",
+        "dependencies": [],
+        "version": 0
+    },
+    {
+        "name": "service-instance-id",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "service-instance-id",
+        "dictionary-source": "input",
+        "dependencies": [],
+        "version": 0
+    },
+    {
+        "name": "vf-module-id",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vf-module-id",
+        "dictionary-source": "input",
+        "dependencies": [],
+        "version": 0
+    },
+    {
+        "name": "vf-module-label",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "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"
+        },
+        "input-param": false,
+        "dictionary-name": "vf-module-model-customization-uuid",
+        "dictionary-source": "input",
+        "dependencies": [],
+        "version": 0
+    },
+    {
+        "name": "vf-naming-policy",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vf-naming-policy",
+        "dictionary-source": "sdnc",
+        "dependencies": [
+            "service-instance-id",
+            "vnf-id"
+        ],
+        "version": 0
+    },
+    {
+        "name": "vnf-id",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vnf-id",
+        "dictionary-source": "input",
+        "dependencies": [],
+        "version": 0
+    },
+    {
+        "name": "vnf_name",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vnf_name",
+        "dictionary-source": "sdnc",
+        "dependencies": [
+            "service-instance-id",
+            "vnf-id"
+        ],
+        "version": 0
+    }
+]
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/helm_amf-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/helm_amf-template.vtl
new file mode 100644 (file)
index 0000000..6cc18ff
--- /dev/null
@@ -0,0 +1,138 @@
+{
+    "capability-data": [
+        {
+            "capability-name": "generate-name",
+            "key-mapping": [
+                {
+                    "output-key-mapping": [
+                        {
+                            "resource-name": "vf_module_name",
+                            "resource-value": "${vf-module-name}"
+                        }
+                    ],
+                    "payload": [
+                        {
+                            "param-name": "VF_MODULE_TYPE",
+                            "param-value": "vfmt"
+                        },
+                        {
+                            "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}"
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "capability-name": "aai-vf-module-put",
+            "key-mapping": [
+                {
+                    "output-key-mapping": [
+                        {
+                            "resource-name": "aai-vf-module-put",
+                            "resource-value": ""
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "capability-name": "unresolved-composite-data",
+            "key-mapping": [
+                {
+                    "output-key-mapping": [
+                        {
+                            "resource-name": "config.amfName",
+                            "resource-value": "amf"
+                        }
+                    ]
+                }
+            ]
+        },
+               {
+            "capability-name": "unresolved-composite-data",
+            "key-mapping": [
+                {
+                    "output-key-mapping": [
+                        {
+                            "resource-name": "amfName",
+                            "resource-value": "amf"
+                        }
+                    ]
+                }
+            ]
+        }
+    ],
+    "resource-accumulator-resolved-data": [
+        {
+            "param-name": "vf-module-model-invariant-uuid",
+            "param-value": "${vf-module-model-invariant-uuid}"
+        },
+           {
+            "param-name": "vf-module-label",
+            "param-value": "${vf-module-label}"
+        },
+        {
+            "param-name": "vf-module-model-version",
+            "param-value": "${vf-module-model-version}"
+        },
+               {
+            "param-name": "vnf-id",
+            "param-value": "${vnf-id}"
+        },
+               {
+            "param-name": "vf-module-id",
+            "param-value": "${vf-module-id}"
+        },
+               {
+            "param-name": "k8s-rb-profile-name",
+            "param-value": "profile-${vf-module-id}"
+        },
+        {
+            "param-name": "k8s-rb-profile-namespace",
+            "param-value": "ns-${vf-module-id}"
+        },
+          {
+            "param-name": "k8s-rb-instance-release-name",
+            "param-value": "release-${vf-module-id}"
+        },
+         {
+            "param-name": "vf-module-model-customization-uuid",
+            "param-value": "${vf-module-model-customization-uuid}"
+        },
+               {
+            "param-name": "fivegc0_snssai",
+            "param-value": "${fivegc0_snssai}"
+        },
+        {
+            "param-name": "config.supportedNssai.sNssai.snssai",
+            "param-value": "${fivegc0_snssai}"
+        }
+               
+               
+    ]
+}
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/helm_smf-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/helm_smf-mapping.json
new file mode 100644 (file)
index 0000000..c8b82ea
--- /dev/null
@@ -0,0 +1,153 @@
+[
+    {
+        "name": "vf-module-model-invariant-uuid",
+        "property": {
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vf-module-model-invariant-uuid",
+        "dictionary-source": "processor-db",
+        "dependencies": [
+            "vf-module-model-customization-uuid"
+        ]
+    },
+        {
+        "name": "fivegc0_snssai",
+        "property": {
+            "description": "",
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "fivegc0_snssai",
+        "dictionary-source": "sdnc",
+        "dependencies": [
+            "service-instance-id",
+            "vnf-id"
+        ]
+    },
+       
+    {
+        "name": "vf-module-model-version",
+        "property": {
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vf-module-model-version",
+        "dictionary-source": "processor-db",
+        "dependencies": [
+            "vf-module-model-customization-uuid"
+        ]
+    },
+    {
+        "name": "management-prefix-id",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "management-prefix-id",
+        "dictionary-source": "processor-db",
+        "dependencies": [],
+        "version": 0
+    },
+    {
+        "name": "service-instance-id",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "service-instance-id",
+        "dictionary-source": "input",
+        "dependencies": [],
+        "version": 0
+    },
+    {
+        "name": "vf-module-id",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vf-module-id",
+        "dictionary-source": "input",
+        "dependencies": [],
+        "version": 0
+    },
+    {
+        "name": "vf-module-label",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "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"
+        },
+        "input-param": false,
+        "dictionary-name": "vf-module-model-customization-uuid",
+        "dictionary-source": "input",
+        "dependencies": [],
+        "version": 0
+    },
+    {
+        "name": "vf-naming-policy",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vf-naming-policy",
+        "dictionary-source": "sdnc",
+        "dependencies": [
+            "service-instance-id",
+            "vnf-id"
+        ],
+        "version": 0
+    },
+    {
+        "name": "vnf-id",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vnf-id",
+        "dictionary-source": "input",
+        "dependencies": [],
+        "version": 0
+    },
+    {
+        "name": "vnf_name",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vnf_name",
+        "dictionary-source": "sdnc",
+        "dependencies": [
+            "service-instance-id",
+            "vnf-id"
+        ],
+        "version": 0
+    }
+]
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/helm_smf-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/helm_smf-template.vtl
new file mode 100644 (file)
index 0000000..ba834e8
--- /dev/null
@@ -0,0 +1,138 @@
+{
+    "capability-data": [
+        {
+            "capability-name": "generate-name",
+            "key-mapping": [
+                {
+                    "output-key-mapping": [
+                        {
+                            "resource-name": "vf_module_name",
+                            "resource-value": "${vf-module-name}"
+                        }
+                    ],
+                    "payload": [
+                        {
+                            "param-name": "VF_MODULE_TYPE",
+                            "param-value": "vfmt"
+                        },
+                        {
+                            "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}"
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "capability-name": "aai-vf-module-put",
+            "key-mapping": [
+                {
+                    "output-key-mapping": [
+                        {
+                            "resource-name": "aai-vf-module-put",
+                            "resource-value": ""
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "capability-name": "unresolved-composite-data",
+            "key-mapping": [
+                {
+                    "output-key-mapping": [
+                        {
+                            "resource-name": "config.smfName",
+                            "resource-value": "smf"
+                        }
+                    ]
+                }
+            ]
+        },
+               {
+            "capability-name": "unresolved-composite-data",
+            "key-mapping": [
+                {
+                    "output-key-mapping": [
+                        {
+                            "resource-name": "smfName",
+                            "resource-value": "smf"
+                        }
+                    ]
+                }
+            ]
+        }
+    ],
+    "resource-accumulator-resolved-data": [
+        {
+            "param-name": "vf-module-model-invariant-uuid",
+            "param-value": "${vf-module-model-invariant-uuid}"
+        },
+        {
+            "param-name": "vf-module-model-version",
+            "param-value": "${vf-module-model-version}"
+        },
+               {
+            "param-name": "vnf-id",
+            "param-value": "${vnf-id}"
+        },
+               {
+            "param-name": "vf-module-id",
+            "param-value": "${vf-module-id}"
+        },
+         {
+            "param-name": "vf-module-label",
+            "param-value": "${vf-module-label}"
+        },
+       
+               {
+            "param-name": "k8s-rb-profile-name",
+            "param-value": "profile-${vf-module-id}"
+        },
+         {
+            "param-name": "k8s-rb-instance-release-name",
+            "param-value": "release-${vf-module-id}"
+        },
+        {
+            "param-name": "vf-module-model-customization-uuid",
+            "param-value": "${vf-module-model-customization-uuid}"
+        },
+        {
+            "param-name": "k8s-rb-profile-namespace",
+            "param-value": "ns-${vf-module-id}"
+        },
+               
+               {
+            "param-name": "fivegc0_snssai",
+            "param-value": "${fivegc0_snssai}"
+        },
+        {
+            "param-name": "config.supportedNssai.sNssai.snssai",
+            "param-value": "${fivegc0_snssai}"
+        }
+    ]
+}
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/helm_upf-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/helm_upf-mapping.json
new file mode 100644 (file)
index 0000000..c8b82ea
--- /dev/null
@@ -0,0 +1,153 @@
+[
+    {
+        "name": "vf-module-model-invariant-uuid",
+        "property": {
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vf-module-model-invariant-uuid",
+        "dictionary-source": "processor-db",
+        "dependencies": [
+            "vf-module-model-customization-uuid"
+        ]
+    },
+        {
+        "name": "fivegc0_snssai",
+        "property": {
+            "description": "",
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "fivegc0_snssai",
+        "dictionary-source": "sdnc",
+        "dependencies": [
+            "service-instance-id",
+            "vnf-id"
+        ]
+    },
+       
+    {
+        "name": "vf-module-model-version",
+        "property": {
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vf-module-model-version",
+        "dictionary-source": "processor-db",
+        "dependencies": [
+            "vf-module-model-customization-uuid"
+        ]
+    },
+    {
+        "name": "management-prefix-id",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "management-prefix-id",
+        "dictionary-source": "processor-db",
+        "dependencies": [],
+        "version": 0
+    },
+    {
+        "name": "service-instance-id",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "service-instance-id",
+        "dictionary-source": "input",
+        "dependencies": [],
+        "version": 0
+    },
+    {
+        "name": "vf-module-id",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vf-module-id",
+        "dictionary-source": "input",
+        "dependencies": [],
+        "version": 0
+    },
+    {
+        "name": "vf-module-label",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "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"
+        },
+        "input-param": false,
+        "dictionary-name": "vf-module-model-customization-uuid",
+        "dictionary-source": "input",
+        "dependencies": [],
+        "version": 0
+    },
+    {
+        "name": "vf-naming-policy",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vf-naming-policy",
+        "dictionary-source": "sdnc",
+        "dependencies": [
+            "service-instance-id",
+            "vnf-id"
+        ],
+        "version": 0
+    },
+    {
+        "name": "vnf-id",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vnf-id",
+        "dictionary-source": "input",
+        "dependencies": [],
+        "version": 0
+    },
+    {
+        "name": "vnf_name",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vnf_name",
+        "dictionary-source": "sdnc",
+        "dependencies": [
+            "service-instance-id",
+            "vnf-id"
+        ],
+        "version": 0
+    }
+]
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/helm_upf-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/helm_upf-template.vtl
new file mode 100644 (file)
index 0000000..a62807a
--- /dev/null
@@ -0,0 +1,141 @@
+{
+    "capability-data": [
+        {
+            "capability-name": "generate-name",
+            "key-mapping": [
+                {
+                    "output-key-mapping": [
+                        {
+                            "resource-name": "vf_module_name",
+                            "resource-value": "${vf-module-name}"
+                        }
+                    ],
+                    "payload": [
+                        {
+                            "param-name": "VF_MODULE_TYPE",
+                            "param-value": "vfmt"
+                        },
+                        {
+                            "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}"
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "capability-name": "aai-vf-module-put",
+            "key-mapping": [
+                {
+                    "output-key-mapping": [
+                        {
+                            "resource-name": "aai-vf-module-put",
+                            "resource-value": ""
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "capability-name": "unresolved-composite-data",
+            "key-mapping": [
+                {
+                    "output-key-mapping": [
+                        {
+                            "resource-name": "config.upfName",
+                            "resource-value": "upf"
+                        }
+                    ]
+                }
+            ]
+        },
+               {
+            "capability-name": "unresolved-composite-data",
+            "key-mapping": [
+                {
+                    "output-key-mapping": [
+                        {
+                            "resource-name": "upfName",
+                            "resource-value": "upf"
+                        }
+                    ]
+                }
+            ]
+        }
+    ],
+    "resource-accumulator-resolved-data": [
+        {
+            "param-name": "vf-module-model-invariant-uuid",
+            "param-value": "${vf-module-model-invariant-uuid}"
+        },
+        {
+            "param-name": "vf-module-model-version",
+            "param-value": "${vf-module-model-version}"
+        },
+               {
+            "param-name": "vnf-id",
+            "param-value": "${vnf-id}"
+        },
+         {
+            "param-name": "vf-module-label",
+            "param-value": "${vf-module-label}"
+        },
+       
+               
+               {
+            "param-name": "vf-module-id",
+            "param-value": "${vf-module-id}"
+        },
+               {
+            "param-name": "k8s-rb-profile-name",
+            "param-value": "profile-${vf-module-id}"
+        },
+        {
+            "param-name": "k8s-rb-profile-namespace",
+            "param-value": "ns-${vf-module-id}"
+        },
+         {
+            "param-name": "k8s-rb-instance-release-name",
+            "param-value": "release-${vf-module-id}"
+        },
+               
+          {
+            "param-name": "vf-module-model-customization-uuid",
+            "param-value": "${vf-module-model-customization-uuid}"
+        },
+               {
+            "param-name": "fivegc0_snssai",
+            "param-value": "${fivegc0_snssai}"
+        },
+        {
+            "param-name": "config.supportedNssai.sNssai.snssai",
+            "param-value": "${fivegc0_snssai}"
+        }
+       
+    ]
+}
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/k8s-profiles/helm_smf-profile.tar.gz b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/k8s-profiles/helm_smf-profile.tar.gz
new file mode 100644 (file)
index 0000000..fbdcfb6
Binary files /dev/null and b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/k8s-profiles/helm_smf-profile.tar.gz differ
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/k8s-profiles/helm_upf-profile.tar.gz b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/k8s-profiles/helm_upf-profile.tar.gz
new file mode 100644 (file)
index 0000000..fbdcfb6
Binary files /dev/null and b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/k8s-profiles/helm_upf-profile.tar.gz differ
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/smf-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/smf-mapping.json
deleted file mode 100644 (file)
index 152b9c4..0000000
+++ /dev/null
@@ -1,261 +0,0 @@
-[
-  {
-    "name": "vf-module-model-invariant-uuid",
-    "property": {
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-module-model-invariant-uuid",
-    "dictionary-source": "processor-db",
-    "dependencies": [
-      "vf-module-model-customization-uuid"
-    ]
-  },
-  {
-    "name": "vf-module-model-version",
-    "property": {
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-module-model-version",
-    "dictionary-source": "processor-db",
-    "dependencies": [
-      "vf-module-model-customization-uuid"
-    ]
-  },
-  {
-    "name": "management-prefix-id",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "management-prefix-id",
-    "dictionary-source": "processor-db",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "service-instance-id",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "service-instance-id",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "vf-module-id",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-module-id",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "vf-module-label",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "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"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-module-model-customization-uuid",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "vf-naming-policy",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-naming-policy",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ],
-    "version": 0
-  },
-  {
-    "name": "vnf-id",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vnf-id",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "vnf_name",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vnf_name",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ],
-    "version": 0
-  },
-  {
-    "name": "k8s-rb-profile-namespace",
-    "property": {
-      "description": "K8s namespace to create helm chart for specified profile",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "k8s-rb-profile-namespace",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "k8s-rb-profile-name",
-    "property": {
-      "description": "Profile name used in multicloud/k8s plugin to identify Helm chart(s) where this mapping is providing override values.",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "k8s-rb-profile-name",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "fiveg0_snssai",
-    "property": {
-      "description": "",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "fiveg0_snssai",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "snssai",
-    "property": {
-      "description": "",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "snssai",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "config.test",
-    "property": {
-      "description": "",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "config.test",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "config.singletest",
-    "property": {
-      "description": "",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "singletest",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "config.smfName",
-    "property": {
-      "description": "smf name",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "config.smfName",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "smfName",
-    "property": {
-      "description": "smf name",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "smfName",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "config.supportedNssai.sNssai.snssai",
-    "property": {
-      "description": "supportedNssai.sNssai.snssai properties",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "config.supportedNssai.sNssai.snssai",
-    "dictionary-source": "sdnc",
-    "dependencies": []
-  }
-]
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/smf-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/smf-template.vtl
deleted file mode 100644 (file)
index c858d09..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-{
-  "capability-data": [
-    {
-      "capability-name": "generate-name",
-      "key-mapping": [
-        {
-          "output-key-mapping": [
-            {
-              "resource-name": "vf_module_name",
-              "resource-value": "${vf-module-name}"
-            }
-          ],
-          "payload": [
-            {
-              "param-name": "VF_MODULE_TYPE",
-              "param-value": "vfmt"
-            },
-            {
-              "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}"
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "capability-name": "aai-vf-module-put",
-      "key-mapping": [
-        {
-          "output-key-mapping": [
-            {
-              "resource-name": "aai-vf-module-put",
-              "resource-value": ""
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "capability-name": "unresolved-composite-data",
-      "key-mapping": [
-        {
-          "output-key-mapping": [
-            {
-              "resource-name": "config.smfName",
-              "resource-value": "${vf_module_name}"
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "capability-name": "unresolved-composite-data",
-      "key-mapping": [
-        {
-          "output-key-mapping": [
-            {
-              "resource-name": "smfName",
-              "resource-value": "${vf_module_name}"
-            }
-          ]
-        }
-      ]
-    }
-  ],
-  "resource-accumulator-resolved-data": [
-    {
-      "param-name": "vf-module-model-invariant-uuid",
-      "param-value": "${vf-module-model-invariant-uuid}"
-    },
-    {
-      "param-name": "vf-module-model-customization-uuid",
-      "param-value": "${vf-module-model-customization-uuid}"
-    },
-    {
-      "param-name": "vnf-id",
-      "param-value": "${vnf-id}"
-    },
-    {
-      "param-name": "config.test",
-      "param-value": "${config.test}"
-    },
-    {
-      "param-name": "vf-module-id",
-      "param-value": "${vf-module-id}"
-    },
-    {
-      "param-name": "k8s-rb-profile-name",
-      "param-value": "profile-${vf-module-id}"
-    },
-    {
-      "param-name": "k8s-rb-profile-namespace",
-      "param-value": "ns-${vf-module-id}"
-    },
-    {
-      "param-name": "fiveg0_snssai",
-      "param-value": "${fiveg0_snssai}"
-    },
-    {
-      "param-name": "snssai",
-      "param-value": "${fiveg0_snssai}"
-    },
-    {
-      "param-name": "config.supportedNssai.sNssai.snssai",
-      "param-value": "${fiveg0_snssai}"
-    },
-    {
-      "param-name": "config.singletest",
-      "param-value": "${singletest}"
-    }
-  ]
-}
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/upf-mapping.json b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/upf-mapping.json
deleted file mode 100644 (file)
index 2673457..0000000
+++ /dev/null
@@ -1,261 +0,0 @@
-[
-  {
-    "name": "vf-module-model-invariant-uuid",
-    "property": {
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-module-model-invariant-uuid",
-    "dictionary-source": "processor-db",
-    "dependencies": [
-      "vf-module-model-customization-uuid"
-    ]
-  },
-  {
-    "name": "vf-module-model-version",
-    "property": {
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-module-model-version",
-    "dictionary-source": "processor-db",
-    "dependencies": [
-      "vf-module-model-customization-uuid"
-    ]
-  },
-  {
-    "name": "management-prefix-id",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "management-prefix-id",
-    "dictionary-source": "processor-db",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "service-instance-id",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "service-instance-id",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "vf-module-id",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-module-id",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "vf-module-label",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "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"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-module-model-customization-uuid",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "vf-naming-policy",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vf-naming-policy",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ],
-    "version": 0
-  },
-  {
-    "name": "vnf-id",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vnf-id",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "vnf_name",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "vnf_name",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ],
-    "version": 0
-  },
-  {
-    "name": "k8s-rb-profile-namespace",
-    "property": {
-      "description": "K8s namespace to create helm chart for specified profile",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "k8s-rb-profile-namespace",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "k8s-rb-profile-name",
-    "property": {
-      "description": "Profile name used in multicloud/k8s plugin to identify Helm chart(s) where this mapping is providing override values.",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "k8s-rb-profile-name",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "fiveg0_snssai",
-    "property": {
-      "description": "",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "fiveg0_snssai",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "snssai",
-    "property": {
-      "description": "",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "snssai",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "config.test",
-    "property": {
-      "description": "",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "config.test",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "config.singletest",
-    "property": {
-      "description": "",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "singletest",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "config.upfName",
-    "property": {
-      "description": "upf name",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "config.upfName",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "upfName",
-    "property": {
-      "description": "upf name",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "upfName",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "config.supportedNssai.sNssai.snssai",
-    "property": {
-      "description": "supportedNssai.sNssai.snssai properties",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "config.supportedNssai.sNssai.snssai",
-    "dictionary-source": "sdnc",
-    "dependencies": []
-  }
-]
diff --git a/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/upf-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS/Templates/upf-template.vtl
deleted file mode 100644 (file)
index 75b1723..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-{
-  "capability-data": [
-    {
-      "capability-name": "generate-name",
-      "key-mapping": [
-        {
-          "output-key-mapping": [
-            {
-              "resource-name": "vf_module_name",
-              "resource-value": "${vf-module-name}"
-            }
-          ],
-          "payload": [
-            {
-              "param-name": "VF_MODULE_TYPE",
-              "param-value": "vfmt"
-            },
-            {
-              "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}"
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "capability-name": "aai-vf-module-put",
-      "key-mapping": [
-        {
-          "output-key-mapping": [
-            {
-              "resource-name": "aai-vf-module-put",
-              "resource-value": ""
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "capability-name": "unresolved-composite-data",
-      "key-mapping": [
-        {
-          "output-key-mapping": [
-            {
-              "resource-name": "config.upfName",
-              "resource-value": "${vf_module_name}"
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "capability-name": "unresolved-composite-data",
-      "key-mapping": [
-        {
-          "output-key-mapping": [
-            {
-              "resource-name": "upfName",
-              "resource-value": "${vf_module_name}"
-            }
-          ]
-        }
-      ]
-    }
-  ],
-  "resource-accumulator-resolved-data": [
-    {
-      "param-name": "vf-module-model-invariant-uuid",
-      "param-value": "${vf-module-model-invariant-uuid}"
-    },
-    {
-      "param-name": "vf-module-model-customization-uuid",
-      "param-value": "${vf-module-model-customization-uuid}"
-    },
-    {
-      "param-name": "vnf-id",
-      "param-value": "${vnf-id}"
-    },
-    {
-      "param-name": "config.test",
-      "param-value": "${config.test}"
-    },
-    {
-      "param-name": "vf-module-id",
-      "param-value": "${vf-module-id}"
-    },
-    {
-      "param-name": "k8s-rb-profile-name",
-      "param-value": "profile-${vf-module-id}"
-    },
-    {
-      "param-name": "k8s-rb-profile-namespace",
-      "param-value": "ns-${vf-module-id}"
-    },
-    {
-      "param-name": "fiveg0_snssai",
-      "param-value": "${fiveg0_snssai}"
-    },
-    {
-      "param-name": "snssai",
-      "param-value": "${fiveg0_snssai}"
-    },
-    {
-      "param-name": "config.supportedNssai.sNssai.snssai",
-      "param-value": "${fiveg0_snssai}"
-    },
-    {
-      "param-name": "config.singletest",
-      "param-value": "${singletest}"
-    }
-  ]
-}
index 69bb79b..926ca7e 100644 (file)
 [
-  {
-    "name": "vnf-id",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
+    {
+        "name": "vnf-id",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "vnf-id",
+        "dictionary-source": "input",
+        "dependencies": [],
+        "version": 0
     },
-    "input-param": false,
-    "dictionary-name": "vnf-id",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "vf-naming-policy",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string",
-      "default": "SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP"
+    {
+        "name": "vf-naming-policy",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string",
+            "default": "SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP"
+        },
+        "input-param": false,
+        "dictionary-name": "vf-naming-policy",
+        "dictionary-source": "default",
+        "dependencies": [],
+        "version": 0
     },
-    "input-param": false,
-    "dictionary-name": "vf-naming-policy",
-    "dictionary-source": "default",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "aic-cloud-region",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
+    {
+        "name": "aic-cloud-region",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "aic-cloud-region",
+        "dictionary-source": "input",
+        "dependencies": [],
+        "version": 0
     },
-    "input-param": false,
-    "dictionary-name": "aic-cloud-region",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "service-instance-id",
-    "property": {
-      "description": "",
-      "required": false,
-      "type": "string"
+    {
+        "name": "service-instance-id",
+        "property": {
+            "description": "",
+            "required": false,
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "service-instance-id",
+        "dictionary-source": "input",
+        "dependencies": [],
+        "version": 0
     },
-    "input-param": false,
-    "dictionary-name": "service-instance-id",
-    "dictionary-source": "input",
-    "dependencies": [],
-    "version": 0
-  },
-  {
-    "name": "fiveg0_snssai",
-    "property": {
-      "description": "",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "fiveg0_snssai",
-    "dictionary-source": "input",
-    "dependencies": []
-  },
-  {
-    "name": "snssai",
-    "property": {
-      "description": "",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "snssai",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "config.test",
-    "property": {
-      "description": "",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "config.test",
-    "dictionary-source": "input",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "config.singletest",
-    "property": {
-      "description": "",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "singletest",
-    "dictionary-source": "input",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "config.amfName",
-    "property": {
-      "description": "amf name",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "config.amfName",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "amfName",
-    "property": {
-      "description": "amf name",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "amfName",
-    "dictionary-source": "sdnc",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "config.smfName",
-    "property": {
-      "description": "smf name",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "config.smfName",
-    "dictionary-source": "input",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "smfName",
-    "property": {
-      "description": "smf name",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "smfName",
-    "dictionary-source": "input",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "config.upfName",
-    "property": {
-      "description": "upf name",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "config.upfName",
-    "dictionary-source": "input",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "upfName",
-    "property": {
-      "description": "upf name",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "upfName",
-    "dictionary-source": "input",
-    "dependencies": [
-      "service-instance-id",
-      "vnf-id"
-    ]
-  },
-  {
-    "name": "config.supportedNssai.sNssai.snssai",
-    "property": {
-      "description": "supportedNssai.sNssai.snssai properties",
-      "type": "string"
-    },
-    "input-param": false,
-    "dictionary-name": "config.supportedNssai.sNssai.snssai",
-    "dictionary-source": "sdnc",
-    "dependencies": []
-  }
+   {
+        "name": "fivegc0_snssai",
+        "property": {
+            "description": "",
+            "type": "string"
+        },
+        "input-param": false,
+        "dictionary-name": "fivegc0_snssai",
+        "dictionary-source": "input",
+        "dependencies": [ ]
+    }   
 ]
\ No newline at end of file
index 18ebc00..be5b6c0 100644 (file)
@@ -1,73 +1,62 @@
 {
-  "capability-data": [
-    {
-      "capability-name": "generate-name",
-      "key-mapping": [
+    "capability-data": [
         {
-          "output-key-mapping": [
-            {
-              "resource-name": "vnf_name",
-              "resource-value": "${vnf_name}"
-            }
-          ],
-          "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}"
-            }
-          ]
+            "capability-name": "generate-name",
+            "key-mapping": [
+                {
+                    "output-key-mapping": [
+                        {
+                            "resource-name": "vnf_name",
+                            "resource-value": "${vnf_name}"
+                        }
+                    ],
+                    "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}"
+                        }
+                    ]
+                }
+            ]
         }
-      ]
-    }
-  ],
-  "resource-accumulator-resolved-data": [
-    {
-      "param-name": "vnf-id",
-      "param-value": "${vnf-id}"
-    },
-    {
-      "param-name": "vf-naming-policy",
-      "param-value": "${vf-naming-policy}"
-    },
-    {
-      "param-name": "config.test",
-      "param-value": "${config.test}"
-    },
-    {
-      "param-name": "fiveg0_snssai",
-      "param-value": "${fiveg0_snssai}"
-    },
-    {
-      "param-name": "snssai",
-      "param-value": "${fiveg0_snssai}"
-    },
-    {
-      "param-name": "config.supportedNssai.sNssai.snssai",
-      "param-value": "${fiveg0_snssai}"
-    },
-    {
-      "param-name": "config.singletest",
-      "param-value": "${singletest}"
-    }
-  ]
+    ],
+    "resource-accumulator-resolved-data": [
+           {
+            "param-name": "vnf-id",
+            "param-value": "${vnf-id}"
+        },
+        {
+            "param-name": "vf-naming-policy",
+            "param-value": "${vf-naming-policy}"
+        },
+               
+               {
+            "param-name": "fivegc0_snssai",
+            "param-value": "${fivegc0_snssai}"
+        },
+        {
+            "param-name": "config.supportedNssai.sNssai.snssai",
+            "param-value": "${fivegc0_snssai}"
+        }
+    ]
 }