diff options
author | Haibin Huang <haibin.huang@intel.com> | 2018-11-22 03:15:33 +0000 |
---|---|---|
committer | Haibin Huang <haibin.huang@intel.com> | 2018-11-22 07:48:20 +0000 |
commit | 319fb28898c8bcceb27aa9ee23218c9669eb323e (patch) | |
tree | a457ad529ea61713cda7e6791367865775efea88 | |
parent | b2c15bc4a66f804d462e213a7cd16aa5abe24931 (diff) |
Get flavor id from OOF.
Change-Id: I62f602a1f64cb8bcd7c1741124286955c097037e
Issue-ID: VFC-1193
Signed-off-by: Haibin Huang <haibin.huang@intel.com>
-rw-r--r-- | lcm/lcm/nf/biz/instantiate_vnf.py | 2 | ||||
-rw-r--r-- | lcm/lcm/nf/const.py | 2 | ||||
-rw-r--r-- | lcm/lcm/pub/vimapi/adaptor.py | 44 | ||||
-rw-r--r-- | lcm/lcm/samples/tests.py | 15 |
4 files changed, 14 insertions, 49 deletions
diff --git a/lcm/lcm/nf/biz/instantiate_vnf.py b/lcm/lcm/nf/biz/instantiate_vnf.py index 101c96fd..682d18b6 100644 --- a/lcm/lcm/nf/biz/instantiate_vnf.py +++ b/lcm/lcm/nf/biz/instantiate_vnf.py @@ -178,7 +178,7 @@ class InstantiateVnf(Thread): if oof_vimid and oof_vimid != "none": vimid = oof_vimid vdu_info.append({"vduName": flavor["resourceProviderId"], - "flavorName": flavor["vimFlavourId"], + "flavorId": flavor["vimFlavourId"], "vimid": vimid}) for resource_type in ['vdus', 'vls', 'cps', 'volume_storages']: diff --git a/lcm/lcm/nf/const.py b/lcm/lcm/nf/const.py index 4a71a4d1..c11c0996 100644 --- a/lcm/lcm/nf/const.py +++ b/lcm/lcm/nf/const.py @@ -757,7 +757,7 @@ vnfdModel = { "vduInfo": [ { "vduName": "VDU_vbng_0", - "flavorName": "flavor_1", + "flavorId": "12345", "directive": "" } ] diff --git a/lcm/lcm/pub/vimapi/adaptor.py b/lcm/lcm/pub/vimapi/adaptor.py index bffdcbe6..c84c4a7f 100644 --- a/lcm/lcm/pub/vimapi/adaptor.py +++ b/lcm/lcm/pub/vimapi/adaptor.py @@ -19,7 +19,6 @@ import os import base64 from lcm.pub.utils.values import ignore_case_get, set_opt_val -from lcm.pub.msapi.aai import get_flavor_info from . import api from .exceptions import VimException from lcm.pub.exceptions import NFLCMException @@ -258,7 +257,7 @@ def create_port(vim_cache, res_cache, data, port, do_notify, res_type): subnet_id = get_res_id(res_cache, RES_SUBNET, port["vl_id"]) param = { "networkId": network_id, - "name": port["properties"].get("name", "") + "name": port["cp_id"] } set_opt_val(param, "subnetId", subnet_id) set_opt_val(param, "macAddress", ignore_case_get(port["properties"], "mac_address")) @@ -287,29 +286,6 @@ def create_port(vim_cache, res_cache, data, port, do_notify, res_type): set_res_cache(res_cache, res_type, port["cp_id"], ret["id"]) -def parse_unit(val, base_unit): - recognized_units = ["B", "kB", "KiB", "MB", "MiB", "GB", "GiB", "TB", "TiB"] - units_rate = [1, 1000, 1024, 1000000, 1048576, 1000000000, 1073741824, 1000000000000, 1099511627776] - unit_rate_map = {unit.upper(): rate for unit, rate in zip(recognized_units, units_rate)} - num_unit = val.strip().split(" ") - if len(num_unit) != 2: - return val.strip - num, unit = num_unit[0], num_unit[1] - return int(num) * unit_rate_map[unit.upper()] / unit_rate_map[base_unit.upper()] - - -def search_flavor_aai(vim_id, flavor_name): - aai_flavors = get_flavor_info(vim_id) - if not aai_flavors: - return None - aai_flavor = aai_flavors["flavor"] - for one_aai_flavor in aai_flavor: - if one_aai_flavor["flavor-name"].find(flavor_name) == -1: - return one_aai_flavor - - return None - - 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"] @@ -324,19 +300,19 @@ def create_flavor(vim_cache, res_cache, data, flavor, do_notify, res_type): "isPublic": True } - # Using flavor name returned by OOF to search falvor - vdu_id = ignore_case_get(flavor, "vdu_id") - aai_flavor = None + # Get flavor id from OOF + vdu_id = ignore_case_get(flavor, "vdu_id", "") + flavor_id = "" for one_vdu in location_info["vduInfo"]: if one_vdu["vduName"] == vdu_id: - aai_flavor = search_flavor_aai(vim_id, one_vdu["flavorName"]) + flavor_id = ignore_case_get(one_vdu, "flavorId", "") break - # Add aai flavor - if aai_flavor: - ret = aai_flavor - do_notify(res_type, ret) - set_res_cache(res_cache, res_type, flavor["vdu_id"], ret["flavor-id"]) + # Add check if OOF return flavor id has value + # If value is not None, we use it. + # If value is None, we will create flavor again. + if flavor_id: + set_res_cache(res_cache, res_type, flavor["vdu_id"], flavor_id) else: for virtual_storage in virtual_storages: vs_id = virtual_storage["virtual_storage_id"] diff --git a/lcm/lcm/samples/tests.py b/lcm/lcm/samples/tests.py index dba0878c..688e27cf 100644 --- a/lcm/lcm/samples/tests.py +++ b/lcm/lcm/samples/tests.py @@ -96,7 +96,7 @@ inst_res_data = { "vduInfo": [ { "vduName": "VDU_vbng_0", - "flavorName": "flavor_1", + "flavorId": "12345", "directive": "", }, ] @@ -322,15 +322,6 @@ c5_data_create_flavor = { "id": "6456", } -c5_data_get_flavor = { - "flavor": [ - { - "flavor-id": "111111", - "flavor-name": "flavor_1", - } - ] -} - c6_data_list_image = { "images": [ { @@ -373,8 +364,7 @@ class SampleViewTest(unittest.TestCase): r2_data_create_network = [0, json.JSONEncoder().encode(c2_data_create_network), '200'] r3_data_create_subnet = [0, json.JSONEncoder().encode(c3_data_create_subnet), '200'] r4_data_create_port = [0, json.JSONEncoder().encode(c4_data_create_port), '200'] - r5_data_get_flavor = [0, json.JSONEncoder().encode(c5_data_get_flavor), '200'] - r5_data_create_flavor = [0, json.JSONEncoder().encode(c5_data_create_flavor), '200'] + # r5_data_create_flavor = [0, json.JSONEncoder().encode(c5_data_create_flavor), '200'] r6_data_list_image = [0, json.JSONEncoder().encode(c6_data_list_image), '200'] r6_data_create_vm = [0, json.JSONEncoder().encode(c6_data_create_vm), '200'] r6_data_get_vm = [0, json.JSONEncoder().encode(c6_data_get_vm), '200'] @@ -384,7 +374,6 @@ class SampleViewTest(unittest.TestCase): r2_data_create_network, r3_data_create_subnet, r4_data_create_port, - r5_data_get_flavor, r5_data_create_flavor, r6_data_list_image, r6_data_create_vm, r6_data_get_vm] resp = self.client.post(inst_res_url, data=json.dumps(inst_res_data), content_type='application/json') self.failUnlessEqual(status.HTTP_204_NO_CONTENT, resp.status_code) |