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