diff options
author | Huang Haibin <haibin.huang@intel.com> | 2018-09-10 16:48:13 +0800 |
---|---|---|
committer | Huang Haibin <haibin.huang@intel.com> | 2018-09-10 17:05:34 +0800 |
commit | 8201d92a453fb182b8fd8c7a35489001a368629d (patch) | |
tree | e2e437ad0615e5e9cec1872cab5bfb3c3f0192c0 | |
parent | 86af279acebf863b46693e8ba0f2f43013b2b66e (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.py | 1 | ||||
-rw-r--r-- | lcm/lcm/nf/biz/instantiate_vnf.py | 31 | ||||
-rw-r--r-- | lcm/lcm/nf/tests/test_instantiate_vnf.py | 22 |
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):
|