{ "metadata": { "template_author": "Alexis de Talhouƫt", "author-email": "adetalhouet89@gmail.com", "user-groups": "ADMIN, OPERATION", "template_name": "golden", "template_version": "1.0.0", "template_tags": "test" }, "imports": [ { "file": "Definitions/data_types.json" }, { "file": "Definitions/relationship_types.json" }, { "file": "Definitions/artifact_types.json" }, { "file": "Definitions/node_types.json" }, { "file": "Definitions/policy_types.json" } ], "dsl_definitions": { "ipam-1": { "type": "token-auth", "url": "http://netbox-nginx:8080", "token": "Token 0123456789abcdef0123456789abcdef01234567" }, "config-deploy-properties": { "resolution-key": { "get_input": "resolution-key" } } }, "topology_template": { "workflows": { "resource-assignment": { "steps": { "resource-assignment": { "description": "Resource Assign Workflow", "target": "resource-assignment", "activities": [ { "call_operation": "" } ] } }, "inputs": { "resource-assignment-properties": { "description": "Dynamic PropertyDefinition for workflow(resource-assignment).", "required": true, "type": "dt-resource-assignment-properties" } }, "outputs": { "meshed-template": { "type": "json", "value": { "get_attribute": [ "resource-assignment", "assignment-params" ] } } } }, "config-assign": { "steps": { "config-assign": { "description": "Config Assign Workflow", "target": "config-assign", "activities": [ { "call_operation": "" } ] } }, "inputs": { "resolution-key": { "required": true, "type": "string" }, "config-assign-properties": { "description": "Dynamic PropertyDefinition for workflow(config-assign).", "required": true, "type": "dt-config-assign-properties" } }, "outputs": { "dry-run": { "type": "json", "value": { "get_attribute": [ "config-assign", "assignment-params" ] } } } }, "config-deploy": { "steps": { "config-deploy": { "description": "Resource Assign and Python Netconf Activation Workflow", "target": "config-deploy", "activities": [ { "call_operation": "" } ] } }, "inputs": { "resolution-key": { "required": false, "type": "string" }, "password": { "required": true, "type": "string" }, "username": { "required": true, "type": "string" }, "ip": { "required": true, "type": "string" } } }, "rollback": { "steps": { "rollback": { "description": "Rollback Workflow", "target": "rollback", "activities": [ { "call_operation": "" } ] } }, "inputs": { "resolution-key": { "required": false, "type": "string" }, "password": { "required": true, "type": "string" }, "username": { "required": true, "type": "string" }, "ip": { "required": true, "type": "string" }, "rollback-properties": { "description": "Dynamic PropertyDefinition for workflow(rollback).", "required": true, "type": "dt-rollback-properties" } } } }, "node_templates": { "resource-assignment": { "type": "component-resource-resolution", "interfaces": { "ResourceResolutionComponent": { "operations": { "process": { "inputs": { "artifact-prefix-names": [ "vf-module-1" ] } } } } }, "artifacts": { "vf-module-1-template": { "type": "artifact-template-velocity", "file": "Templates/vf-module-1-template.vtl" }, "vf-module-1-mapping": { "type": "artifact-mapping-resource", "file": "Templates/vf-module-1-mapping.json" } } }, "config-assign": { "type": "component-resource-resolution", "interfaces": { "ResourceResolutionComponent": { "operations": { "process": { "inputs": { "resolution-key": { "get_input": "resolution-key" }, "store-result": true, "artifact-prefix-names": [ "hostname", "vfw-interface" ] } } } } }, "artifacts": { "hostname-template": { "type": "artifact-template-velocity", "file": "Templates/hostname-template.vtl" }, "hostname-mapping": { "type": "artifact-mapping-resource", "file": "Templates/hostname-mapping.json" }, "vfw-interface-template": { "type": "artifact-template-velocity", "file": "Templates/vfw-interface-template.vtl" }, "vfw-interface-mapping": { "type": "artifact-mapping-resource", "file": "Templates/vfw-interface-mapping.json" } } }, "config-deploy": { "type": "component-netconf-executor", "requirements": { "netconf-connection": { "capability": "netconf", "node": "netconf-device", "relationship": "tosca.relationships.ConnectsTo" } }, "interfaces": { "ComponentNetconfExecutor": { "operations": { "process": { "inputs": { "script-type": "jython", "script-class-reference": "Scripts/python/ConfigDeploy.py", "instance-dependencies": [], "dynamic-properties": "*config-deploy-properties" } } } } } }, "rollback": { "type": "component-netconf-executor", "requirements": { "netconf-connection": { "capability": "netconf", "node": "netconf-device", "relationship": "tosca.relationships.ConnectsTo" } }, "interfaces": { "ComponentNetconfExecutor": { "operations": { "process": { "inputs": { "script-type": "jython", "script-class-reference": "Scripts/python/Rollback.py", "instance-dependencies": [] } } } } }, "artifacts": { "junos-rollback-RPC-template": { "type": "artifact-template-velocity", "file": "Templates/junos-rollback-RPC-template.vtl" }, "junos-rollback-RPC-mapping": { "type": "artifact-mapping-resource", "file": "Templates/junos-rollback-RPC-mapping.json" } } }, "netconf-device": { "type": "vnf-netconf-device", "capabilities": { "netconf": { "properties": { "login-key": { "get_input": "password" }, "login-account": { "get_input": "username" }, "target-ip-address": { "get_input": "ip" }, "port-number": 830, "connection-time-out": 5 } } } } } } }