summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHaibin Huang <haibin.huang@intel.com>2018-11-22 03:15:33 +0000
committerHuang Haibin <haibin.huang@intel.com>2018-11-22 07:56:50 +0000
commit0bd22b1852ed5b9f655f08466dee267b8e08bb75 (patch)
treea457ad529ea61713cda7e6791367865775efea88
parent789dcca35f52c271f768378b6a3dfb64569c3877 (diff)
Get flavor id from OOF.
Change-Id: I62f602a1f64cb8bcd7c1741124286955c097037e Issue-ID: VFC-1193 Signed-off-by: Haibin Huang <haibin.huang@intel.com> (cherry picked from commit 319fb28898c8bcceb27aa9ee23218c9669eb323e)
-rw-r--r--lcm/lcm/nf/biz/instantiate_vnf.py2
-rw-r--r--lcm/lcm/nf/const.py2
-rw-r--r--lcm/lcm/pub/vimapi/adaptor.py44
-rw-r--r--lcm/lcm/samples/tests.py15
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)