summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhongyuzhao <zhao.hongyu@zte.com.cn>2019-08-19 17:28:42 +0800
committerhongyuzhao <zhao.hongyu@zte.com.cn>2019-08-19 17:28:50 +0800
commit6f5ac3474d65c5f4059bfbc70f824d605a476b5d (patch)
tree8848bd47934b9cfcab0d518077425ed8d429e808
parent37ae8ebc7838589a12757e166f30ff8b28db6a49 (diff)
Add vnfd validity check
Change-Id: I6d6a590d47c3c88fd5e3b594435f059326db2879 Issue-ID: VFC-1490 Signed-off-by: hongyuzhao <zhao.hongyu@zte.com.cn>
-rw-r--r--lcm/lcm/pub/verifyvnfd/const.py279
-rw-r--r--lcm/lcm/pub/verifyvnfd/tests.py4
2 files changed, 283 insertions, 0 deletions
diff --git a/lcm/lcm/pub/verifyvnfd/const.py b/lcm/lcm/pub/verifyvnfd/const.py
index abc0392d..6869dd85 100644
--- a/lcm/lcm/pub/verifyvnfd/const.py
+++ b/lcm/lcm/pub/verifyvnfd/const.py
@@ -545,3 +545,282 @@ vnfd_model2 = {
"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"
+ }
+}
diff --git a/lcm/lcm/pub/verifyvnfd/tests.py b/lcm/lcm/pub/verifyvnfd/tests.py
index 18f6ca38..86e2d045 100644
--- a/lcm/lcm/pub/verifyvnfd/tests.py
+++ b/lcm/lcm/pub/verifyvnfd/tests.py
@@ -31,3 +31,7 @@ class VerifyVnfdTest(unittest.TestCase):
def test_vnfd_verfify_success2(self):
ret = verifyvnfd.verify(const.vnfd_model2)
self.assertEqual(ret, [])
+
+ def test_vnfd_verfify_success3(self):
+ ret = verifyvnfd.verify(const.vnfd_model3)
+ self.assertEqual(ret, [])