Add code to get vdu id 65/14165/1
authorfengyuanxing <feng.yuanxing@zte.com.cn>
Thu, 21 Sep 2017 08:32:44 +0000 (16:32 +0800)
committerfengyuanxing <feng.yuanxing@zte.com.cn>
Thu, 21 Sep 2017 08:32:44 +0000 (16:32 +0800)
Change-Id: I07128968718db4dc784a29be8a5456b3576a55eb
Issue-Id: VFC-412
Signed-off-by: fengyuanxing <feng.yuanxing@zte.com.cn>
lcm/ns/vnfs/heal_vnfs.py

index f17be25..ce84795 100644 (file)
@@ -19,7 +19,7 @@ import traceback
 
 from lcm.ns.vnfs.const import VNF_STATUS
 from lcm.ns.vnfs.wait_job import wait_job_finish
-from lcm.pub.database.models import NfInstModel
+from lcm.pub.database.models import NfInstModel, VNFCInstModel
 from lcm.pub.exceptions import NSLCMException
 from lcm.pub.msapi.vnfmdriver import send_nf_heal_request
 from lcm.pub.utils.jobutil import JobUtil, JOB_TYPE, JOB_MODEL_STATUS
@@ -82,8 +82,8 @@ class NFHealService(threading.Thread):
         actionvminfo = ignore_case_get(self.nf_additional_params, 'actionvminfo')
         vmid = ignore_case_get(actionvminfo, 'vmid')
         vmname = ignore_case_get(actionvminfo, 'vmname')
-        # TODO(sshank): Find how to get 'vduid'
-        vduid = ""
+        # Gets vduid
+        vduid = self.get_vudId(vmid)
 
         self.nf_heal_params = {
             "action": action,
@@ -104,6 +104,13 @@ class NFHealService(threading.Thread):
             logger.error('[NF heal] nf heal failed')
             raise NSLCMException("nf heal failed")
 
+    # Gets vdu id according to the given vm id.
+    def get_vudId(self, vmId):
+        vnfcInstance = VNFCInstModel.objects.filter(vmid = vmId).first()
+        if not vnfcInstance:
+            raise NSLCMException('VDU [vmid=%s] does not exist' % self.vmId)
+        return vnfcInstance.vduid
+
     def update_job(self, progress, desc=''):
         JobUtil.add_job_status(self.job_id, progress, desc)