Rm port inst data from db when terminate vnf
[vfc/nfvo/lcm.git] / lcm / ns_vnfs / biz / terminate_nfs.py
index b435e67..397460e 100644 (file)
@@ -18,14 +18,14 @@ import threading
 import traceback
 
 from lcm.pub.config.config import REPORT_TO_AAI
-from lcm.pub.database.models import NfInstModel, VmInstModel, OOFDataModel
+from lcm.pub.database.models import NfInstModel, VmInstModel, OOFDataModel, PortInstModel
 from lcm.pub.exceptions import NSLCMException
 from lcm.pub.msapi import resmgr
 from lcm.pub.msapi.aai import query_vnf_aai, delete_vnf_aai, query_vserver_aai, delete_vserver_aai
 from lcm.pub.msapi.extsys import split_vim_to_owner_region, get_vim_by_id
 from lcm.pub.msapi.vnfmdriver import send_nf_terminate_request
 from lcm.pub.utils.jobutil import JobUtil
-from lcm.pub.enum import JOB_MODEL_STATUS
+from lcm.jobs.enum import JOB_MODEL_STATUS
 from lcm.pub.utils.values import ignore_case_get
 from lcm.ns_vnfs.const import NFVO_VNF_INST_TIMEOUT_SECOND
 from lcm.ns_vnfs.enum import VNF_STATUS, INST_TYPE
@@ -64,10 +64,10 @@ class TerminateVnfs(threading.Thread):
             self.delete_subscription()
             self.delete_data_from_db()
         except NSLCMException as e:
-            self.set_job_err(e.message)
+            self.set_job_err(e.args[0])
         except Exception as ex:
             logger.error(traceback.format_exc())
-            self.set_job_err(ex.message)
+            self.set_job_err(ex.args[0])
 
     def set_vnf_status(self, vnf_inst_info):
         vnf_status = vnf_inst_info.status
@@ -92,6 +92,7 @@ class TerminateVnfs(threading.Thread):
         vnf_inst_info = self.get_vnf_inst()
         if not vnf_inst_info:
             self.add_progress(100, "TERM_VNF_NOT_EXIST_SUCCESS", "finished")
+            return None
         self.add_progress(2, "GET_VNF_INST_SUCCESS")
         self.vnfm_inst_id = vnf_inst_info.vnfm_inst_id
         self.vnf_uuid = vnf_inst_info.mnfinstid
@@ -139,11 +140,12 @@ class TerminateVnfs(threading.Thread):
 
     def delete_subscription(self):
         try:
-            SubscriptionDeletion(self.vnfm_inst_id, self.vnf_inst_id).do_biz()
+            SubscriptionDeletion(self.vnfm_inst_id, self.vnf_uuid).do_biz()
         except Exception as e:
-            logger.error("delete_subscription failed: %s", e.message)
+            logger.error("delete_subscription failed: %s", e.args[0])
 
     def delete_data_from_db(self):
+        PortInstModel.objects.filter(instid=self.vnf_inst_id).delete()
         NfInstModel.objects.filter(nfinstid=self.vnf_inst_id).delete()
         VmInstModel.objects.filter(instid=self.vnf_inst_id).delete()
         OOFDataModel.objects.filter(service_resource_id=self.vnf_inst_id).delete()
@@ -161,7 +163,7 @@ class TerminateVnfs(threading.Thread):
             logger.debug(
                 "Success to delete vnf[%s] from aai, resp_status: [%s]." % (self.vnf_inst_id, resp_status))
         except NSLCMException as e:
-            logger.debug("Fail to delete vnf from aai[%s], detail message: %s" % (self.vnf_inst_id, e.message))
+            logger.debug("Fail to delete vnf from aai[%s], detail message: %s" % (self.vnf_inst_id, e.args[0]))
         except:
             logger.error(traceback.format_exc())
 
@@ -174,7 +176,7 @@ class TerminateVnfs(threading.Thread):
                 vim_id = vm_inst_info.vimid
                 cloud_owner, cloud_region_id = split_vim_to_owner_region(vim_id)
                 # query vim_info from aai, get tenant
-                vim_info = get_vim_by_id(vim_id)
+                vim_info = get_vim_by_id({"cloud_owner": cloud_owner, 'cloud_regionid': cloud_region_id})
                 tenant_id = vim_info["tenantId"]
 
                 # query vserver instance in aai, get resource_version
@@ -189,6 +191,6 @@ class TerminateVnfs(threading.Thread):
                     (vserver_id, resp_status))
             logger.debug("delete_vserver_in_aai end!")
         except NSLCMException as e:
-            logger.debug("Fail to delete vserver from aai, detail message: %s" % e.message)
+            logger.debug("Fail to delete vserver from aai, detail message: %s" % e.args[0])
         except:
             logger.error(traceback.format_exc())