Get flavor id from OOF. 36/73336/3
authorHaibin Huang <haibin.huang@intel.com>
Thu, 22 Nov 2018 03:15:33 +0000 (03:15 +0000)
committerHaibin Huang <haibin.huang@intel.com>
Thu, 22 Nov 2018 07:48:20 +0000 (07:48 +0000)
Change-Id: I62f602a1f64cb8bcd7c1741124286955c097037e
Issue-ID: VFC-1193
Signed-off-by: Haibin Huang <haibin.huang@intel.com>
lcm/lcm/nf/biz/instantiate_vnf.py
lcm/lcm/nf/const.py
lcm/lcm/pub/vimapi/adaptor.py
lcm/lcm/samples/tests.py

index 101c96f..682d18b 100644 (file)
@@ -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']:
index 4a71a4d..c11c099 100644 (file)
@@ -757,7 +757,7 @@ vnfdModel = {
                     "vduInfo": [
                         {
                             "vduName": "VDU_vbng_0",
-                            "flavorName": "flavor_1",
+                            "flavorId": "12345",
                             "directive": ""
                         }
                     ]
index bffdcbe..c84c4a7 100644 (file)
@@ -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"]
index dba0878..688e27c 100644 (file)
@@ -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)