summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHuang Haibin <haibin.huang@intel.com>2018-09-10 16:48:13 +0800
committerHuang Haibin <haibin.huang@intel.com>2018-09-10 17:05:34 +0800
commit8201d92a453fb182b8fd8c7a35489001a368629d (patch)
treee2e437ad0615e5e9cec1872cab5bfb3c3f0192c0
parent86af279acebf863b46693e8ba0f2f43013b2b66e (diff)
Extrat data from gvnfmdriver to vnflcm
When OOF return data to NSLCM which will be formated in NSLCM. GVNFM will get data from NSLCM in the process of granting vnf. Change-Id: If1a550517886afefc9c00143256c1df4285d5259 Issue-ID: VFC-1085 Signed-off-by: Huang Haibin <haibin.huang@intel.com>
-rw-r--r--lcm/lcm/nf/biz/grant_vnf.py1
-rw-r--r--lcm/lcm/nf/biz/instantiate_vnf.py31
-rw-r--r--lcm/lcm/nf/tests/test_instantiate_vnf.py22
3 files changed, 48 insertions, 6 deletions
diff --git a/lcm/lcm/nf/biz/grant_vnf.py b/lcm/lcm/nf/biz/grant_vnf.py
index a92f365e..0889e6dc 100644
--- a/lcm/lcm/nf/biz/grant_vnf.py
+++ b/lcm/lcm/nf/biz/grant_vnf.py
@@ -99,4 +99,5 @@ def grant_resource(data, nf_inst_id, job_id, grant_type, vdus):
content_args['additionalParams']['vnfmid'] = vnfInsts[0].vnfminstid
logger.info('Grant request data=%s' % content_args)
apply_result = apply_grant_to_nfvo(json.dumps(content_args))
+ logger.info("apply_result: %s" % apply_result)
return apply_result
diff --git a/lcm/lcm/nf/biz/instantiate_vnf.py b/lcm/lcm/nf/biz/instantiate_vnf.py
index 1c9a66bf..56e9c146 100644
--- a/lcm/lcm/nf/biz/instantiate_vnf.py
+++ b/lcm/lcm/nf/biz/instantiate_vnf.py
@@ -155,15 +155,38 @@ class InstantiateVnf(Thread):
break
def set_location(self, apply_result):
+ vim_connections = ignore_case_get(apply_result, "vimConnections")
+ vnfid = ignore_case_get(apply_result, "vnfInstanceId")
+ directive = ignore_case_get(apply_result, "directive")
+ vim_assets = ignore_case_get(apply_result, "vimAssets")
+ access_info = ignore_case_get(vim_connections[0], "accessInfo")
+ tenant = ignore_case_get(access_info, "tenant")
+ vimid = ignore_case_get(vim_connections[0], "vimId")
+ cloud_owner, cloud_regionid = vimid.split("_")
+ vdu_info = []
+
+ for flavor in ignore_case_get(vim_assets, "vimComputeResourceFlavour"):
+ vdu_info.append({"vduName": flavor["resourceProviderId"],
+ "flavorName": flavor["vimFlavourId"],
+ "directive": directive})
+
for resource_type in ['vdus', 'vls']:
for resource in ignore_case_get(self.vnfd_info, resource_type):
if "location_info" in resource["properties"]:
- resource["properties"]["location_info"]["vimid"] = ignore_case_get(apply_result, "vimid")
- resource["properties"]["location_info"]["tenant"] = ignore_case_get(apply_result, "tenant")
+ resource["properties"]["location_info"]["vimid"] = vimid
+ resource["properties"]["location_info"]["tenant"] = tenant
+ resource["properties"]["location_info"]["vnfId"] = vnfid
+ resource["properties"]["location_info"]["cloudOwner"] = cloud_owner
+ resource["properties"]["location_info"]["cloudRegionId"] = cloud_regionid
+ resource["properties"]["location_info"]["vduInfo"] = vdu_info
else:
resource["properties"]["location_info"] = {
- "vimid": ignore_case_get(apply_result, "vimid"),
- "tenant": ignore_case_get(apply_result, "tenant")}
+ "vimid": vimid,
+ "tenant": tenant,
+ "vnfId": vnfid,
+ "cloudOwner": cloud_owner,
+ "cloudRegionId": cloud_regionid,
+ "vduInfo": vdu_info}
'''
def get_subnet_ids(self, ext_cp):
diff --git a/lcm/lcm/nf/tests/test_instantiate_vnf.py b/lcm/lcm/nf/tests/test_instantiate_vnf.py
index 5801cb90..e698c4db 100644
--- a/lcm/lcm/nf/tests/test_instantiate_vnf.py
+++ b/lcm/lcm/nf/tests/test_instantiate_vnf.py
@@ -35,8 +35,26 @@ class TestNFInstantiate(TestCase):
def setUp(self):
self.client = APIClient()
self.grant_result = {
- "vimid": 'vim_1',
- "tenant": 'chinamobile',
+ "vimConnections": [
+ {
+ "vimid": 'vim_1',
+ "accessInfo":
+ {
+ "tenant": 'chinamobile'
+ }
+ },
+ ],
+ "vnfId": "413aa1fe-b4d1-11e8-8268-dff5aab95c63",
+ "vimAssets":
+ {
+ "vimComputeResourceFlavour": [
+ {
+ "resourceProviderId": "vgw",
+ "vimFlavourId": "yui",
+ "directive": ""
+ },
+ ]
+ }
}
def tearDown(self):