Fix vfc-vnflcm unittests
[vfc/gvnfm/vnflcm.git] / lcm / lcm / nf / vnfs / const.py
1 # Copyright 2017 ZTE Corporation.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #         http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 from lcm.pub.utils.jobutil import enum
16
17 VNF_STATUS = enum(NULL='null', INSTANTIATING="instantiating", INACTIVE='inactive', ACTIVE="active",
18                   FAILED="failed", TERMINATING="terminating", SCALING="scaling", OPERATING="operating",
19                   UPDATING="updating", HEALING="healing")
20
21 inst_req_data = {
22     "flavourId": "flavour_1",
23     "instantiationLevelId": "instantiationLevel_1",
24     "extVirtualLinks": [
25         {
26             "vlInstanceId": "1",
27             "vim": {
28                 "vimInfoId": "1",
29                 "vimId": "1",
30                 "interfaceInfo": {
31                     "vimType": "vim",
32                     "apiVersion": "v2",
33                     "protocolType": "http"
34                 },
35                 "accessInfo": {
36                     "tenant": "tenant_vCPE",
37                     "username": "vCPE",
38                     "password": "vCPE_321"
39                 },
40                 "interfaceEndpoint": "http://10.43.21.105:80/"
41             },
42             "resourceId": "1246",
43             "extCps": [
44                 {
45                     "cpdId": "11",
46                     "addresses": [
47                         {
48                             "addressType": "MAC",
49                             "l2AddressData": "00:f3:43:20:a2:a3"
50                         },
51                         {
52                             "addressType": "IP",
53                             "l3AddressData": {
54                                 "iPAddressType": "IPv4",
55                                 "iPAddress": "192.168.104.2"
56                             }
57                         }
58                     ],
59                     "numDynamicAddresses": 0
60                 }
61             ]
62         },
63         {
64             "vlInstanceId": '55',
65             "resourceId": '55_network',
66             "resourceSubnetId": '55_subnet',
67             "cpdId": 'cpId1',
68             "vim": {
69                 "vimid": '55_vimid'
70             }
71         }
72     ],
73     "localizationLanguage": "en_US",
74     "additionalParams": {
75         "inputs": {
76             "key1": "test1",
77             "key2": "test2"
78         },
79         "extVirtualLinks": [
80             {
81                 "vlInstanceId": '55',
82                 "resourceId": '55_network',
83                 "resourceSubnetId": '55_subnet',
84                 "cpdId": 'cpId1',
85                 "vim": {
86                     "vimid": '55_vimid'
87                 }
88             }
89         ]
90     }
91 }
92
93 vnfd_model_dict = {
94     'metadata': {
95         'vendor': u'zte',
96         'is_shared': False,
97         'description': '',
98         'domain_type': u'CN',
99         'version': u'v4.14.10',
100         'vmnumber_overquota_alarm': False,
101         'cross_dc': False,
102         'vnf_type': u'SSS',
103         'vnfd_version': u'V00000001',
104         'id': u'sss-vnf-template',
105         'name': u'sss-vnf-template'
106     },
107     'vdus': [
108         {
109             "vdu_id": "vdu1Id",
110             "description": "vdu description",
111             "properties": {
112                 "name": "vduinstname",
113                 "vdu_type": "OMP",
114                 "key_vdu": True,
115                 "support_scaling": True,
116                 "location_info": {
117                     "vimid": "vimid",
118                     "tenant": "tenantname",
119                     "availability_zone": "zone1",
120                     "host": "host1"
121                 },
122                 "local_affinity_antiaffinity_rule": [
123                     {
124                         "affinity_antiaffinity": "anti-affinity",
125                         "scope": "node"
126                     },
127                     {
128                         "affinity_antiaffinity": "affinity",
129                         "scope": "zone"
130                     }
131                 ],
132                 "inject_data_list": [
133                     {
134                         "file_name": "abc.xml",
135                         "file_data": "<a>xxx</a><b>ssss</b>"
136                     }
137                 ],
138                 "storage_policy": "HIGH",
139                 "template_id": "26",
140                 "manual_scale_select_vim": False,
141                 "watchdog": {
142                     "enabledelay": 600000,
143                     "action": "reset"
144                 },
145                 "is_predefined": False,
146                 "allow_scale_updown": False,
147                 "inject_network_address": True,
148                 "inner_hugepage_num": 100,
149                 "inner_hugepage_size": "2048",
150                 "action": "add"
151             },
152             "image_file": u'sss',
153             "local_storages": [
154                 "local_storage_id1",
155                 "local_storage_id2"
156             ],
157             "volume_storages": [
158                 {
159                     "volume_storage_id": "volume_storage1",
160                     "location": "/usr/data",
161                     "device": "/dev/hda1"
162                 }
163             ],
164             "dependencies": [
165                 "vdu1Id",
166                 "vduNId"
167             ],
168             "nfv_compute": {
169                 "num_cpus": 4,
170                 "mem_size": "1 GB",
171                 "cpu_frequency": "1GHz",
172                 "flavor_extra_specs": {
173                     "hw: cpu_policy": "shared",
174                     "hw: cpu_max_threads": 50,
175                     "hw: cpu_sockets": 10,
176                     "hw: cpu_max_sockets": 20,
177                     "hw: cpu_max_cores": 8,
178                     "hw: cpu_threads": 30,
179                     "hw: numa_mem.0": 12288,
180                     "hw: hugepage_num": 100,
181                     "hw: high_performance": "dvs_high",
182                     "hw: numa_nodes": 1,
183                     "hw: numa_cpus.0": "2,4,8",
184                     "hw: numa_pci": True,
185                     "hw: cpu_cores": 4,
186                     "pci_passthrough: alias": "ColetoCreek: 1",
187                     "hw: mem_page_size": "large",
188                     "hw: mem_paging_mechanism": "EPT"
189                 }
190             },
191             "vls": [
192                 "vlId1",
193             ],
194             "cps": [
195                 "cpId1",
196             ],
197             "scalable": {
198                 "min_instances": 1,
199                 "max_instances": 2,
200                 "default_instances": 1
201             },
202             "interfaces": {
203                 "Standard": {
204                     "create": {
205                         "implementation": "<implementationScript>",
206                         "inputs": {
207                             "param1Name": "value1",
208                             "paramNName": "valueN"
209                         }
210                     },
211                     "configure": {
212                         "implementation": "<implementationScript>",
213                         "inputs": {
214                             "param1Name": "value1",
215                             "paramNName": "valueN"
216                         }
217                     },
218                     "start": {
219                         "implementation": "<implementationScript>",
220                         "inputs": {
221                             "param1Name": "value1",
222                             "paramNName": "valueN"
223                         }
224                     },
225                     "stop": {
226                         "implementation": "<implementationScript>",
227                         "inputs": {
228                             "param1Name": "value1",
229                             "paramNName": "valueN"
230                         }
231                     },
232                     "delete": {
233                         "implementation": "<implementationScript>",
234                         "inputs": {
235                             "param1Name": "value1",
236                             "paramNName": "valueN"
237                         }
238                     }
239                 }
240             },
241             "artifacts": [
242                 {
243                     "artifact_name": "software_version_file",
244                     "type": "tosca.artifacts.Deployment",
245                     "file": "AppSoftwares/zte-cn-xgw-V5.16.11_NFV-version.zip",
246                     "repository": "",
247                     "deploy_path": ""
248                 }
249             ]
250         }
251     ],
252     'volume_storages': [
253         {
254             "volume_storage_id": "volume_storage1",
255             "description": "",
256             "properties": {
257                 "size": "100 GB",
258                 "volume_id": "",
259                 "volume_name": "volumeStorage1",
260                 "custom_volume_type": "type1",
261                 "disk_type": "data",
262                 "delete_on_termination_vm": True,
263                 "location_info": {
264                     "vimid": "vimid_1",
265                     "tenant": "tenantname_1",
266                     "availability_zone": "zone1"
267                 },
268                 "is_predefined": False,
269                 "is_shared": False
270             },
271             "image_file": [
272                 "volume_image"
273             ]
274         }
275     ],
276     'policies': {
277         'scaling': {
278             'targets': {
279
280             },
281             'policy_id': u'policy_scale_sss-vnf-template',
282             'properties': {
283                 'policy_file': '*-vnfd.zip/*-vnf-policy.xml'
284             },
285             'description': ''
286         }
287     },
288     'image_files': [
289         {
290             'description': '',
291             'properties': {
292                 'name': u'opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
293                 'checksum': '',
294                 'disk_format': u'VMDK',
295                 'file_url': u'./zte-cn-sss-main-image/OMM/opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
296                 'container_type': 'vm',
297                 'version': '',
298                 'hypervisor_type': 'kvm'
299             },
300             'image_file_id': u'opencos_sss_omm_img_release_20150723-1-disk1'
301         },
302         {
303             'description': '',
304             'properties': {
305                 'name': u'sss.vmdk',
306                 'checksum': '',
307                 'disk_format': u'VMDK',
308                 'file_url': u'./zte-cn-sss-main-image/NE/sss.vmdk',
309                 'container_type': 'vm',
310                 'version': '',
311                 'hypervisor_type': 'kvm'
312             },
313             'image_file_id': u'sss'
314         }
315     ],
316     'vls': [
317         {
318             "vl_id": "vldId1",
319             "description": "",
320             "properties": {
321                 "name": "umac_241_control",
322                 "network_name": "umac_control",
323                 "is_predefined": False,
324                 "vendor": "zte",
325                 "netmask": "255.255.255.0",
326                 "mtu": 1500,
327                 "network_type": "vlan",
328                 "physical_network": "phynet01",
329                 "segmentation_id": "30",
330                 "vlan_transparent": False,
331                 "vds_name": "vds1",
332                 "cidr": "192.168.199.0/24",
333                 "ip_version": 4,
334                 "gateway_ip": "192.168.199.1",
335                 "dhcp_enabled": False,
336                 "dns_nameservers": [
337                     "192.168.0.4",
338                     "192.168.0.10"
339                 ],
340                 "start_ip": "192.168.199.2",
341                 "end_ip": "192.168.199.254",
342                 "host_routes": [
343                     {
344                         "destination": "10.43.26.0/24",
345                         "nexthop": "10.41.23.1"
346                     }
347                 ],
348                 "location_info": {
349                     "vimid": "vimid_1",
350                     "tenant": "tenantname_1"
351                 },
352                 "cloud_type": "IaaS"
353             },
354             "route_id": "router01",
355             "route_external": False
356         }
357     ],
358     'cps': [
359         {
360             "cp_id": "cpId1",
361             "description": "",
362             "properties": {
363                 "name": "",
364                 "mac_address": "00:d9:00:82:11:e1",
365                 "ip_address:": "192.168.1.21",
366                 "ip_range_start": "192.168.1.20",
367                 "ip_range_end": "192.168.1.29",
368                 "floating_ip_address": {
369                     "external_network": "extnet01",
370                     "ip_address": "10.43.53.23"
371                 },
372                 "service_ip_address": "192.168.1.23",
373                 "order": 1,
374                 "bandwidth": 1000,
375                 "vnic_type": "normal",
376                 "allowed_address_pairs": [
377                     {
378                         "ip": "192.168.1.13",
379                         "mac": "00:f3:43:20:a2:a3"
380                     }
381                 ],
382                 "bond": "none",
383                 "bond_index": 1,
384                 "macbond": "00:d9:00:82:11:d1",
385                 "sfc_encapsulation": "",
386                 "direction": "",
387                 "gateway_ip": "192.168.199.1",
388                 "netmask": "255.255.255.0",
389                 "interface_name": "fe-01-02",
390                 "is_virtual": False,
391                 "function": "control"
392             },
393             "vl_id": "vldId1",
394             "vdu_id": "vdu1Id"
395         }
396     ],
397     'local_storages': [
398
399     ],
400 }
401
402 # get_tenant_id
403 c1_data_get_tenant_id = {
404     "tenants": [
405         {
406             "id": "1",
407             "name": "tenantname_1"
408         }
409     ]
410 }
411
412 # create_volume
413 c2_data_create_volume = {
414     "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
415     "name": "volume1",
416     "returnCode": 1,
417     "vimId": "vim_volume_1",
418     "vimName": "vim_volume_1",
419     "tenantId": "vim_volume_1",
420     "volumeType": "123",
421     "availabilityZone": "availabilityZone",
422     "status": "availuable",
423     "createTime": "2015-12-02T06:39:40.000000",
424     "type": None,
425     "size": 40
426 }
427
428 # get_volume
429 c3_data_get_volume = {
430     "status": "available",
431     "name": "wangsong",
432     "attachments": [
433         {
434             "device": "/dev/vdc",
435             "serverId": "3030e666-528e-4954-88f5-cc21dab1262b",
436             "volumeId": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
437             "hostName": None,
438             "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31"
439         }
440     ],
441     "createTime": "2015-12-02T06:39:40.000000",
442     "type": None,
443     "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
444     "size": 40
445 }
446
447 # create_network
448 c4_data_create_network = {
449     "returnCode": 0,
450     "vimId": "11111",
451     "vimName": "11111",
452     "status": "ACTIVE",
453     "id": "3c9eebdbbfd345658269340b9ea6fb73",
454     "name": "net1",
455     "tenantId": "tenant1",
456     "networkName": "ommnet",
457     "shared": True,
458     "vlanTransparent": True,
459     "networkType": "vlan",
460     "segmentationId": 202,
461     "physicalNetwork": "ctrl",
462     "routerExternal": False
463 }
464
465 # create_subnet
466 c5_data_create_subnet = {
467     "returnCode": 0,
468     "vimId": "11111",
469     "vimName": "11111",
470     "status": " ACTIVE",
471     "id": "d62019d3-bc6e-4319-9c1d-6722fc136a23",
472     "tenantId": "tenant1",
473     "networkId": "d32019d3-bc6e-4319-9c1d-6722fc136a22",
474     "networkName": "networkName",
475     "name": "subnet1",
476     "cidr": "10.43.35.0/24",
477     "ipVersion": 4,
478     "enableDhcp": 1,
479     "gatewayIp": "10.43.35.1",
480     "dnsNameservers": [],
481     "allocationPools": [
482         {
483             "start": "192.168.199.2",
484             "end": "192.168.199.254"
485         }
486     ],
487     "hostRoutes": []
488 }
489
490 # create_ports
491 c6_data_create_port = {
492     "returnCode": 0,
493     "vimId": "11111",
494     "vimName": "11111",
495     "status": " ACTIVE",
496     "id": " 872019d3-bc6e-4319-9c1d-6722fc136afg",
497     "tenantId": "tenant1",
498     "name": "subnet1",
499     "networkId": "d32019d3-bc6e-4319-9c1d-6722fc136a22",
500     "networkName": "networkName",
501     "subnetId": "d62019d3-bc6e-4319-9c1d-6722fc136a23",
502     "subnetName": "subnet1",
503     "macAddress": "212.12.61.23",
504     "ip": "10.43.38.11",
505     "vnicType": "normal",
506     "securityGroups": ""
507 }
508
509 # create_flavor
510 c7_data_create_flavor = {
511     "returnCode": 0,
512     "vimId": "11111",
513     "vimName": "11111",
514     "id": "142019d3-bc6e-4319-9c1d-6722fc136afg",
515     "tenantId": "tenant1",
516     "name": "subnet1",
517     "vcpu": 5,
518     "memory": 2,
519     "disk": 40,
520     "ephemeral": 40,
521     "swap": 20,
522     "isPublic": True,
523     "extraSpecs": "testtt"
524 }
525
526 # list_image
527 c8_data_list_image = {
528     "vimid": "",
529     "vimname": "",
530     "images": [
531         {
532             "status": "active",
533             "id": "5e2757c1-f846-4727-915c-9a872553ed75",
534             "size": 862016,
535             "name": u'sss.vmdk'
536         }
537     ]
538 }
539
540 # create_vm
541 c9_data_create_vm = {
542     "returnCode": 1,
543     "id": "3c9eebdbbfd345658269340b9ea6fb73",
544     "name": "vm1",
545     "vimId": "11111",
546     "vimName": "11111",
547     "tenantId": "tenant1",
548     "boot": "boot_1",
549     "nicArray": "dfdf",
550     "volumeArray": "dfdf",
551     "availabilityZone": "fdvfdv",
552     "flavorId": "fdvfdv",
553     "metadata": "fdvfdv",
554     "securityGroups": "fdvfdv",
555     "serverGroup": "fdvfdv",
556     "status": "ACTIVE"
557 }
558
559 # get_vm
560 c10_data_get_vm = {
561     "returnCode": 1,
562     "id": "3c9eebdbbfd345658269340b9ea6fb73",
563     "name": "vm1",
564     "vimId": "11111",
565     "vimName": "11111",
566     "tenantId": "tenant1",
567     "status": "ACTIVE"
568 }
569
570 vnfpackage_info = {
571     "volume_storages": [],
572     "inputs": {
573         "pe1_id": {
574             "type": "string",
575             "description": "pe1_idofunderlayvpn"
576         },
577         "pe2_id": {
578             "type": "string",
579             "description": "pe2_idofunderlayvpn"
580         },
581         "serviceType": {
582             "type": "string",
583             "description": "serviceTypeofunderlayvpn"
584         },
585         "description": {
586             "type": "string",
587             "description": "descriptionofunderlayvpn"
588         },
589         "ac2_route": {
590             "type": "string",
591             "description": "ac2_routeofunderlayvpn"
592         },
593         "ac1_route": {
594             "type": "string",
595             "description": "ac1_routeofunderlayvpn"
596         },
597         "ac1_svlan": {
598             "type": "integer",
599             "description": "ac1_svlanofunderlayvpn"
600         },
601         "ac2_ip": {
602             "type": "string",
603             "description": "ac2_ipofunderlayvpn"
604         },
605         "ac1_ip": {
606             "type": "string",
607             "description": "ac1_ipofunderlayvpn"
608         },
609         "ac2_port": {
610             "type": "string",
611             "description": "ac2_portofunderlayvpn"
612         },
613         "topology": {
614             "type": "string",
615             "description": "topologyofunderlayvpn"
616         },
617         "technology": {
618             "type": "string",
619             "description": "technologyofunderlayvpn"
620         },
621         "ac1_port": {
622             "type": "string",
623             "description": "ac1_portofunderlayvpn"
624         },
625         "ac2_svlan": {
626             "type": "integer",
627             "description": "ac2_svlanofunderlayvpn"
628         },
629         "name": {
630             "type": "string",
631             "description": "Nameofunderlayervpn"
632         }
633     },
634     "vdus": [],
635     "image_files": [],
636     "routers": [],
637     "local_storages": [],
638     "vnf_exposed": {
639         "external_cps": [],
640         "forward_cps": []
641     },
642     "vls": [],
643     "cps": [],
644     "metadata": {
645         "designer": "sdno",
646         "name": "underlayervpn",
647         "csarVersion": "1.0",
648         "csarType": "SSAR",
649         "csarProvider": "huawei",
650         "version": "1.0",
651         "type": "SSAR",
652         "id": "ns_underlayervpn_1_0"
653     }
654 }
655
656 # # vnfd_rawdata
657 # vnfd_rawdata = {
658 #     "rawData": {
659 #         "instance": {
660 #             "metadata": {
661 #                 "designer": "sdno",
662 #                 "name": "underlayervpn",
663 #                 "csarVersion": "1.0",
664 #                 "csarType": "SSAR",
665 #                 "csarProvider": "huawei",
666 #                 "version": "1.0",
667 #                 "type": "SSAR",
668 #                 "id": "ns_underlayervpn_1_0"
669 #             },
670 #             "nodes": [
671 #                 {
672 #                     "id": "ac2_fdhrbk3dvan8hl5wifm9lp1e9",
673 #                     "type_name": "tosca.nodes.sdn.l3ac",
674 #                     "template_name": "ac2",
675 #                     "properties": {
676 #                         "ip": {
677 #                             "type_name": "string"
678 #                         },
679 #                         "route": {
680 #                             "type_name": "string"
681 #                         },
682 #                         "port": {
683 #                             "type_name": "string"
684 #                         },
685 #                         "svlan": {
686 #                             "type_name": "string"
687 #                         }
688 #                     },
689 #                     "interfaces": [
690 #                         {
691 #                             "name": "Standard",
692 #                             "type_name": "tosca.interfaces.node.lifecycle.Standard"
693 #                         }
694 #                     ],
695 #                     "capabilities": [
696 #                         {
697 #                             "name": "feature",
698 #                             "type_name": "tosca.capabilities.Node"
699 #                         },
700 #                         {
701 #                             "name": "ac",
702 #                             "type_name": "tosca.capabilities.sdn.ac"
703 #                         }
704 #                     ],
705 #                     "relationships": [
706 #                         {
707 #                             "target_node_id": "pe2_go3vo1ctxr1vlbl0ij8stbtj6",
708 #                             "target_capability_name": "feature"
709 #                         },
710 #                         {
711 #                             "target_node_id": "ac2_fdhrbk3dvan8hl5wifm9lp1e9",
712 #                             "target_capability_name": "feature"
713 #                         }
714 #                     ]
715 #                 },
716 #                 {
717 #                     "id": "ac1_jqows1ai0j0cmwk9jdvuknt97",
718 #                     "type_name": "tosca.nodes.sdn.l3ac",
719 #                     "template_name": "ac1",
720 #                     "properties": {
721 #                         "ip": {
722 #                             "type_name": "string"
723 #                         },
724 #                         "route": {
725 #                             "type_name": "string"
726 #                         },
727 #                         "port": {
728 #                             "type_name": "string"
729 #                         },
730 #                         "svlan": {
731 #                             "type_name": "string"
732 #                         }
733 #                     },
734 #                     "interfaces": [
735 #                         {
736 #                             "name": "Standard",
737 #                             "type_name": "tosca.interfaces.node.lifecycle.Standard"
738 #                         }
739 #                     ],
740 #                     "capabilities": [
741 #                         {
742 #                             "name": "feature",
743 #                             "type_name": "tosca.capabilities.Node"
744 #                         },
745 #                         {
746 #                             "name": "ac",
747 #                             "type_name": "tosca.capabilities.sdn.ac"
748 #                         }
749 #                     ],
750 #                     "relationships": [
751 #                         {
752 #                             "target_node_id": "pe1_e58ekps6m45g6w9egs9lue2j7",
753 #                             "target_capability_name": "feature"
754 #                         },
755 #                         {
756 #                             "target_node_id": "ac2_fdhrbk3dvan8hl5wifm9lp1e9",
757 #                             "target_capability_name": "feature"
758 #                         }
759 #                     ]
760 #                 },
761 #                 {
762 #                     "id": "vpn_ie0xim076f7cje67fvrrq9tg1",
763 #                     "type_name": "tosca.nodes.sdn.underlayVPN",
764 #                     "template_name": "vpn",
765 #                     "properties": {
766 #                         "serviceType": {
767 #                             "type_name": "string"
768 #                         },
769 #                         "description": {
770 #                             "type_name": "string"
771 #                         },
772 #                         "name": {
773 #                             "type_name": "string"
774 #                         },
775 #                         "topology": {
776 #                             "type_name": "string"
777 #                         }
778 #                     },
779 #                     "interfaces": [
780 #                         {
781 #                             "name": "Standard",
782 #                             "type_name": "tosca.interfaces.node.lifecycle.Standard"
783 #                         }
784 #                     ],
785 #                     "capabilities": [
786 #                         {
787 #                             "name": "feature",
788 #                             "type_name": "tosca.capabilities.Node"
789 #                         }
790 #                     ],
791 #                     "relationships": [
792 #                         {
793 #                             "target_node_id": "ac1_jqows1ai0j0cmwk9jdvuknt97",
794 #                             "target_capability_name": "feature"
795 #                         },
796 #                         {
797 #                             "target_node_id": "ac2_fdhrbk3dvan8hl5wifm9lp1e9",
798 #                             "target_capability_name": "feature"
799 #                         }
800 #                     ]
801 #                 },
802 #                 {
803 #                     "id": "pe1_e58ekps6m45g6w9egs9lue2j7",
804 #                     "type_name": "tosca.nodes.sdn.l3pe",
805 #                     "template_name": "pe1",
806 #                     "properties": {
807 #                         "id": {
808 #                             "type_name": "string"
809 #                         }
810 #                     },
811 #                     "interfaces": [
812 #                         {
813 #                             "name": "Standard",
814 #                             "type_name": "tosca.interfaces.node.lifecycle.Standard"
815 #                         }
816 #                     ],
817 #                     "capabilities": [
818 #                         {
819 #                             "name": "feature",
820 #                             "type_name": "tosca.capabilities.Node"
821 #                         },
822 #                         {
823 #                             "name": "pe",
824 #                             "type_name": "tosca.capabilities.sdn.pe"
825 #                         }
826 #                     ]
827 #                 },
828 #                 {
829 #                     "id": "pe2_go3vo1ctxr1vlbl0ij8stbtj6",
830 #                     "type_name": "tosca.nodes.sdn.l3pe",
831 #                     "template_name": "pe2",
832 #                     "properties": {
833 #                         "id": {
834 #                             "type_name": "string"
835 #                         }
836 #                     },
837 #                     "interfaces": [
838 #                         {
839 #                             "name": "Standard",
840 #                             "type_name": "tosca.interfaces.node.lifecycle.Standard"
841 #                         }
842 #                     ],
843 #                     "capabilities": [
844 #                         {
845 #                             "name": "feature",
846 #                             "type_name": "tosca.capabilities.Node"
847 #                         },
848 #                         {
849 #                             "name": "pe",
850 #                             "type_name": "tosca.capabilities.sdn.pe"
851 #                         }
852 #                     ]
853 #                 }
854 #             ],
855 #             "substitution": {
856 #                 "node_type_name": "tosca.nodes.sdn.ext.NS.ns_underlayervpn"
857 #             },
858 #             "inputs": {
859 #                 "ac2_ip": {
860 #                     "type_name": "string",
861 #                     "description": "ac2_ipofunderlayvpn"
862 #                 },
863 #                 "ac2_route": {
864 #                     "type_name": "string",
865 #                     "description": "ac2_routeofunderlayvpn"
866 #                 },
867 #                 "serviceType": {
868 #                     "type_name": "string",
869 #                     "description": "serviceTypeofunderlayvpn"
870 #                 },
871 #                 "description": {
872 #                     "type_name": "string",
873 #                     "description": "descriptionofunderlayvpn"
874 #                 },
875 #                 "pe2_id": {
876 #                     "type_name": "string",
877 #                     "description": "pe2_idofunderlayvpn"
878 #                 },
879 #                 "ac1_route": {
880 #                     "type_name": "string",
881 #                     "description": "ac1_routeofunderlayvpn"
882 #                 },
883 #                 "ac1_svlan": {
884 #                     "type_name": "integer",
885 #                     "description": "ac1_svlanofunderlayvpn"
886 #                 },
887 #                 "name": {
888 #                     "type_name": "string",
889 #                     "description": "Nameofunderlayervpn"
890 #                 },
891 #                 "ac1_ip": {
892 #                     "type_name": "string",
893 #                     "description": "ac1_ipofunderlayvpn"
894 #                 },
895 #                 "ac2_port": {
896 #                     "type_name": "string",
897 #                     "description": "ac2_portofunderlayvpn"
898 #                 },
899 #                 "pe1_id": {
900 #                     "type_name": "string",
901 #                     "description": "pe1_idofunderlayvpn"
902 #                 },
903 #                 "technology": {
904 #                     "type_name": "string",
905 #                     "description": "technologyofunderlayvpn"
906 #                 },
907 #                 "ac1_port": {
908 #                     "type_name": "string",
909 #                     "description": "ac1_portofunderlayvpn"
910 #                 },
911 #                 "ac2_svlan": {
912 #                     "type_name": "integer",
913 #                     "description": "ac2_svlanofunderlayvpn"
914 #                 },
915 #                 "topology": {
916 #                     "type_name": "string",
917 #                     "description": "topologyofunderlayvpn"
918 #                 }
919 #             }
920 #         }
921 #     }
922 # }