From b93d7d14d01f85f8a5511ec978b3c0bb9c076e7c Mon Sep 17 00:00:00 2001 From: maopengzhang Date: Fri, 9 Nov 2018 20:27:50 +0800 Subject: fix some storage parameter error fix some storage parameter error, etc Change-Id: I3e110ff1a8ed397be797785f4805ff188336ebd4 Issue-ID: VFC-1158 Signed-off-by: maopengzhang --- lcm/lcm/jobs/serializers.py | 8 ++++---- lcm/lcm/nf/const.py | 13 +++++++------ lcm/lcm/pub/vimapi/adaptor.py | 30 +++++++++++++++++------------- lcm/lcm/samples/tests.py | 13 +++++++------ 4 files changed, 35 insertions(+), 29 deletions(-) diff --git a/lcm/lcm/jobs/serializers.py b/lcm/lcm/jobs/serializers.py index afaa40e8..69359a7a 100644 --- a/lcm/lcm/jobs/serializers.py +++ b/lcm/lcm/jobs/serializers.py @@ -18,16 +18,16 @@ from rest_framework import serializers class JobHistorySerializer(serializers.Serializer): status = serializers.CharField(help_text="Status of job", required=True) progress = serializers.CharField(help_text="Progress of job", required=True) - statusDescription = serializers.CharField(help_text="Description of job", required=False, allow_null=True) - errorCode = serializers.CharField(help_text="Error code of job", required=False, allow_null=True) + statusDescription = serializers.CharField(help_text="Description of job", required=False, allow_null=True, allow_blank=True) + errorCode = serializers.CharField(help_text="Error code of job", required=False, allow_null=True, allow_blank=True) responseId = serializers.CharField(help_text="Response index of job", required=True) class JobDescriptorSerializer(serializers.Serializer): status = serializers.CharField(help_text="Status of job", required=True) progress = serializers.CharField(help_text="Progress of job", required=True) - statusDescription = serializers.CharField(help_text="Description of job", required=False, allow_null=True) - errorCode = serializers.CharField(help_text="Error code of job", required=False, allow_null=True) + statusDescription = serializers.CharField(help_text="Description of job", required=False, allow_null=True, allow_blank=True) + errorCode = serializers.CharField(help_text="Error code of job", required=False, allow_null=True, allow_blank=True) responseId = serializers.CharField(help_text="Response index of job", required=True) responseHistoryList = JobHistorySerializer(help_text="History of job", many=True) diff --git a/lcm/lcm/nf/const.py b/lcm/lcm/nf/const.py index f4b9ec5f..9cedf4bc 100644 --- a/lcm/lcm/nf/const.py +++ b/lcm/lcm/nf/const.py @@ -247,9 +247,9 @@ vnfd_model_dict = { "local_storage_id1", "local_storage_id2" ], - "volume_storages": [ + "virtual_storages": [ { - "volume_storage_id": "volume_storage1", + "virtual_storage_id": "volume_storage1", "location": "/usr/data", "device": "/dev/hda1" } @@ -340,7 +340,7 @@ vnfd_model_dict = { "volume_storage_id": "volume_storage1", "description": "", "properties": { - "size": "100 GB", + "size": "\"100 GB\"", "volume_id": "", "volume_name": "volumeStorage1", "custom_volume_type": "type1", @@ -674,7 +674,7 @@ vnfdModel = { }, "volume_name": "test", "custom_volume_type": "test", - "size": "10 GB", + "size_of_storage": "\"10 GB\"", }, "image_file": "test", }, @@ -780,10 +780,11 @@ vnfdModel = { }, }, }, - "virtual_storage": { + "virtual_storages": [{ + "virtual_storage_id": "test", "type_of_storage": "ephemeral", "size_of_storage": "10 GB", - }, + }], "type": "tosca.nodes.nfv.Vdu.Compute", "artifacts": [ { diff --git a/lcm/lcm/pub/vimapi/adaptor.py b/lcm/lcm/pub/vimapi/adaptor.py index 070eb6b4..8542e113 100644 --- a/lcm/lcm/pub/vimapi/adaptor.py +++ b/lcm/lcm/pub/vimapi/adaptor.py @@ -306,7 +306,7 @@ def create_flavor(vim_cache, res_cache, data, flavor, do_notify, res_type): location_info = flavor["properties"]["location_info"] vim_id, tenant_name = location_info["vimid"], location_info["tenant"] virtual_compute = flavor["virtual_compute"] - virtual_storage = flavor["virtual_storage"] + virtual_storages = flavor["virtual_storages"] virtual_cpu = ignore_case_get(virtual_compute, "virtual_cpu") virtual_memory = ignore_case_get(virtual_compute, "virtual_memory") param = { @@ -318,10 +318,11 @@ def create_flavor(vim_cache, res_cache, data, flavor, do_notify, res_type): # Using flavor name returned by OOF to search falvor vdu_id = ignore_case_get(flavor, "vdu_id") + aai_flavor = None for one_vdu in location_info["vduInfo"]: if one_vdu["vduName"] == vdu_id: + aai_flavor = search_flavor_aai(vim_id, one_vdu["flavorName"]) break - aai_flavor = search_flavor_aai(vim_id, one_vdu["flavorName"]) # Add aai flavor if aai_flavor: @@ -329,15 +330,18 @@ def create_flavor(vim_cache, res_cache, data, flavor, do_notify, res_type): do_notify(res_type, ret) set_res_cache(res_cache, res_type, flavor["vdu_id"], ret["flavor-id"]) else: - disk_type = ignore_case_get(virtual_storage, "type_of_storage") - disk_size = int(ignore_case_get(virtual_storage, "size_of_storage").replace('GB', '').strip()) - if disk_type == "root": - param["disk"] = disk_size - elif disk_type == "ephemeral": - param["ephemeral"] = disk_size - elif disk_type == "swap": - param["swap"] = disk_size - + for virtual_storage in virtual_storages: + vs_id = virtual_storage["virtual_storage_id"] + for vs in data["volume_storages"]: + if vs["volume_storage_id"] == vs_id: + disk_type = ignore_case_get(vs["properties"], "type_of_storage") + disk_size = int(ignore_case_get(vs["properties"], "size_of_storage").replace('GB', '').replace('"', '').strip()) + if disk_type == "root": + param["disk"] = disk_size + elif disk_type == "ephemeral": + param["ephemeral"] = disk_size + elif disk_type == "swap": + param["swap"] = disk_size tenant_id = get_tenant_id(vim_cache, vim_id, tenant_name) logger.debug("param:%s" % param) ret = api.create_flavor(vim_id, tenant_id, param) @@ -376,9 +380,9 @@ def create_vm(vim_cache, res_cache, data, vm, do_notify, res_type): break if "imageId" not in param["boot"]: raise VimException("Undefined artifacts image(%s)" % vm["artifacts"], ERR_CODE) - elif vm["volume_storages"]: + elif vm["virtual_storages"]: param["boot"]["type"] = BOOT_FROM_VOLUME - vol_id = vm["volume_storages"][0]["volume_storage_id"] + vol_id = vm["virtual_storages"][0]["virtual_storage_id"] param["boot"]["volumeId"] = get_res_id(res_cache, RES_VOLUME, vol_id) else: raise VimException("No image and volume defined", ERR_CODE) diff --git a/lcm/lcm/samples/tests.py b/lcm/lcm/samples/tests.py index a1d13be4..d77845b0 100644 --- a/lcm/lcm/samples/tests.py +++ b/lcm/lcm/samples/tests.py @@ -40,10 +40,11 @@ inst_res_data = { "cpu_architecture": "generic" }, }, - "virtual_storage": { + "virtual_storages": [{ + "virtual_storage_id": "volume_storage1", "type_of_storage": "root", - "size_of_storage": "40 GB" - }, + "size_of_storage": "\"40 GB\"" + }], "artifacts": [ { "artifact_name": "sw_image", @@ -112,11 +113,11 @@ inst_res_data = { "volume_storage_id": "volume_storage1", "description": "", "properties": { - "size": "100 GB", + "size_of_storage": "\"100 GB\"", "volume_id": "", "volume_name": "volumeStorage1", "custom_volume_type": "type1", - "disk_type": "data", + "type_of_storage": "root", "delete_on_termination_vm": True, "location_info": { "vimid": "f1e33529-4a88-4155-9d7a-893cf2c80527", @@ -136,7 +137,7 @@ inst_res_data = { "local_storage_id": "omp_local_disk1", "description": "", "properties": { - "size": "100 GB", + "size": "\"100 GB\"", "disk_type": "root", }, } -- cgit 1.2.3-korg