# Copyright (C) 2019 ZTE. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import json
instantiate_grant_result = {
"vimConnections": [
{
"vimid": 'vim_1',
"accessInfo":
{
"tenant": 'chinamobile'
}
},
],
"vnfId": "413aa1fe-b4d1-11e8-8268-dff5aab95c63",
"vimAssets":
{
"computeResourceFlavours": [
{
"resourceProviderId": "vgw",
"vimFlavourId": "yui",
"vimConnectionId": ""
},
]
}
}
inst_req_data = {
"flavourId": "flavour_1",
"instantiationLevelId": "instantiationLevel_1",
"extVirtualLinks": [
{
"id": "extVirtualLink_1",
"vimConnectionId": "vimConnection_1",
"resourceProviderId": "resourceProvider_1",
"resourceId": "resource_1",
"resourceSubnetId": "resourceSubnet_1",
"extCps": [
{
"cpdId": "cpd_1",
"cpConfig": [
{
"cpInstanceId": "cpInstance_1",
"linkPortId": "linkPort_1",
"cpProtocolData": [
{
"layerProtocol": "IP_OVER_ETHERNET",
"ipOverEthernet": {
"macAddress": "00:f3:43:20:a2:a3",
"ipAddresses": [
{
"type": "IPV4",
"fixedAddresses": ["192.168.104.2", ],
"numDynamicAddresses": 0,
"addressRange": None,
"subnetId": "subnet_1",
}
]
}
}
]
}
]
}
],
"extLinkPorts": [
{
"id": "extLinkPort_1",
"resourceHandle": {
"vimConnectionId": "vimConnection_1",
"resourceProviderId": "resourceProvider_1",
"resourceId": "resource_1",
"vimLevelResourceType": "vimLevelResourceType_1",
}
}
]
}
],
"extManagedVirtualLinks": [
{
"id": 'extManagedVirtualLink_1',
"virtualLinkDescId": 'virtualLinkDesc_1',
"vimConnectionId": 'vimConnection_1',
"resourceProviderId": 'resourceProvider_1',
"resourceId": 'resource_1',
}
],
"vimConnectionInfo": [
{
"id": 'vimConnection_1',
"vimId": 'vim_1',
"vimType": 'vim',
"interfaceInfo": {
"apiVersion": "apiVersion_1",
"protocolType": "http"
},
"accessInfo": {
"tenant": "tenant_vCPE",
"username": "vCPE",
"password": "vCPE_321",
},
"extra": None,
}
],
"localizationLanguage": "en_US",
"additionalParams": {
"vimId": "vim_1",
"key1": "test1",
"key2": "test2",
}
}
vnfd_model_dict = {
'metadata': {
'vendor': 'zte',
'is_shared': False,
'description': '',
'domain_type': 'CN',
'version': 'v4.14.10',
'vmnumber_overquota_alarm': False,
'cross_dc': False,
'vnf_type': 'SSS',
'vnfd_version': 'V00000001',
'id': 'sss-vnf-template',
'name': 'sss-vnf-template'
},
'vdus': [
{
"vdu_id": "vdu1Id",
"description": "vdu description",
"properties": {
"name": "vduinstname",
"vdu_type": "OMP",
"key_vdu": True,
"support_scaling": True,
"location_info": {
"vimid": "vimid",
"tenant": "tenantname",
"availability_zone": "zone1",
"host": "host1"
},
"local_affinity_antiaffinity_rule": [
{
"affinity_antiaffinity": "anti-affinity",
"scope": "node"
},
{
"affinity_antiaffinity": "affinity",
"scope": "zone"
}
],
"inject_data_list": [
{
"file_name": "abc.xml",
"file_data": "xxxssss"
}
],
"storage_policy": "HIGH",
"template_id": "26",
"manual_scale_select_vim": False,
"watchdog": {
"enabledelay": 600000,
"action": "reset"
},
"is_predefined": False,
"allow_scale_updown": False,
"inject_network_address": True,
"inner_hugepage_num": 100,
"inner_hugepage_size": "2048",
"action": "add"
},
"image_file": 'sss',
"local_storages": [
"local_storage_id1",
"local_storage_id2"
],
"virtual_storages": [
{
"virtual_storage_id": "volume_storage1",
"location": "/usr/data",
"device": "/dev/hda1"
}
],
"dependencies": [
"vdu1Id",
"vduNId"
],
"nfv_compute": {
"num_cpus": 4,
"mem_size": "1 GB",
"cpu_frequency": "1GHz",
"flavor_extra_specs": {
"hw: cpu_policy": "shared",
"hw: cpu_max_threads": 50,
"hw: cpu_sockets": 10,
"hw: cpu_max_sockets": 20,
"hw: cpu_max_cores": 8,
"hw: cpu_threads": 30,
"hw: numa_mem.0": 12288,
"hw: hugepage_num": 100,
"hw: high_performance": "dvs_high",
"hw: numa_nodes": 1,
"hw: numa_cpus.0": "2,4,8",
"hw: numa_pci": True,
"hw: cpu_cores": 4,
"pci_passthrough: alias": "ColetoCreek: 1",
"hw: mem_page_size": "large",
"hw: mem_paging_mechanism": "EPT"
}
},
"vls": [
"vlId1",
],
"cps": [
"cpId1",
],
"scalable": {
"min_instances": 1,
"max_instances": 2,
"default_instances": 1
},
"interfaces": {
"Standard": {
"create": {
"implementation": "",
"inputs": {
"param1Name": "value1",
"paramNName": "valueN"
}
},
"configure": {
"implementation": "",
"inputs": {
"param1Name": "value1",
"paramNName": "valueN"
}
},
"start": {
"implementation": "",
"inputs": {
"param1Name": "value1",
"paramNName": "valueN"
}
},
"stop": {
"implementation": "",
"inputs": {
"param1Name": "value1",
"paramNName": "valueN"
}
},
"delete": {
"implementation": "",
"inputs": {
"param1Name": "value1",
"paramNName": "valueN"
}
}
}
},
"artifacts": [
]
}
],
'volume_storages': [
{
"volume_storage_id": "volume_storage1",
"description": "",
"properties": {
"size": "\"100 GB\"",
"volume_id": "",
"volume_name": "volumeStorage1",
"custom_volume_type": "type1",
"disk_type": "data",
"delete_on_termination_vm": True,
"location_info": {
"vimid": "vimid_1",
"tenant": "tenantname_1",
"availability_zone": "zone1"
},
"is_predefined": False,
"is_shared": False
},
"image_file": [
"volume_image"
]
}
],
'policies': {
'scaling': {
'targets': {
},
'policy_id': 'policy_scale_sss-vnf-template',
'properties': {
'policy_file': '*-vnfd.zip/*-vnf-policy.xml'
},
'description': ''
}
},
'image_files': [
{
'description': '',
'properties': {
'name': 'opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
'checksum': '',
'disk_format': 'VMDK',
'file_url': './zte-cn-sss-main-image/OMM/opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
'container_type': 'vm',
'version': '',
'hypervisor_type': 'kvm'
},
'image_file_id': 'opencos_sss_omm_img_release_20150723-1-disk1'
},
{
'description': '',
'properties': {
'name': 'sss.vmdk',
'checksum': '',
'disk_format': 'VMDK',
'file_url': './zte-cn-sss-main-image/NE/sss.vmdk',
'container_type': 'vm',
'version': '',
'hypervisor_type': 'kvm'
},
'image_file_id': 'sss'
}
],
'vls': [
{
"vl_id": "vldId1",
"description": "",
"properties": {
"name": "umac_241_control",
"network_name": "umac_control",
"is_predefined": False,
"vendor": "zte",
"netmask": "255.255.255.0",
"mtu": 1500,
"network_type": "vlan",
"physical_network": "phynet01",
"segmentation_id": "30",
"vlan_transparent": False,
"vds_name": "vds1",
"cidr": "192.168.199.0/24",
"ip_version": 4,
"gateway_ip": "192.168.199.1",
"dhcp_enabled": False,
"dns_nameservers": [
"192.168.0.4",
"192.168.0.10"
],
"start_ip": "192.168.199.2",
"end_ip": "192.168.199.254",
"host_routes": [
{
"destination": "10.43.26.0/24",
"nexthop": "10.41.23.1"
}
],
"location_info": {
"vimid": "vimid_1",
"tenant": "tenantname_1"
},
"cloud_type": "IaaS"
},
"route_id": "router01",
"route_external": False
}
],
'cps': [
{
"cp_id": "cpId1",
"description": "",
"properties": {
"name": "",
"mac_address": "00:d9:00:82:11:e1",
"ip_address:": "192.168.1.21",
"ip_range_start": "192.168.1.20",
"ip_range_end": "192.168.1.29",
"floating_ip_address": {
"external_network": "extnet01",
"ip_address": "10.43.53.23"
},
"service_ip_address": "192.168.1.23",
"order": 1,
"bandwidth": 1000,
"vnic_type": "normal",
"allowed_address_pairs": [
{
"ip": "192.168.1.13",
"mac": "00:f3:43:20:a2:a3"
}
],
"bond": "none",
"bond_index": 1,
"macbond": "00:d9:00:82:11:d1",
"sfc_encapsulation": "",
"direction": "",
"gateway_ip": "192.168.199.1",
"netmask": "255.255.255.0",
"interface_name": "fe-01-02",
"is_virtual": False,
"function": "control"
},
"vl_id": "vldId1",
"vdu_id": "vdu1Id"
}
],
'local_storages': [
],
}
# get_tenant_id
c1_data_get_tenant_id = {
"tenants": [
{
"id": "1",
"name": "chinamobile"
}
]
}
c1_data_get_tenant_id_1 = {
"tenants": [
{
"id": "1",
"name": "tenantname"
}
]
}
# create_volume
c2_data_create_volume = {
"id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
"name": "volume1",
"returnCode": 1,
"vimId": "vim_volume_1",
"vimName": "vim_volume_1",
"tenantId": "vim_volume_1",
"volumeType": "123",
"availabilityZone": "availabilityZone",
"status": "availuable",
"createTime": "2015-12-02T06:39:40.000000",
"type": None,
"size": 40
}
# get_volume
c3_data_get_volume = {
"status": "available",
"name": "wangsong",
"attachments": [
{
"device": "/dev/vdc",
"serverId": "3030e666-528e-4954-88f5-cc21dab1262b",
"volumeId": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
"hostName": None,
"id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31"
}
],
"createTime": "2015-12-02T06:39:40.000000",
"type": None,
"id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
"size": 40
}
# create_network
c4_data_create_network = {
"returnCode": 0,
"vimId": "11111",
"vimName": "11111",
"status": "ACTIVE",
"id": "3c9eebdbbfd345658269340b9ea6fb73",
"name": "net1",
"tenantId": "tenant1",
"networkName": "ommnet",
"shared": True,
"vlanTransparent": True,
"networkType": "vlan",
"segmentationId": 202,
"physicalNetwork": "physnet1",
"routerExternal": False
}
# create_subnet
c5_data_create_subnet = {
"returnCode": 0,
"vimId": "11111",
"vimName": "11111",
"status": " ACTIVE",
"id": "d62019d3-bc6e-4319-9c1d-6722fc136a23",
"tenantId": "tenant1",
"networkId": "d32019d3-bc6e-4319-9c1d-6722fc136a22",
"networkName": "networkName",
"name": "subnet1",
"cidr": "10.43.35.0/24",
"ipVersion": 4,
"enableDhcp": 1,
"gatewayIp": "10.43.35.1",
"dnsNameservers": [],
"allocationPools": [
{
"start": "192.168.199.2",
"end": "192.168.199.254"
}
],
"hostRoutes": []
}
# create_ports
c6_data_create_port = {
"returnCode": 0,
"vimId": "11111",
"vimName": "11111",
"status": " ACTIVE",
"id": " 872019d3-bc6e-4319-9c1d-6722fc136afg",
"tenantId": "tenant1",
"name": "subnet1",
"networkId": "d32019d3-bc6e-4319-9c1d-6722fc136a22",
"networkName": "networkName",
"subnetId": "d62019d3-bc6e-4319-9c1d-6722fc136a23",
"subnetName": "subnet1",
"macAddress": "212.12.61.23",
"ip": "10.43.38.11",
"vnicType": "direct",
"securityGroups": ""
}
# create_flavor
c7_data_create_flavor = {
"returnCode": 0,
"vimId": "11111",
"vimName": "11111",
"id": "142019d3-bc6e-4319-9c1d-6722fc136afg",
"tenantId": "tenant1",
"name": "subnet1",
"vcpu": 5,
"memory": 2,
"disk": 40,
"ephemeral": 40,
"swap": 20,
"isPublic": True,
"extraSpecs": "testtt"
}
# list_image
c8_data_list_image = {
"vimid": "",
"vimname": "",
"images": [
{
"status": "active",
"id": "5e2757c1-f846-4727-915c-9a872553ed75",
"size": 862016,
"name": 'sss.vmdk'
}
]
}
# create_vm
c9_data_create_vm = {
"returnCode": 1,
"id": "3c9eebdbbfd345658269340b9ea6fb73",
"name": "vm1",
"vimId": "11111",
"vimName": "11111",
"tenantId": "tenant1",
"boot": "boot_1",
"nicArray": "dfdf",
"volumeArray": "dfdf",
"availabilityZone": "fdvfdv",
"flavorId": "fdvfdv",
"metadata": "fdvfdv",
"securityGroups": "fdvfdv",
"serverGroup": "fdvfdv",
"status": "ACTIVE"
}
# get_vm
c10_data_get_vm = {
"returnCode": 1,
"id": "3c9eebdbbfd345658269340b9ea6fb73",
"name": "vm1",
"vimId": "11111",
"vimName": "11111",
"tenantId": "tenant1",
"status": "ACTIVE"
}
vnfdModel = {
"volume_storages": [
{
"volume_storage_id": "test",
"properties": {
"location_info": {
"vimid": "vim_1",
"tenant": "chinamobile",
"availability_zone": "test",
},
"volume_name": "test",
"custom_volume_type": "test",
"size_of_storage": "\"10 GB\"",
},
"image_file": "test",
},
],
"vls": [
{
"vl_id": "test",
"properties": {
"location_info": {
"vimid": "test",
"tenant": "chinamobile",
},
"vl_profile": {
"networkName": "test",
"networkType": "test",
"physicalNetwork": "test",
"vlanTransparent": "test",
"segmentationId": "1",
"cidr": "test",
"dhcpEnabled": "test",
"gatewayIp": "test",
"startIp": "test",
"endIp": "test",
},
"connectivity_type": {
"layer_protocol": "ipv4",
},
"dns_nameservers": "test",
"host_routes": "test",
},
"route_external": "test",
}
],
"cps": [
{
"vdu_id": "test",
"cp_id": "cp1",
"networkId": "", # TODO
"subnetId": "", # TODO
"vl_id": "test",
"properties": {
"name": "test",
"mac_address": "test",
"protocol_data": [
{
"address_data": {
"l3_address_data": {
"fixed_ip_address": "test"
},
},
},
],
"vnic_type": "direct",
"role": "root",
"virtual_network_interface_requirements": [
{
"network_interface_requirements": {
"interfaceType": '{"schemaVersion": "0", "schemaLocation":"", "platformId": "generic", "mandatory": false, "configurationValue": "SR-IOV"}'
},
"support_mandatory": False,
"name": "SRIOV_Port",
"description": "sriov"
}
]
}
}
],
"vdus": [
{
"vdu_id": "test",
"properties": {
"location_info": {
"vimid": "test",
"tenant": "chinamobile",
"availability_zone": "test",
"vnfId": "",
"vnfName": "",
"cloudOwner": "",
"cloudRegionId": "",
"vduInfo": [
{
"vduName": "VDU_vbng_0",
"flavorId": "12345",
"directive": ""
}
]
},
"name": "test",
"inject_files": [],
"user_data": "test",
"meta_data": {},
},
"cps": [],
"type": "tosca.nodes.nfv.Vdu.Compute",
"virtual_compute": {
"virtual_cpu": {
"num_virtual_cpu": "16",
},
"virtual_memory": {
"virtual_mem_size": "8000 MB",
"vdu_memory_requirements": {
"memoryPageSize": "8 MB",
},
},
},
"virtual_storages": [{
"virtual_storage_id": "test",
"type_of_storage": "ephemeral",
"size_of_storage": "10 GB",
}],
"type": "tosca.nodes.nfv.Vdu.Compute",
"artifacts": [
{
"artifact_name": "sw_image",
"file": "sss.vmdk",
},
],
"volume_storages": [
{
"volume_storage_id": "test",
}
],
},
],
"image_files": [],
"routers": [],
"local_storages": [],
"vnf_exposed": {
"external_cps": [],
"forward_cps": []
},
"inputs": {
"pe1_id": {
"type": "string",
"description": "pe1_idofunderlayvpn"
},
"pe2_id": {
"type": "string",
"description": "pe2_idofunderlayvpn"
},
"serviceType": {
"type": "string",
"description": "serviceTypeofunderlayvpn"
},
"description": {
"type": "string",
"description": "descriptionofunderlayvpn"
},
"ac2_route": {
"type": "string",
"description": "ac2_routeofunderlayvpn"
},
"ac1_route": {
"type": "string",
"description": "ac1_routeofunderlayvpn"
},
"ac1_svlan": {
"type": "integer",
"description": "ac1_svlanofunderlayvpn"
},
"ac2_ip": {
"type": "string",
"description": "ac2_ipofunderlayvpn"
},
"ac1_ip": {
"type": "string",
"description": "ac1_ipofunderlayvpn"
},
"ac2_port": {
"type": "string",
"description": "ac2_portofunderlayvpn"
},
"topology": {
"type": "string",
"description": "topologyofunderlayvpn"
},
"technology": {
"type": "string",
"description": "technologyofunderlayvpn"
},
"ac1_port": {
"type": "string",
"description": "ac1_portofunderlayvpn"
},
"ac2_svlan": {
"type": "integer",
"description": "ac2_svlanofunderlayvpn"
},
"name": {
"type": "string",
"description": "Nameofunderlayervpn"
}
},
"metadata": {
"designer": "sdno",
"name": "underlayervpn",
"csarVersion": "1.0",
"csarType": "SSAR",
"csarProvider": "huawei",
"version": "1.0",
"type": "SSAR",
"id": "ns_underlayervpn_1_0"
}
}
vnfpackage_info = {
"imageInfo": [],
"csarId": "vOpenNAT",
"packageInfo": {
"csarName": "vOpenNAT.csar",
"vnfdModel": json.dumps(vnfdModel),
"vnfdProvider": "Intel",
"vnfdId": "openNAT_1.0",
"downloadUrl": "http://10.96.33.39:8806/static/catalog/vOpenNAT/vOpenNAT.csar",
"vnfVersion": "v1.0",
"vnfdVersion": "v1.0",
"vnfPackageId": "vOpenNAT"
}
}
single_vnf_lcm_op = {
"id": "99442b18-a5c7-11e8-998c-bf1755941f16",
"operationState": "STARTING",
"stateEnteredTime": "2018-07-09",
"startTime": "2018-07-09",
"vnfInstanceId": "cd552c9c-ab6f-11e8-b354-236c32aa91a1",
"grantId": None,
"operation": "SCALE",
"isAutomaticInvocation": False,
"operationParams": {},
"isCancelPending": False,
"cancelMode": None,
"error": None,
"resourceChanges": None,
"changedInfo": None,
"changedExtConnectivity": None,
"_links": {
"self": {
"href": "demo"
},
"vnfInstance": "demo"
}
}
vnflcmop_with_exclude_default = [{
"id": "99442b18-a5c7-11e8-998c-bf1755941f16",
"operationState": "STARTING",
"stateEnteredTime": "2018-07-09",
"startTime": "2018-07-09",
"vnfInstanceId": "cd552c9c-ab6f-11e8-b354-236c32aa91a1",
"grantId": None,
"operation": "SCALE",
"isAutomaticInvocation": False,
"isCancelPending": False,
"cancelMode": None,
"_links": {
"self": {
"href": "demo"
},
"vnfInstance": "demo"
}
}]
multiple_vnf_lcm_op = [{
"id": "a6b9415c-ab99-11e8-9d37-dbb5e0378955",
"operationState": "STARTING",
"stateEnteredTime": "2018-07-09",
"startTime": "2018-07-09",
"vnfInstanceId": "cd552c9c-ab6f-11e8-b354-236c32aa91a1",
"grantId": None,
"operation": "INSTANTIATE",
"isAutomaticInvocation": False,
"operationParams": {},
"isCancelPending": False,
"cancelMode": None,
"error": None,
"resourceChanges": None,
"changedInfo": None,
"changedExtConnectivity": None,
"_links": {
"self": {
"href": "demo"
},
"vnfInstance": "demo"
}
}]
# # vnfd_rawdata
# vnfd_rawdata = {
# "rawData": {
# "instance": {
# "metadata": {
# "designer": "sdno",
# "name": "underlayervpn",
# "csarVersion": "1.0",
# "csarType": "SSAR",
# "csarProvider": "huawei",
# "version": "1.0",
# "type": "SSAR",
# "id": "ns_underlayervpn_1_0"
# },
# "nodes": [
# {
# "id": "ac2_fdhrbk3dvan8hl5wifm9lp1e9",
# "type_name": "tosca.nodes.sdn.l3ac",
# "template_name": "ac2",
# "properties": {
# "ip": {
# "type_name": "string"
# },
# "route": {
# "type_name": "string"
# },
# "port": {
# "type_name": "string"
# },
# "svlan": {
# "type_name": "string"
# }
# },
# "interfaces": [
# {
# "name": "Standard",
# "type_name": "tosca.interfaces.node.lifecycle.Standard"
# }
# ],
# "capabilities": [
# {
# "name": "feature",
# "type_name": "tosca.capabilities.Node"
# },
# {
# "name": "ac",
# "type_name": "tosca.capabilities.sdn.ac"
# }
# ],
# "relationships": [
# {
# "target_node_id": "pe2_go3vo1ctxr1vlbl0ij8stbtj6",
# "target_capability_name": "feature"
# },
# {
# "target_node_id": "ac2_fdhrbk3dvan8hl5wifm9lp1e9",
# "target_capability_name": "feature"
# }
# ]
# },
# {
# "id": "ac1_jqows1ai0j0cmwk9jdvuknt97",
# "type_name": "tosca.nodes.sdn.l3ac",
# "template_name": "ac1",
# "properties": {
# "ip": {
# "type_name": "string"
# },
# "route": {
# "type_name": "string"
# },
# "port": {
# "type_name": "string"
# },
# "svlan": {
# "type_name": "string"
# }
# },
# "interfaces": [
# {
# "name": "Standard",
# "type_name": "tosca.interfaces.node.lifecycle.Standard"
# }
# ],
# "capabilities": [
# {
# "name": "feature",
# "type_name": "tosca.capabilities.Node"
# },
# {
# "name": "ac",
# "type_name": "tosca.capabilities.sdn.ac"
# }
# ],
# "relationships": [
# {
# "target_node_id": "pe1_e58ekps6m45g6w9egs9lue2j7",
# "target_capability_name": "feature"
# },
# {
# "target_node_id": "ac2_fdhrbk3dvan8hl5wifm9lp1e9",
# "target_capability_name": "feature"
# }
# ]
# },
# {
# "id": "vpn_ie0xim076f7cje67fvrrq9tg1",
# "type_name": "tosca.nodes.sdn.underlayVPN",
# "template_name": "vpn",
# "properties": {
# "serviceType": {
# "type_name": "string"
# },
# "description": {
# "type_name": "string"
# },
# "name": {
# "type_name": "string"
# },
# "topology": {
# "type_name": "string"
# }
# },
# "interfaces": [
# {
# "name": "Standard",
# "type_name": "tosca.interfaces.node.lifecycle.Standard"
# }
# ],
# "capabilities": [
# {
# "name": "feature",
# "type_name": "tosca.capabilities.Node"
# }
# ],
# "relationships": [
# {
# "target_node_id": "ac1_jqows1ai0j0cmwk9jdvuknt97",
# "target_capability_name": "feature"
# },
# {
# "target_node_id": "ac2_fdhrbk3dvan8hl5wifm9lp1e9",
# "target_capability_name": "feature"
# }
# ]
# },
# {
# "id": "pe1_e58ekps6m45g6w9egs9lue2j7",
# "type_name": "tosca.nodes.sdn.l3pe",
# "template_name": "pe1",
# "properties": {
# "id": {
# "type_name": "string"
# }
# },
# "interfaces": [
# {
# "name": "Standard",
# "type_name": "tosca.interfaces.node.lifecycle.Standard"
# }
# ],
# "capabilities": [
# {
# "name": "feature",
# "type_name": "tosca.capabilities.Node"
# },
# {
# "name": "pe",
# "type_name": "tosca.capabilities.sdn.pe"
# }
# ]
# },
# {
# "id": "pe2_go3vo1ctxr1vlbl0ij8stbtj6",
# "type_name": "tosca.nodes.sdn.l3pe",
# "template_name": "pe2",
# "properties": {
# "id": {
# "type_name": "string"
# }
# },
# "interfaces": [
# {
# "name": "Standard",
# "type_name": "tosca.interfaces.node.lifecycle.Standard"
# }
# ],
# "capabilities": [
# {
# "name": "feature",
# "type_name": "tosca.capabilities.Node"
# },
# {
# "name": "pe",
# "type_name": "tosca.capabilities.sdn.pe"
# }
# ]
# }
# ],
# "substitution": {
# "node_type_name": "tosca.nodes.sdn.ext.NS.ns_underlayervpn"
# },
# "inputs": {
# "ac2_ip": {
# "type_name": "string",
# "description": "ac2_ipofunderlayvpn"
# },
# "ac2_route": {
# "type_name": "string",
# "description": "ac2_routeofunderlayvpn"
# },
# "serviceType": {
# "type_name": "string",
# "description": "serviceTypeofunderlayvpn"
# },
# "description": {
# "type_name": "string",
# "description": "descriptionofunderlayvpn"
# },
# "pe2_id": {
# "type_name": "string",
# "description": "pe2_idofunderlayvpn"
# },
# "ac1_route": {
# "type_name": "string",
# "description": "ac1_routeofunderlayvpn"
# },
# "ac1_svlan": {
# "type_name": "integer",
# "description": "ac1_svlanofunderlayvpn"
# },
# "name": {
# "type_name": "string",
# "description": "Nameofunderlayervpn"
# },
# "ac1_ip": {
# "type_name": "string",
# "description": "ac1_ipofunderlayvpn"
# },
# "ac2_port": {
# "type_name": "string",
# "description": "ac2_portofunderlayvpn"
# },
# "pe1_id": {
# "type_name": "string",
# "description": "pe1_idofunderlayvpn"
# },
# "technology": {
# "type_name": "string",
# "description": "technologyofunderlayvpn"
# },
# "ac1_port": {
# "type_name": "string",
# "description": "ac1_portofunderlayvpn"
# },
# "ac2_svlan": {
# "type_name": "integer",
# "description": "ac2_svlanofunderlayvpn"
# },
# "topology": {
# "type_name": "string",
# "description": "topologyofunderlayvpn"
# }
# }
# }
# }
# }