\r
String formattedServiceTemplateContent = TransformationUtils.getJson(serviceTemplate, true);\r
\r
- FileUtils.writeStringToFile(new File("src/test/resources/service_templates/_default.json"),\r
+ FileUtils.writeStringToFile(new File("src/test/resources/service_templates/default.json"),\r
formattedServiceTemplateContent, Charset.defaultCharset());\r
\r
- createNetconfdownloadNodeTemplate(serviceTemplate);\r
- createRestconfdownloadNodeTemplate(serviceTemplate);\r
- // createResourceAssignmentNodeTemplate(serviceTemplate);\r
createVrrNodeTemplate(serviceTemplate);\r
createDictionarySchema();\r
\r
\r
}\r
\r
- public void createNetconfdownloadNodeTemplate(ServiceTemplate serviceTemplate) throws IOException {\r
- if (serviceTemplate != null) {\r
- ServiceTemplate workingServiceTemplate = new ServiceTemplate();\r
- workingServiceTemplate.setMetadata(serviceTemplate.getMetadata());\r
-\r
- Map<String, DataType> data_types = new HashMap<String, DataType>();\r
- data_types.put("datatype-property", serviceTemplate.getDataTypes().get("datatype-property"));\r
- data_types.put("datatype-resource-assignment",\r
- serviceTemplate.getDataTypes().get("datatype-resource-assignment"));\r
- workingServiceTemplate.setDataTypes(data_types);\r
-\r
- TopologyTemplate topology_template = new TopologyTemplate();\r
- Map<String, NodeTemplate> node_templates = new HashMap<String, NodeTemplate>();\r
-\r
- Map<String, NodeTemplate> node_Templates = serviceTemplate.getTopologyTemplate().getNodeTemplates();\r
-\r
- node_templates.put("activate-action", node_Templates.get("activate-action"));\r
- node_templates.put("base-config-template", node_Templates.get("base-config-template"));\r
- node_templates.put("vrr-netconf-device", node_Templates.get("vrr-netconf-device"));\r
- node_templates.put("get-netconf-config", node_Templates.get("get-netconf-config"));\r
- node_templates.put("edit-netconf-config", node_Templates.get("edit-netconf-config"));\r
- node_templates.put("transaction-netconf-baseconfig", node_Templates.get("transaction-netconf-baseconfig"));\r
-\r
- topology_template.setNodeTemplates(node_templates);\r
- topology_template.setInputs(serviceTemplate.getTopologyTemplate().getInputs());\r
-\r
- Map<String, NodeType> node_types = new HashMap<String, NodeType>();\r
- node_types.put("dg-activate-netconf", serviceTemplate.getNodeTypes().get("dg-activate-netconf"));\r
- node_types.put("artifact-config-template", serviceTemplate.getNodeTypes().get("artifact-config-template"));\r
- node_types.put("component-transaction-netconf",\r
- serviceTemplate.getNodeTypes().get("component-transaction-netconf"));\r
- node_types.put("component-netconf-edit", serviceTemplate.getNodeTypes().get("component-netconf-edit"));\r
- node_types.put("component-netconf-get", serviceTemplate.getNodeTypes().get("component-netconf-get"));\r
- node_types.put("vnf-netconf-device", serviceTemplate.getNodeTypes().get("vnf-netconf-device"));\r
-\r
- workingServiceTemplate.setNodeTypes(node_types);\r
- workingServiceTemplate.setTopologyTemplate(topology_template);\r
-\r
- String workingServiceTemplateContent = TransformationUtils.getJson(workingServiceTemplate, true);\r
-\r
- FileUtils.writeStringToFile(new File("src/test/resources/service_templates/download_config.json"),\r
- workingServiceTemplateContent, Charset.defaultCharset());\r
-\r
- File lcmFile = new File(\r
- "../../../adaptors/netconf-adaptor/provider/src/test/resources/service_templates/download_config.json");\r
- FileUtils.writeStringToFile(lcmFile, workingServiceTemplateContent, Charset.defaultCharset());\r
-\r
- }\r
- }\r
-\r
- public void createRestconfdownloadNodeTemplate(ServiceTemplate serviceTemplate) throws IOException {\r
- if (serviceTemplate != null) {\r
- ServiceTemplate workingServiceTemplate = new ServiceTemplate();\r
- workingServiceTemplate.setMetadata(serviceTemplate.getMetadata());\r
-\r
- Map<String, DataType> data_types = new HashMap<String, DataType>();\r
- data_types.put("datatype-property", serviceTemplate.getDataTypes().get("datatype-property"));\r
- data_types.put("datatype-resource-assignment",\r
- serviceTemplate.getDataTypes().get("datatype-resource-assignment"));\r
- workingServiceTemplate.setDataTypes(data_types);\r
-\r
- TopologyTemplate topology_template = new TopologyTemplate();\r
- Map<String, NodeTemplate> node_templates = new HashMap<String, NodeTemplate>();\r
-\r
- Map<String, NodeTemplate> node_Templates = serviceTemplate.getTopologyTemplate().getNodeTemplates();\r
- node_templates.put("activate-restconf-action", node_Templates.get("activate-restconf-action"));\r
- node_templates.put("base-config-template", node_Templates.get("base-config-template"));\r
- node_templates.put("vrr-restconf-device", node_Templates.get("vrr-restconf-device"));\r
- node_templates.put("edit-restconf-config", node_Templates.get("edit-restconf-config"));\r
- node_templates.put("transaction-restconf-baseconfig",\r
- node_Templates.get("transaction-restconf-baseconfig"));\r
-\r
- topology_template.setNodeTemplates(node_templates);\r
- topology_template.setInputs(serviceTemplate.getTopologyTemplate().getInputs());\r
-\r
- Map<String, NodeType> node_types = new HashMap<String, NodeType>();\r
- node_types.put("dg-activate-restconf", serviceTemplate.getNodeTypes().get("dg-activate-restconf"));\r
- node_types.put("artifact-config-template", serviceTemplate.getNodeTypes().get("artifact-config-template"));\r
- node_types.put("component-transaction-restconf",\r
- serviceTemplate.getNodeTypes().get("component-transaction-restconf"));\r
- node_types.put("component-restconf", serviceTemplate.getNodeTypes().get("component-restconf"));\r
- node_types.put("vnf-restconf-device", serviceTemplate.getNodeTypes().get("vnf-restconf-device"));\r
-\r
- workingServiceTemplate.setNodeTypes(node_types);\r
- workingServiceTemplate.setTopologyTemplate(topology_template);\r
-\r
- String workingServiceTemplateContent = TransformationUtils.getJson(workingServiceTemplate, true);\r
-\r
- FileUtils.writeStringToFile(new File("src/test/resources/service_templates/restconf_download_config.json"),\r
- workingServiceTemplateContent, Charset.defaultCharset());\r
-\r
- File lcmFile = new File(\r
- "../../../adaptors/netconf-adaptor/provider/src/test/resources/service_templates/restconf_download_config.json");\r
- FileUtils.writeStringToFile(lcmFile, workingServiceTemplateContent, Charset.defaultCharset());\r
-\r
- }\r
-\r
- }\r
-\r
public void createResourceAssignmentNodeTemplate(ServiceTemplate serviceTemplate) throws IOException {\r
if (serviceTemplate != null) {\r
ServiceTemplate workingServiceTemplate = new ServiceTemplate();\r
{\r
- "tosca_definitions_version": "sdn_config_1_0_0",\r
- "metadata": {\r
- "author": "ks220y@att.com",\r
- "service-template-name": "VRR-baseconfiguration",\r
- "service-template-version": "1.0.0",\r
- "release": "1802",\r
- "service-type": "AVPN",\r
- "vnf-type": "VRR"\r
- },\r
- "topology_template": {\r
- "inputs": {\r
- "request-id": {\r
- "required": true,\r
- "type": "string"\r
- },\r
- "service-instance-id": {\r
- "required": true,\r
- "type": "string"\r
- },\r
- "action-name": {\r
- "required": true,\r
- "type": "string"\r
- },\r
- "scope-type": {\r
- "required": true,\r
- "type": "string"\r
- },\r
- "hostname": {\r
- "required": true,\r
- "type": "string"\r
- }\r
- },\r
- "node_templates": {\r
- "base-config-template": {\r
- "type": "artifact-config-template",\r
- "properties": {\r
- "action-names": [\r
- "resource-assignment-action"\r
- ]\r
- },\r
- "capabilities": {\r
- "content": {\r
- "properties": {\r
- "content": "db://base-config-template"\r
- }\r
- },\r
- "mapping": {\r
- "properties": {\r
- "mapping": [\r
- {\r
- "name": "vnf-id",\r
- "input-param": true,\r
- "property": {\r
- "type": "string",\r
- "required": true\r
- },\r
- "dictionary-name": "vnf-id",\r
- "dictionary-source": "input"\r
- },\r
- {\r
- "name": "group-name",\r
- "input-param": true,\r
- "property": {\r
- "type": "string",\r
- "required": true\r
- },\r
- "dictionary-name": "group-name",\r
- "dictionary-source": "input"\r
- }\r
- ]\r
- }\r
- }\r
- }\r
- },\r
- "licence-template": {\r
- "type": "artifact-config-template",\r
- "properties": {\r
- "action-names": [\r
- "resource-assignment-action"\r
- ]\r
- },\r
- "capabilities": {\r
- "content": {\r
- "properties": {\r
- "content": "db://licence-template"\r
- }\r
- },\r
- "mapping": {\r
- "properties": {\r
- "mapping": [\r
- {\r
- "name": "bundle-id",\r
- "input-param": true,\r
- "property": {\r
- "type": "string"\r
- },\r
- "dictionary-name": "bundle-id",\r
- "dictionary-source": "input"\r
- },\r
- {\r
- "name": "bundle-mac",\r
- "input-param": true,\r
- "property": {\r
- "type": "string",\r
- "required": true\r
- },\r
- "dictionary-name": "bundle-mac",\r
- "dictionary-source": "input"\r
- }\r
- ]\r
- }\r
- }\r
- }\r
- },\r
- "resource-assignment-action": {\r
- "type": "dg-resource-assignment",\r
- "interfaces": {\r
- "CONFIG": {\r
- "operations": {\r
- "ResourceAssignment": {\r
- \r
- }\r
- }\r
- }\r
- },\r
- "capabilities": {\r
- "dg-node": {\r
- \r
- }\r
- },\r
- "requirements": {\r
- "component-dependency": {\r
- "capability": "component-node",\r
- "node": "resource-assignment",\r
- "relationship": "tosca.relationships.DependsOn"\r
- }\r
- }\r
- },\r
- "config-generator-action": {\r
- "type": "dg-config-generator",\r
- "interfaces": {\r
- "CONFIG": {\r
- "operations": {\r
- "GenerateConfiguration": {\r
- \r
- }\r
- }\r
- }\r
- },\r
- "capabilities": {\r
- "dg-node": {\r
- \r
- }\r
- },\r
- "requirements": {\r
- "component-dependency": {\r
- "capability": "component-node",\r
- "node": "generate-configuration",\r
- "relationship": "tosca.relationships.DependsOn"\r
- }\r
- }\r
- },\r
- "resource-assignment": {\r
- "type": "component-resource-assignment",\r
- "interfaces": {\r
- "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": {\r
- "operations": {\r
- "process": {\r
- "inputs": {\r
- "action-name": "{ \"get_input\" : \"action-name\" }",\r
- "resource-type": "vnf-type",\r
- "template-names": [\r
- "base-config-template",\r
- "licence-template"\r
- ],\r
- "request-id": "{ \"get_input\" : \"request-id\" }",\r
- "resource-id": "{ \"get_input\" : \"vnf-id\" }"\r
- },\r
- "outputs": {\r
- "resource-assignment-params": "",\r
- "status": ""\r
- }\r
- }\r
- }\r
- }\r
- },\r
- "capabilities": {\r
- "component-node": {\r
- \r
- }\r
- }\r
- },\r
- "generate-configuration": {\r
- "type": "component-config-generator",\r
- "interfaces": {\r
- "org-onap-ccsdk-config-generator-service-ConfigGeneratorNode": {\r
- "operations": {\r
- "process": {\r
- "inputs": {\r
- "action-name": "{ \"get_input\" : \"action-name\" }",\r
- "resource-type": "vnf-type",\r
- "request-id": "{ \"get_input\" : \"request-id\" }",\r
- "resource-id": "{ \"get_input\" : \"vnf-id\" }",\r
- "template-name": "base-config-template"\r
- },\r
- "outputs": {\r
- "generated-config": "",\r
- "status": ""\r
- }\r
- }\r
- }\r
- }\r
- },\r
- "capabilities": {\r
- "component-node": {\r
- \r
- }\r
- }\r
- }\r
- }\r
- },\r
- "artifact_types": {\r
- "artifact-template-velocity": {\r
- "description": " Velocity Template used for Configuration",\r
- "version": "1.0.0",\r
- "file_ext": [\r
- "vtl"\r
- ],\r
- "derived_from": "tosca.artifacts.Implementation"\r
- },\r
- "artifact-mapping-resource": {\r
- "description": " Velocity Template Resource Mapping File used along with Configuration template",\r
- "version": "1.0.0",\r
- "file_ext": [\r
- "json"\r
- ],\r
- "derived_from": "tosca.artifacts.Implementation"\r
- },\r
- "artifact-script-python": {\r
- "description": " Python Script Template used for Configuration",\r
- "version": "1.0.0",\r
- "file_ext": [\r
- "py"\r
- ],\r
- "derived_from": "tosca.artifacts.Implementation"\r
- }\r
- },\r
- "node_types": {\r
- "dg-resource-assignment": {\r
- "description": "This is Resource Assignment Directed Graph",\r
- "version": "1.0.0",\r
- "properties": {\r
- "mode": {\r
- "required": false,\r
- "type": "string",\r
- "default": "sync"\r
- },\r
- "version": {\r
- "required": false,\r
- "type": "string",\r
- "default": "LATEST"\r
- },\r
- "is-start-flow": {\r
- "required": false,\r
- "type": "boolean",\r
- "default": "false"\r
- }\r
- },\r
- "capabilities": {\r
- "dg-node": {\r
- "type": "tosca.capabilities.Node"\r
- },\r
- "content": {\r
- "type": "tosca.capability.Content",\r
- "properties": {\r
- "type": {\r
- "required": false,\r
- "type": "string",\r
- "default": "json"\r
- },\r
- "content": {\r
- "required": true,\r
- "type": "string"\r
- }\r
- }\r
- }\r
- },\r
- "requirements": {\r
- "component-dependency": {\r
- "capability": "component-node",\r
- "node": "component-resource-assignment",\r
- "relationship": "tosca.relationships.DependsOn"\r
- }\r
- },\r
- "interfaces": {\r
- "CONFIG": {\r
- "operations": {\r
- "ResourceAssignment": {\r
- "inputs": {\r
- "params": {\r
- "required": false,\r
- "type": "list",\r
- "entry_schema": {\r
- "type": "datatype-property"\r
- }\r
- }\r
- }\r
- }\r
- }\r
- }\r
- },\r
- "derived_from": "tosca.nodes.DG"\r
- },\r
- "dg-config-generator": {\r
- "description": "This is Activate DG for Config Generator Directed Graph",\r
- "version": "1.0.0",\r
- "properties": {\r
- "mode": {\r
- "required": false,\r
- "type": "string",\r
- "default": "sync"\r
- },\r
- "version": {\r
- "required": false,\r
- "type": "string",\r
- "default": "LATEST"\r
- },\r
- "is-start-flow": {\r
- "required": false,\r
- "type": "boolean",\r
- "default": "false"\r
- }\r
- },\r
- "capabilities": {\r
- "dg-node": {\r
- "type": "tosca.capabilities.Node"\r
- },\r
- "content": {\r
- "type": "tosca.capability.Content",\r
- "properties": {\r
- "type": {\r
- "required": false,\r
- "type": "string",\r
- "default": "json"\r
- },\r
- "content": {\r
- "required": true,\r
- "type": "string"\r
- }\r
- }\r
- }\r
- },\r
- "requirements": {\r
- "component-dependency": {\r
- "capability": "component-node",\r
- "node": "component-config-generator",\r
- "relationship": "tosca.relationships.DependsOn"\r
- }\r
- },\r
- "interfaces": {\r
- "CONFIG": {\r
- "operations": {\r
- "GenerateConfiguration": {\r
- "inputs": {\r
- "params": {\r
- "required": false,\r
- "type": "list",\r
- "entry_schema": {\r
- "type": "datatype-property"\r
- }\r
- }\r
- }\r
- }\r
- }\r
- }\r
- },\r
- "derived_from": "tosca.nodes.DG"\r
- },\r
- "artifact-config-template": {\r
- "description": "This is Configuration Velocity Template",\r
- "version": "1.0.0",\r
- "properties": {\r
- "action-names": {\r
- "required": true,\r
- "type": "list",\r
- "entry_schema": {\r
- "type": "string"\r
- }\r
- },\r
- "content": {\r
- "required": false,\r
- "type": "string"\r
- },\r
- "mapping": {\r
- "required": false,\r
- "type": "list",\r
- "entry_schema": {\r
- "type": "datatype-resource-assignment"\r
- }\r
- }\r
- },\r
- "capabilities": {\r
- "content": {\r
- "type": "tosca.capability.Content",\r
- "properties": {\r
- "content": {\r
- "required": true,\r
- "type": "string"\r
- }\r
- }\r
- },\r
- "mapping": {\r
- "type": "tosca.capability.Mapping",\r
- "properties": {\r
- "mapping": {\r
- "required": false,\r
- "type": "list",\r
- "entry_schema": {\r
- "type": "datatype-resource-assignment"\r
- }\r
- }\r
- }\r
- }\r
- },\r
- "derived_from": "tosca.nodes.Artifact"\r
- },\r
- "component-resource-assignment": {\r
- "description": "This is Resource Assignment Component API",\r
- "version": "1.0.0",\r
- "capabilities": {\r
- "component-node": {\r
- "type": "tosca.capabilities.Node"\r
- }\r
- },\r
- "interfaces": {\r
- "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": {\r
- "operations": {\r
- "process": {\r
- "inputs": {\r
- "action-name": {\r
- "description": "Action Name to get from Database, Either (message & mask-info ) or ( resource-id & resource-type & action-name & template-name ) should be present. Message will be given higest priority",\r
- "required": false,\r
- "type": "string"\r
- },\r
- "handler-name": {\r
- "description": "Name of the Artifact Node Template, to get the template Content. If template-content is present, then content wont be reterived from the Artifact Node Template.",\r
- "required": true,\r
- "type": "string"\r
- },\r
- "resource-type": {\r
- "required": false,\r
- "type": "string"\r
- },\r
- "template-names": {\r
- "description": "Name of the Artifact Node Templates, to get the template Content.",\r
- "required": true,\r
- "type": "list",\r
- "entry_schema": {\r
- "type": "string"\r
- }\r
- },\r
- "request-id": {\r
- "description": "Request Id used to store the generated configuration, in the database along with the template-name",\r
- "required": true,\r
- "type": "string"\r
- },\r
- "resource-id": {\r
- "description": "Id used to pull the data content from the data base. Either template-data or resource-id should be present",\r
- "required": true,\r
- "type": "string"\r
- }\r
- },\r
- "outputs": {\r
- "resource-assignment-params": {\r
- "required": true,\r
- "type": "string"\r
- },\r
- "status": {\r
- "required": true,\r
- "type": "string"\r
- }\r
- }\r
- }\r
- }\r
- }\r
- },\r
- "derived_from": "tosca.nodes.Component"\r
- },\r
- "component-config-generator": {\r
- "description": "This is Generate Configuration Component API",\r
- "version": "1.0.0",\r
- "capabilities": {\r
- "component-node": {\r
- "type": "tosca.capabilities.Node"\r
- }\r
- },\r
- "interfaces": {\r
- "org-onap-ccsdk-config-generator-service-ConfigGeneratorNode": {\r
- "operations": {\r
- "process": {\r
- "inputs": {\r
- "template-data": {\r
- "description": "Conditional : JSON string which is used to mash with template. Either template-data or ( resource-id and resource-type ) should be present",\r
- "required": false,\r
- "type": "string"\r
- },\r
- "action-name": {\r
- "description": "Conditional : Action Name to get from Database, Either (message & mask-info ) or ( resource-id & resource-type & action-name & template-name ) should be present. Message will be given higest priority",\r
- "required": false,\r
- "type": "string"\r
- },\r
- "template-content": {\r
- "description": "Conditional : Dynamic Template used to generate Configuration.",\r
- "required": false,\r
- "type": "string"\r
- },\r
- "resource-type": {\r
- "description": "Conditional : resource-type used to pull the data content from the data base. Either template-data or ( resource-id and resource-type ) should be present",\r
- "required": false,\r
- "type": "string"\r
- },\r
- "request-id": {\r
- "description": "Request Id used to store the generated configuration, in the database along with the template-name",\r
- "required": true,\r
- "type": "string"\r
- },\r
- "resource-id": {\r
- "description": "Conditional : Id used to pull the data content from the data base. Either template-data or ( resource-id and resource-type ) should be present",\r
- "required": false,\r
- "type": "string"\r
- },\r
- "template-name": {\r
- "description": "Conditional : Name of the Artifact Node Template, to get the template Content. If template-content is present, then content wont be reterived from the Artifact Node Template.",\r
- "required": true,\r
- "type": "string"\r
- }\r
- },\r
- "outputs": {\r
- "generated-config": {\r
- "description": "Generated Configuration for the Template adn Resource Data",\r
- "required": true,\r
- "type": "string"\r
- },\r
- "mask-info": {\r
- "description": "If template contains mask encription keys, then this mask-info field will be generated, This JSON Content alligns to the bean org.onap.ccsdk.config.model.data.custom.MaskInfo ",\r
- "required": false,\r
- "type": "string"\r
- },\r
- "status": {\r
- "description": "Status of the Component Execution ( success or failure )",\r
- "required": true,\r
- "type": "string"\r
- }\r
- }\r
- }\r
- }\r
- }\r
- },\r
- "derived_from": "tosca.nodes.Component"\r
- }\r
- },\r
- "data_types": {\r
- "datatype-resource-assignment": {\r
- "version": "1.0.0",\r
- "description": "This is Resource Assignment Data Type",\r
- "properties": {\r
- "property": {\r
- "required": true,\r
- "type": "datatype-property"\r
- },\r
- "input-param": {\r
- "required": true,\r
- "type": "boolean"\r
- },\r
- "dictionary-name": {\r
- "required": false,\r
- "type": "string"\r
- },\r
- "dictionary-source": {\r
- "required": false,\r
- "type": "string"\r
- },\r
- "dependencies": {\r
- "required": true,\r
- "type": "list",\r
- "entry_schema": {\r
- "type": "string"\r
- }\r
- }\r
- },\r
- "derived_from": "tosca.datatypes.Root"\r
- },\r
- "datatype-property": {\r
- "version": "1.0.0",\r
- "description": "This is Entry point Input Data Type, which is dynamic datatype, The parameter names will be populated during the Design time for each inputs",\r
- "properties": {\r
- "type": {\r
- "required": true,\r
- "type": "string"\r
- },\r
- "description": {\r
- "required": false,\r
- "type": "string"\r
- },\r
- "required": {\r
- "required": false,\r
- "type": "boolean"\r
- },\r
- "default": {\r
- "required": false,\r
- "type": "string"\r
- },\r
- "entry_schema": {\r
- "required": false,\r
- "type": "string"\r
- }\r
- },\r
- "derived_from": "tosca.datatypes.Root"\r
- }\r
- }\r
-}\r
+ "metadata" : {\r
+ "author" : "ks220y@att.com",\r
+ "service-template-name" : "VRR-baseconfiguration",\r
+ "service-template-version" : "1.0.0",\r
+ "release" : "1802",\r
+ "service-type" : "AVPN",\r
+ "vnf-type" : "VRR"\r
+ },\r
+ "tosca_definitions_version" : "sdn_config_1_0_0",\r
+ "topology_template" : {\r
+ "inputs" : {\r
+ "request-id" : {\r
+ "required" : true,\r
+ "type" : "string"\r
+ },\r
+ "service-instance-id" : {\r
+ "required" : true,\r
+ "type" : "string"\r
+ },\r
+ "action-name" : {\r
+ "required" : true,\r
+ "type" : "string"\r
+ },\r
+ "scope-type" : {\r
+ "required" : true,\r
+ "type" : "string"\r
+ },\r
+ "hostname" : {\r
+ "required" : true,\r
+ "type" : "string"\r
+ }\r
+ },\r
+ "node_templates" : {\r
+ "base-config-template" : {\r
+ "type" : "artifact-config-template",\r
+ "properties" : {\r
+ "action-names" : [ "resource-assignment-action" ]\r
+ },\r
+ "capabilities" : {\r
+ "content" : {\r
+ "properties" : {\r
+ "content" : "db://base-config-template"\r
+ }\r
+ },\r
+ "mapping" : {\r
+ "properties" : {\r
+ "mapping" : [ {\r
+ "name" : "vnf-id",\r
+ "input-param" : true,\r
+ "property" : {\r
+ "type" : "string",\r
+ "required" : true\r
+ },\r
+ "dictionary-name" : "vnf-id",\r
+ "dictionary-source" : "input"\r
+ }, {\r
+ "name" : "group-name",\r
+ "input-param" : true,\r
+ "property" : {\r
+ "type" : "string",\r
+ "required" : true\r
+ },\r
+ "dictionary-name" : "group-name",\r
+ "dictionary-source" : "input"\r
+ } ]\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "licence-template" : {\r
+ "type" : "artifact-config-template",\r
+ "properties" : {\r
+ "action-names" : [ "resource-assignment-action" ]\r
+ },\r
+ "capabilities" : {\r
+ "content" : {\r
+ "properties" : {\r
+ "content" : "db://licence-template"\r
+ }\r
+ },\r
+ "mapping" : {\r
+ "properties" : {\r
+ "mapping" : [ {\r
+ "name" : "bundle-id",\r
+ "input-param" : true,\r
+ "property" : {\r
+ "type" : "string"\r
+ },\r
+ "dictionary-name" : "bundle-id",\r
+ "dictionary-source" : "input"\r
+ }, {\r
+ "name" : "bundle-mac",\r
+ "input-param" : true,\r
+ "property" : {\r
+ "type" : "string",\r
+ "required" : true\r
+ },\r
+ "dictionary-name" : "bundle-mac",\r
+ "dictionary-source" : "input"\r
+ } ]\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "resource-assignment-action" : {\r
+ "type" : "dg-resource-assignment",\r
+ "interfaces" : {\r
+ "CONFIG" : {\r
+ "operations" : {\r
+ "ResourceAssignment" : { }\r
+ }\r
+ }\r
+ },\r
+ "capabilities" : {\r
+ "dg-node" : { }\r
+ },\r
+ "requirements" : {\r
+ "component-dependency" : {\r
+ "capability" : "component-node",\r
+ "node" : "resource-assignment",\r
+ "relationship" : "tosca.relationships.DependsOn"\r
+ }\r
+ }\r
+ },\r
+ "config-generator-action" : {\r
+ "type" : "dg-config-generator",\r
+ "interfaces" : {\r
+ "CONFIG" : {\r
+ "operations" : {\r
+ "GenerateConfiguration" : { }\r
+ }\r
+ }\r
+ },\r
+ "capabilities" : {\r
+ "dg-node" : { }\r
+ },\r
+ "requirements" : {\r
+ "component-dependency" : {\r
+ "capability" : "component-node",\r
+ "node" : "generate-configuration",\r
+ "relationship" : "tosca.relationships.DependsOn"\r
+ }\r
+ }\r
+ },\r
+ "resource-assignment" : {\r
+ "type" : "component-resource-assignment",\r
+ "interfaces" : {\r
+ "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode" : {\r
+ "operations" : {\r
+ "process" : {\r
+ "inputs" : {\r
+ "action-name" : "{ \"get_input\" : \"action-name\" }",\r
+ "resource-type" : "vnf-type",\r
+ "template-names" : [ "base-config-template", "licence-template" ],\r
+ "request-id" : "{ \"get_input\" : \"request-id\" }",\r
+ "resource-id" : "{ \"get_input\" : \"vnf-id\" }"\r
+ },\r
+ "outputs" : {\r
+ "resource-assignment-params" : "",\r
+ "status" : ""\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "capabilities" : {\r
+ "component-node" : { }\r
+ }\r
+ },\r
+ "generate-configuration" : {\r
+ "type" : "component-config-generator",\r
+ "interfaces" : {\r
+ "org-onap-ccsdk-config-generator-service-ConfigGeneratorNode" : {\r
+ "operations" : {\r
+ "process" : {\r
+ "inputs" : {\r
+ "action-name" : "{ \"get_input\" : \"action-name\" }",\r
+ "resource-type" : "vnf-type",\r
+ "request-id" : "{ \"get_input\" : \"request-id\" }",\r
+ "resource-id" : "{ \"get_input\" : \"vnf-id\" }",\r
+ "template-name" : "base-config-template"\r
+ },\r
+ "outputs" : {\r
+ "generated-config" : "",\r
+ "status" : ""\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "capabilities" : {\r
+ "component-node" : { }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "artifact_types" : {\r
+ "artifact-template-velocity" : {\r
+ "description" : " Velocity Template used for Configuration",\r
+ "version" : "1.0.0",\r
+ "derived_from" : "tosca.artifacts.Implementation",\r
+ "file_ext" : [ "vtl" ]\r
+ },\r
+ "artifact-mapping-resource" : {\r
+ "description" : " Velocity Template Resource Mapping File used along with Configuration template",\r
+ "version" : "1.0.0",\r
+ "derived_from" : "tosca.artifacts.Implementation",\r
+ "file_ext" : [ "json" ]\r
+ },\r
+ "artifact-script-python" : {\r
+ "description" : " Python Script Template used for Configuration",\r
+ "version" : "1.0.0",\r
+ "derived_from" : "tosca.artifacts.Implementation",\r
+ "file_ext" : [ "py" ]\r
+ }\r
+ },\r
+ "node_types" : {\r
+ "dg-resource-assignment" : {\r
+ "description" : "This is Resource Assignment Directed Graph",\r
+ "version" : "1.0.0",\r
+ "properties" : {\r
+ "mode" : {\r
+ "required" : false,\r
+ "type" : "string",\r
+ "default" : "sync"\r
+ },\r
+ "version" : {\r
+ "required" : false,\r
+ "type" : "string",\r
+ "default" : "LATEST"\r
+ },\r
+ "is-start-flow" : {\r
+ "required" : false,\r
+ "type" : "boolean",\r
+ "default" : "false"\r
+ }\r
+ },\r
+ "capabilities" : {\r
+ "dg-node" : {\r
+ "type" : "tosca.capabilities.Node"\r
+ },\r
+ "content" : {\r
+ "type" : "tosca.capability.Content",\r
+ "properties" : {\r
+ "type" : {\r
+ "required" : false,\r
+ "type" : "string",\r
+ "default" : "json"\r
+ },\r
+ "content" : {\r
+ "required" : true,\r
+ "type" : "string"\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "requirements" : {\r
+ "component-dependency" : {\r
+ "capability" : "component-node",\r
+ "node" : "component-resource-assignment",\r
+ "relationship" : "tosca.relationships.DependsOn"\r
+ }\r
+ },\r
+ "interfaces" : {\r
+ "CONFIG" : {\r
+ "operations" : {\r
+ "ResourceAssignment" : {\r
+ "inputs" : {\r
+ "params" : {\r
+ "required" : false,\r
+ "type" : "list",\r
+ "entry_schema" : {\r
+ "type" : "datatype-property"\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "derived_from" : "tosca.nodes.DG"\r
+ },\r
+ "dg-config-generator" : {\r
+ "description" : "This is Activate DG for Config Generator Directed Graph",\r
+ "version" : "1.0.0",\r
+ "properties" : {\r
+ "mode" : {\r
+ "required" : false,\r
+ "type" : "string",\r
+ "default" : "sync"\r
+ },\r
+ "version" : {\r
+ "required" : false,\r
+ "type" : "string",\r
+ "default" : "LATEST"\r
+ },\r
+ "is-start-flow" : {\r
+ "required" : false,\r
+ "type" : "boolean",\r
+ "default" : "false"\r
+ }\r
+ },\r
+ "capabilities" : {\r
+ "dg-node" : {\r
+ "type" : "tosca.capabilities.Node"\r
+ },\r
+ "content" : {\r
+ "type" : "tosca.capability.Content",\r
+ "properties" : {\r
+ "type" : {\r
+ "required" : false,\r
+ "type" : "string",\r
+ "default" : "json"\r
+ },\r
+ "content" : {\r
+ "required" : true,\r
+ "type" : "string"\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "requirements" : {\r
+ "component-dependency" : {\r
+ "capability" : "component-node",\r
+ "node" : "component-config-generator",\r
+ "relationship" : "tosca.relationships.DependsOn"\r
+ }\r
+ },\r
+ "interfaces" : {\r
+ "CONFIG" : {\r
+ "operations" : {\r
+ "GenerateConfiguration" : {\r
+ "inputs" : {\r
+ "params" : {\r
+ "required" : false,\r
+ "type" : "list",\r
+ "entry_schema" : {\r
+ "type" : "datatype-property"\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "derived_from" : "tosca.nodes.DG"\r
+ },\r
+ "artifact-config-template" : {\r
+ "description" : "This is Configuration Velocity Template",\r
+ "version" : "1.0.0",\r
+ "properties" : {\r
+ "action-names" : {\r
+ "required" : true,\r
+ "type" : "list",\r
+ "entry_schema" : {\r
+ "type" : "string"\r
+ }\r
+ },\r
+ "content" : {\r
+ "required" : false,\r
+ "type" : "string"\r
+ },\r
+ "mapping" : {\r
+ "required" : false,\r
+ "type" : "list",\r
+ "entry_schema" : {\r
+ "type" : "datatype-resource-assignment"\r
+ }\r
+ }\r
+ },\r
+ "capabilities" : {\r
+ "content" : {\r
+ "type" : "tosca.capability.Content",\r
+ "properties" : {\r
+ "content" : {\r
+ "required" : true,\r
+ "type" : "string"\r
+ }\r
+ }\r
+ },\r
+ "mapping" : {\r
+ "type" : "tosca.capability.Mapping",\r
+ "properties" : {\r
+ "mapping" : {\r
+ "required" : false,\r
+ "type" : "list",\r
+ "entry_schema" : {\r
+ "type" : "datatype-resource-assignment"\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "derived_from" : "tosca.nodes.Artifact"\r
+ },\r
+ "component-resource-assignment" : {\r
+ "description" : "This is Resource Assignment Component API",\r
+ "version" : "1.0.0",\r
+ "capabilities" : {\r
+ "component-node" : {\r
+ "type" : "tosca.capabilities.Node"\r
+ }\r
+ },\r
+ "interfaces" : {\r
+ "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode" : {\r
+ "operations" : {\r
+ "process" : {\r
+ "inputs" : {\r
+ "action-name" : {\r
+ "description" : "Action Name to get from Database, Either (message & mask-info ) or ( resource-id & resource-type & action-name & template-name ) should be present. Message will be given higest priority",\r
+ "required" : false,\r
+ "type" : "string"\r
+ },\r
+ "handler-name" : {\r
+ "description" : "Name of the Artifact Node Template, to get the template Content. If template-content is present, then content wont be reterived from the Artifact Node Template.",\r
+ "required" : true,\r
+ "type" : "string"\r
+ },\r
+ "resource-type" : {\r
+ "required" : false,\r
+ "type" : "string"\r
+ },\r
+ "template-names" : {\r
+ "description" : "Name of the Artifact Node Templates, to get the template Content.",\r
+ "required" : true,\r
+ "type" : "list",\r
+ "entry_schema" : {\r
+ "type" : "string"\r
+ }\r
+ },\r
+ "request-id" : {\r
+ "description" : "Request Id used to store the generated configuration, in the database along with the template-name",\r
+ "required" : true,\r
+ "type" : "string"\r
+ },\r
+ "resource-id" : {\r
+ "description" : "Id used to pull the data content from the data base. Either template-data or resource-id should be present",\r
+ "required" : true,\r
+ "type" : "string"\r
+ }\r
+ },\r
+ "outputs" : {\r
+ "resource-assignment-params" : {\r
+ "required" : true,\r
+ "type" : "string"\r
+ },\r
+ "status" : {\r
+ "required" : true,\r
+ "type" : "string"\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "derived_from" : "tosca.nodes.Component"\r
+ },\r
+ "component-config-generator" : {\r
+ "description" : "This is Generate Configuration Component API",\r
+ "version" : "1.0.0",\r
+ "capabilities" : {\r
+ "component-node" : {\r
+ "type" : "tosca.capabilities.Node"\r
+ }\r
+ },\r
+ "interfaces" : {\r
+ "org-onap-ccsdk-config-generator-service-ConfigGeneratorNode" : {\r
+ "operations" : {\r
+ "process" : {\r
+ "inputs" : {\r
+ "template-data" : {\r
+ "description" : "Conditional : JSON string which is used to mash with template. Either template-data or ( resource-id and resource-type ) should be present",\r
+ "required" : false,\r
+ "type" : "string"\r
+ },\r
+ "action-name" : {\r
+ "description" : "Conditional : Action Name to get from Database, Either (message & mask-info ) or ( resource-id & resource-type & action-name & template-name ) should be present. Message will be given higest priority",\r
+ "required" : false,\r
+ "type" : "string"\r
+ },\r
+ "template-content" : {\r
+ "description" : "Conditional : Dynamic Template used to generate Configuration.",\r
+ "required" : false,\r
+ "type" : "string"\r
+ },\r
+ "resource-type" : {\r
+ "description" : "Conditional : resource-type used to pull the data content from the data base. Either template-data or ( resource-id and resource-type ) should be present",\r
+ "required" : false,\r
+ "type" : "string"\r
+ },\r
+ "request-id" : {\r
+ "description" : "Request Id used to store the generated configuration, in the database along with the template-name",\r
+ "required" : true,\r
+ "type" : "string"\r
+ },\r
+ "resource-id" : {\r
+ "description" : "Conditional : Id used to pull the data content from the data base. Either template-data or ( resource-id and resource-type ) should be present",\r
+ "required" : false,\r
+ "type" : "string"\r
+ },\r
+ "template-name" : {\r
+ "description" : "Conditional : Name of the Artifact Node Template, to get the template Content. If template-content is present, then content wont be reterived from the Artifact Node Template.",\r
+ "required" : true,\r
+ "type" : "string"\r
+ }\r
+ },\r
+ "outputs" : {\r
+ "generated-config" : {\r
+ "description" : "Generated Configuration for the Template adn Resource Data",\r
+ "required" : true,\r
+ "type" : "string"\r
+ },\r
+ "mask-info" : {\r
+ "description" : "If template contains mask encription keys, then this mask-info field will be generated, This JSON Content alligns to the bean org.onap.ccsdk.config.model.data.custom.MaskInfo ",\r
+ "required" : false,\r
+ "type" : "string"\r
+ },\r
+ "status" : {\r
+ "description" : "Status of the Component Execution ( success or failure )",\r
+ "required" : true,\r
+ "type" : "string"\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "derived_from" : "tosca.nodes.Component"\r
+ }\r
+ },\r
+ "data_types" : {\r
+ "datatype-resource-assignment" : {\r
+ "version" : "1.0.0",\r
+ "description" : "This is Resource Assignment Data Type",\r
+ "properties" : {\r
+ "property" : {\r
+ "required" : true,\r
+ "type" : "datatype-property"\r
+ },\r
+ "input-param" : {\r
+ "required" : true,\r
+ "type" : "boolean"\r
+ },\r
+ "dictionary-name" : {\r
+ "required" : false,\r
+ "type" : "string"\r
+ },\r
+ "dictionary-source" : {\r
+ "required" : false,\r
+ "type" : "string"\r
+ },\r
+ "dependencies" : {\r
+ "required" : true,\r
+ "type" : "list",\r
+ "entry_schema" : {\r
+ "type" : "string"\r
+ }\r
+ }\r
+ },\r
+ "derived_from" : "tosca.datatypes.Root"\r
+ },\r
+ "datatype-property" : {\r
+ "version" : "1.0.0",\r
+ "description" : "This is Entry point Input Data Type, which is dynamic datatype, The parameter names will be populated during the Design time for each inputs",\r
+ "properties" : {\r
+ "type" : {\r
+ "required" : true,\r
+ "type" : "string"\r
+ },\r
+ "description" : {\r
+ "required" : false,\r
+ "type" : "string"\r
+ },\r
+ "required" : {\r
+ "required" : false,\r
+ "type" : "boolean"\r
+ },\r
+ "default" : {\r
+ "required" : false,\r
+ "type" : "string"\r
+ },\r
+ "entry_schema" : {\r
+ "required" : false,\r
+ "type" : "string"\r
+ }\r
+ },\r
+ "derived_from" : "tosca.datatypes.Root"\r
+ }\r
+ }\r
+}
\ No newline at end of file