Fix ns term logic 99/72499/1
authorfujinhua <fu.jinhua@zte.com.cn>
Tue, 13 Nov 2018 03:50:38 +0000 (11:50 +0800)
committerfujinhua <fu.jinhua@zte.com.cn>
Tue, 13 Nov 2018 03:50:38 +0000 (11:50 +0800)
Change-Id: Ie814becd8f365d5e1eeb39dd09719f3c09468cda
Issue-ID: VFC-1163
Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
lcm/ns/biz/ns_terminate.py
lcm/pub/msapi/nslcm.py

index 5b93f58..18d9925 100644 (file)
@@ -122,11 +122,17 @@ class TerminateNsService(threading.Thread):
             JobUtil.add_job_status(self.job_id, cur_progress, job_msg)
 
     def delete_vnf(self, nf_instid):
-        ret = call_from_ns_cancel_resource('vnf', nf_instid)
+        term_param = {
+            "terminationType": self.terminate_type
+        }
+        if self.terminate_timeout:
+            term_param["gracefulTerminationTimeout"] = int(self.terminate_timeout)
+        ret = call_from_ns_cancel_resource('vnf', nf_instid, term_param)
         if ret[0] != 0:
+            logger.error("Terminate VNF(%s) failed: %s", nf_instid, ret[1])
             return False
         job_info = json.JSONDecoder().decode(ret[1])
-        vnf_job_id = ignore_case_get(job_info, "jobid")
+        vnf_job_id = ignore_case_get(job_info, "jobId")
         return self.wait_delete_vnf_job_finish(vnf_job_id)
 
     def wait_delete_vnf_job_finish(self, vnf_job_id):
index 921e03f..1ea9f11 100644 (file)
@@ -20,7 +20,7 @@ from lcm.pub.utils.restcall import req_by_msb
 logger = logging.getLogger(__name__)
 
 
-def call_from_ns_cancel_resource(res_type, instid):
+def call_from_ns_cancel_resource(res_type, instid, req_param=None):
     method = "DELETE"
     if res_type == 'vl':
         uri = '/api/nslcm/v1/ns/vls/%s' % instid
@@ -31,7 +31,8 @@ def call_from_ns_cancel_resource(res_type, instid):
         # vnf
         method = "POST"
         uri = '/api/nslcm/v1/ns/terminatevnf/%s' % instid
-    req_param = {}
+    if not req_param:
+        req_param = {}
     ret = req_by_msb(uri, method, json.dumps(req_param))
     logger.info("[NS terminate] call vnfm [%s] result:%s" % (res_type, ret))
     return ret