# 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. vnfd_model1 = { '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", "vl_profile": {"networkName": "test"}, "connectivity_type": {} }, "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", "protocol_data": [ { "address_data": { "l3_address_data": { "fixed_ip_address": "test" }, }, }, ] }, "vl_id": "vldId1", "vdu_id": "vdu1Id" } ], 'local_storages': [ ], } vnfd_model2 = { "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": [ { "destination": "10.43.26.0/24", "nexthop": "10.41.23.1" } ], }, "route_external": False, } ], "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" } } vnfd_model3 = { "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", }, ], "vnf": { "type": "tosca.nodes.nfv.VNF", "requirements": { "virtual_link": [ "ext_cp", "virtual_link" ] }, "properties": { "descriptor_id": "b1bb0ce7-1234-4fa7-95ed-4840d70a1179", "flavour_description": "simple", "descriptor_verison": "1.0", "software_version": "1.0.0", "template_name": "test", "vnfm_info": [ "vnfm" ], "descriptor_version": "1.0.0", "provider": "zte", "flavour_id": "simple", "product_name": "test" }, "capabilities": { }, "metadata": { "template_name": "test", "template_version": "1.0", "template_author": "ZTE" } }, "vdus": [ { "description": "", "virtual_storages": [ { "virtual_storage_id": "test", "type_of_storage": "ephemeral", "size_of_storage": "10 GB", } ], "volume_storages": [ { "volume_storage_id": "test", } ], "vdu_id": "sunshine", "artifacts": [ { "artifact_name": "sw_image", "type": "tosca.artifacts.nfv.SwImage", "file": "sss.vmdk" } ], "dependencies": [ ], "virtual_compute": { "virtual_cpu": { "num_virtual_cpu": 2 }, "virtual_memory": { "virtual_mem_size": "4096 MB" }, }, "vls": [ ], "cps": [ "ext_cp" ], "type": "tosca.nodes.nfv.Vdu.Compute", "properties": { "vdu_profile": { "max_number_of_instances": 3, "min_number_of_instances": 1 }, "name": "sunshine1234", "sw_image_data": { "operating_system": "linux", "name": "ubuntu", "checksum": { "hash": "d0e7828293355a07c2dccaaa765c80b507e60e6167067c950dc2e6b0da0dbd34", "algorithm": "SHA-256" }, "min_ram": "2 GB", "disk_format": "qcow2", "version": 16.04, "container_format": "bare", "min_disk": "2 GB", "size": "2 GB" }, "description": "vdu test", "location_info": { "vimid": "", "tenant": "", "availability_zone": "", "vnfId": "", "vnfName": "", "cloudOwner": "", "cloudRegionId": "", "vduInfo": [ { "vduName": "sunshine1234", "flavorId": "12345", "directive": "" } ] } } } ], "description": "test", "inputs": { }, "graph": { "sunshine": [ "ext_cp" ], "ext_cp": [ ] }, "basepath": "/tmp/tmpil6wVG", "vnf_exposed": { "external_cps": [ { "key_name": "virtual_link", "cpd_id": "ext_cp" } ], "forward_cps": [ ] }, "policies": [ { "type": "tosca.policies.nfv.InstantiationLevels", "targets": "", "properties": { "default_level": "instantiation_level_1", "levels": { "instantiation_level_1": { "scale_info": { "sunshine_aspect": { "scale_level": 0 } }, "description": "vnf test instantiation_level_1" }, "instantiation_level_2": { "scale_info": { "sunshine_aspect": { "scale_level": 1 } }, "description": "vnf test instantiation_level_2" }, "instantiation_level_3": { "scale_info": { "sunshine_aspect": { "scale_level": 2 } }, "description": "vnf test instantiation_level_3" } } } }, { "type": "tosca.policies.nfv.VduInstantiationLevels", "targets": [ "sunshine" ], "properties": { "levels": { "instantiation_level_1": { "number_of_instances": 1 }, "instantiation_level_2": { "number_of_instances": 2 }, "instantiation_level_3": { "number_of_instances": 3 } } } }, { "type": "tosca.policies.nfv.ScalingAspects", "targets": "", "properties": { "aspects": { "sunshine_aspect": { "max_scale_level": 2, "description": "sunshine aspect", "name": "sunshine_aspect", "step_deltas": [ "sunshine_delta" ] } } } }, { "type": "tosca.policies.nfv.VduInitialDelta", "targets": [ "sunshine" ], "properties": { "initial_delta": { "number_of_instances": 1 } } }, { "type": "tosca.policies.nfv.VduScalingAspectDeltas", "targets": [ "sunshine" ], "properties": { "deltas": { "sunshine_delta": { "number_of_instances": 1 } }, "aspect": "sunshine_aspect" } } ], "vls": [ ], "cps": [ { "vl_id": "", "description": "", "vdu_id": "sunshine", "properties": { "trunk_mode": "false", "protocol_data": [{ "address_data": { "address_type": "ip_address", "l3_address_data": { "floating_ip_activated": False, "ip_address_assignment": False } } }] }, "cp_id": "ext_cp", "cpd_id": "ext_cp" } ], "metadata": { "template_name": "test", "template_version": "1.0", "template_author": "ZTE" } } vnfd_model_miss_required = { "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", }, ], "vnf": { "type": "tosca.nodes.nfv.VNF", "requirements": { "virtual_link": [ "ext_cp", "virtual_link" ] }, "properties": { "descriptor_id": "b1bb0ce7-1234-4fa7-95ed-4840d70a1179", "flavour_description": "simple", "descriptor_verison": "1.0", "software_version": "1.0.0", "template_name": "test", "vnfm_info": [ "vnfm" ], "descriptor_version": "1.0.0", "provider": "zte", "flavour_id": "simple", "product_name": "test" }, "capabilities": { }, "metadata": { "template_name": "test", "template_version": "1.0", "template_author": "ZTE" } }, "vdus": [ { "description": "", "virtual_storages": [ { "virtual_storage_id": "test", "type_of_storage": "ephemeral", "size_of_storage": "10 GB", } ], "volume_storages": [ { "volume_storage_id": "test", } ], "vdu_id": "sunshine", "artifacts": [ { "artifact_name": "sw_image", "type": "tosca.artifacts.nfv.SwImage", "file": "sss.vmdk" } ], "dependencies": [ ], "virtual_compute": { "virtual_cpu": { "num_virtual_cpu": 2 }, "virtual_memory": { "virtual_mem_size": "4096 MB" }, }, "vls": [ ], "cps": [ "ext_cp" ], "type": "tosca.nodes.nfv.Vdu.Compute", "properties": { "vdu_profile": { "max_number_of_instances": 3, "min_number_of_instances": 1 }, "name": "sunshine1234", "sw_image_data": { "operating_system": "linux", "name": "ubuntu", "checksum": { "hash": "d0e7828293355a07c2dccaaa765c80b507e60e6167067c950dc2e6b0da0dbd34", "algorithm": "SHA-256" }, "min_ram": "2 GB", "disk_format": "qcow2", "version": 16.04, "container_format": "bare", "min_disk": "2 GB", "size": "2 GB" }, "description": "vdu test", "location_info": { "vimid": "", "tenant": "", "availability_zone": "", "vnfId": "", "vnfName": "", "cloudOwner": "", "cloudRegionId": "", "vduInfo": [ { "vduName": "sunshine1234", "flavorId": "12345", "directive": "" } ] } } } ], "description": "test", "inputs": { }, "graph": { "sunshine": [ "ext_cp" ], "ext_cp": [ ] }, "basepath": "/tmp/tmpil6wVG", "vnf_exposed": { "external_cps": [ { "key_name": "virtual_link", "cpd_id": "ext_cp" } ], "forward_cps": [ ] }, "policies": [ { "type": "tosca.policies.nfv.InstantiationLevels", "targets": "", "properties": { "default_level": "instantiation_level_1", "levels": { "instantiation_level_1": { "scale_info": { "sunshine_aspect": { "scale_level": 0 } }, "description": "vnf test instantiation_level_1" }, "instantiation_level_2": { "scale_info": { "sunshine_aspect": { "scale_level": 1 } }, "description": "vnf test instantiation_level_2" }, "instantiation_level_3": { "scale_info": { "sunshine_aspect": { "scale_level": 2 } }, "description": "vnf test instantiation_level_3" } } } }, { "type": "tosca.policies.nfv.VduInstantiationLevels", "targets": [ "sunshine" ], "properties": { "levels": { "instantiation_level_1": { "number_of_instances": 1 }, "instantiation_level_2": { "number_of_instances": 2 }, "instantiation_level_3": { "number_of_instances": 3 } } } }, { "type": "tosca.policies.nfv.ScalingAspects", "targets": "", "properties": { "aspects": { "sunshine_aspect": { "max_scale_level": 2, "description": "sunshine aspect", "name": "sunshine_aspect", "step_deltas": [ "sunshine_delta" ] } } } }, { "type": "tosca.policies.nfv.VduInitialDelta", "targets": [ "sunshine" ], "properties": { "initial_delta": { "number_of_instances": 1 } } }, { "type": "tosca.policies.nfv.VduScalingAspectDeltas", "targets": [ "sunshine" ], "properties": { "deltas": { "sunshine_delta": { "number_of_instances": 1 } }, "aspect": "sunshine_aspect" } } ], "vls": [ { # "vl_id": "test", //required "properties": { "location_info": { "vimid": "test", "tenant": "chinamobile", }, "vl_profile": { # "networkName": "test", //required "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": False, } ], "cps": [ { "vl_id": "", "description": "", "vdu_id": "sunshine", "properties": { "trunk_mode": "false", "protocol_data": [{ "address_data": { "address_type": "ip_address", # "l3_address_data": { # "floating_ip_activated": False, # "ip_address_assignment": False # } } }] }, # "cp_id": "ext_cp", //required "cpd_id": "ext_cp" } ], "metadata": { "template_name": "test", "template_version": "1.0", "template_author": "ZTE" } }