Get flavor id from OOF.
[vfc/gvnfm/vnflcm.git] / lcm / lcm / nf / biz / instantiate_vnf.py
index 606dbab..682d18b 100644 (file)
@@ -20,7 +20,7 @@ from threading import Thread
 from lcm.pub.database.models import NfInstModel
 from lcm.pub.exceptions import NFLCMException
 from lcm.pub.msapi.gvnfmdriver import prepare_notification_data
-from lcm.pub.msapi.gvnfmdriver import notify_lcm_to_nfvo
+from lcm.pub.msapi.gvnfmdriver import notify_lcm_to_nfvo
 from lcm.pub.msapi.sdc_run_catalog import query_vnfpackage_by_id
 from lcm.pub.utils.jobutil import JobUtil
 from lcm.pub.utils.timeutil import now_time
@@ -136,8 +136,11 @@ class InstantiateVnf(Thread):
     def lcm_notify(self):
         notification_content = prepare_notification_data(self.nf_inst_id, self.job_id, CHANGE_TYPE.ADDED, OPERATION_TYPE.INSTANTIATE)
         logger.info('Notify request data = %s' % notification_content)
-        # resp = notify_lcm_to_nfvo(json.dumps(notification_content))
-        # logger.info('Lcm notify end, response %s' % resp)
+        try:
+            resp = notify_lcm_to_nfvo(json.dumps(notification_content))
+            logger.info('Lcm notify end, response %s' % resp)
+        except Exception as e:
+            logger.error("Lcm instantiate notify failed: %s", e.message)
         NotificationsUtil().send_notification(notification_content)
 
     def vnf_inst_failed_handle(self, error_msg):
@@ -163,7 +166,6 @@ class InstantiateVnf(Thread):
     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")
@@ -171,12 +173,15 @@ class InstantiateVnf(Thread):
         cloud_owner, cloud_regionid = vimid.split("_")
         vdu_info = []
 
-        for flavor in ignore_case_get(vim_assets, "vimComputeResourceFlavour"):
+        for flavor in ignore_case_get(vim_assets, "computeResourceFlavours"):
+            oof_vimid = flavor["vimConnectionId"]
+            if oof_vimid and oof_vimid != "none":
+                vimid = oof_vimid
             vdu_info.append({"vduName": flavor["resourceProviderId"],
-                             "flavorName": flavor["vimFlavourId"],
-                             "directive": directive})
+                             "flavorId": flavor["vimFlavourId"],
+                             "vimid": vimid})
 
-        for resource_type in ['vdus', 'vls']:
+        for resource_type in ['vdus', 'vls', 'cps', 'volume_storages']:
             for resource in ignore_case_get(self.vnfd_info, resource_type):
                 if "location_info" in resource["properties"]:
                     resource["properties"]["location_info"]["vimid"] = vimid