Modify code and testcase of terminate_vnf_precheck
authorying.yunlong <ying.yunlong@zte.com.cn>
Fri, 24 Feb 2017 08:04:07 +0000 (16:04 +0800)
committerying.yunlong <ying.yunlong@zte.com.cn>
Fri, 24 Feb 2017 08:04:07 +0000 (16:04 +0800)
Change-Id: I9019f65eb04f6964c10978ce9e65e021c1f042d6
Issue-Id: GVNFM-21
Signed-off-by: ying.yunlong <ying.yunlong@zte.com.cn>
lcm/lcm/nf/vnfs/tests/test_vnf_cancel.py
lcm/lcm/nf/vnfs/vnf_cancel/term_vnf.py

index cdb4094..2f139e5 100644 (file)
@@ -74,49 +74,32 @@ class TestNFTerminate(TestCase):
         self.failUnlessEqual(status.HTTP_500_INTERNAL_SERVER_ERROR, response.status_code)
         self.assertEqual("Don't allow to delete vnf(status:[NOT_INSTANTIATED])", response.data["error"])
 
-#     @mock.patch.object(TermVnf, 'run')
-#     def test_terminate_vnf(self, mock_run):
-#         mock_run.re.return_value = None
-#         response = self.client.post("/openoapi/vnflcm/v1/vnf_instances/12/terminate", data={}, format='json')
-#         self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code)
-#
-#     def test_terminate_vnf_when_inst_id_not_exist(self):
-#         data = {"terminationType": "GRACEFUL",
-#                 "gracefulTerminationTimeout": 120}
-#         self.nf_inst_id = str(uuid.uuid4())
-#         self.job_id = JobUtil.create_job('NF', 'CREATE', self.nf_inst_id)
-#         JobUtil.add_job_status(self.job_id, 0, "INST_VNF_READY")
-#         TermVnf(data, nf_inst_id=self.nf_inst_id, job_id=self.job_id).run()
-#         self.assert_job_result(self.job_id, 255, "VnfInst(%s) does not exist" % self.nf_inst_id)
-#
-#     def test_instantiate_vnf_when_get_nfvo_config_failed(self):
-#         NfInstModel.objects.create(nfinstid='1111', mnfinstid='1111', nf_name='2222',
-#                                    package_id='todo', vnfm_inst_id='todo', version='', vendor='',
-#                                    producttype='', netype='', vnfd_model='',
-#                                    instantiationState='VNF_INSTANTIATED', nf_desc='', vnfdid='',
-#                                    vnfSoftwareVersion='', vnfConfigurableProperties='todo',
-#                                    localizationLanguage='EN_US', create_time=now_time())
-#         data = {"terminationType": "FORCEFUL",
-#                 "gracefulTerminationTimeout": 120}
-#         self.nf_inst_id = '1111'
-#         self.job_id = JobUtil.create_job('NF', 'CREATE', self.nf_inst_id)
-#         JobUtil.add_job_status(self.job_id, 0, "INST_VNF_READY")
-#         TermVnf(data, nf_inst_id=self.nf_inst_id, job_id=self.job_id).run()
-#         self.assert_job_result(self.job_id, 255, "Nfvo was not registered")
-#
-#     def test_terminate_vnf_success(self):
-#         NfInstModel.objects.create(nfinstid='1111', mnfinstid='1111', nf_name='2222',
-#                                    package_id='todo', vnfm_inst_id='todo', version='', vendor='',
-#                                    producttype='', netype='', vnfd_model='',
-#                                    instantiationState='VNF_INSTANTIATED', nf_desc='', vnfdid='',
-#                                    vnfSoftwareVersion='', vnfConfigurableProperties='todo',
-#                                    localizationLanguage='EN_US', create_time=now_time())
-#         NfvoRegInfoModel.objects.create(nfvoid='nfvo111', vnfminstid='vnfm111', apiurl='http://10.74.44.11',
-#                                         nfvouser='root', nfvopassword='root123')
-#         data = {"terminationType": "FORCEFUL",
-#                 "gracefulTerminationTimeout": 120}
-#         self.nf_inst_id = '1111'
-#         self.job_id = JobUtil.create_job('NF', 'CREATE', self.nf_inst_id)
-#         JobUtil.add_job_status(self.job_id, 0, "INST_VNF_READY")
-#         TermVnf(data, nf_inst_id=self.nf_inst_id, job_id=self.job_id).run()
-#         self.assert_job_result(self.job_id, 100, "Terminate Vnf success.")
+    @mock.patch.object(TermVnf, 'run')
+    def test_terminate_vnf(self, mock_run):
+        mock_run.re.return_value = None
+        response = self.client.post("/openoapi/vnflcm/v1/vnf_instances/12/terminate", data={}, format='json')
+        self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code)
+
+    def test_terminate_vnf_when_inst_id_not_exist(self):
+        data = {"terminationType": "GRACEFUL",
+                "gracefulTerminationTimeout": 120}
+        self.nf_inst_id = str(uuid.uuid4())
+        self.job_id = JobUtil.create_job('NF', 'CREATE', self.nf_inst_id)
+        JobUtil.add_job_status(self.job_id, 0, "INST_VNF_READY")
+        TermVnf(data, nf_inst_id=self.nf_inst_id, job_id=self.job_id).run()
+        self.assert_job_result(self.job_id, 255, "VnfInst(%s) does not exist" % self.nf_inst_id)
+
+
+
+    def test_terminate_vnf_success(self):
+        NfInstModel.objects.create(nfinstid='1111', nf_name='2222', package_id='todo', version='', vendor='',
+                                   netype='', vnfd_model='', status='VNF_INSTANTIATED', nf_desc='', vnfdid='',
+                                   vnfSoftwareVersion='', vnfConfigurableProperties='todo',
+                                   localizationLanguage='EN_US', create_time=now_time())
+        data = {"terminationType": "FORCEFUL",
+                "gracefulTerminationTimeout": 120}
+        self.nf_inst_id = '1111'
+        self.job_id = JobUtil.create_job('NF', 'CREATE', self.nf_inst_id)
+        JobUtil.add_job_status(self.job_id, 0, "INST_VNF_READY")
+        TermVnf(data, nf_inst_id=self.nf_inst_id, job_id=self.job_id).run()
+        self.assert_job_result(self.job_id, 100, "Terminate Vnf success.")
index 80cbe07..4b83fa0 100644 (file)
@@ -45,7 +45,7 @@ class TermVnf(Thread):
     def run(self):
         try:
             self.term_pre()
-            self.query_inst_resource(self.nf_inst_id)
+            self.query_inst_resource(self.nf_inst_id)
             # self.grant_resource()
             JobUtil.add_job_status(self.job_id, 100, "Terminate Vnf success.")
             is_exist = JobStatusModel.objects.filter(jobid=self.job_id).exists()
@@ -60,20 +60,16 @@ class TermVnf(Thread):
             logger.error(traceback.format_exc())
 
     def term_pre(self):
-        vnf_insts = NfInstModel.objects.filter(pk=self.nf_inst_id)
+        vnf_insts = NfInstModel.objects.filter(nfinstid=self.nf_inst_id)
         if not vnf_insts.exists():
             raise NFLCMException('VnfInst(%s) does not exist' % self.nf_inst_id)
         sel_vnf = vnf_insts[0]
-        if sel_vnf.instantiationState != 'VNF_INSTANTIATED':
-            raise NFLCMException("No instantiated vnf")
+        if sel_vnf.status != 'VNF_INSTANTIATED':
+            raise NFLCMException("Don't allow to delete vnf(status:[%s])" % sel_vnf.status)
         if self.terminationType == 'GRACEFUL' and not self.gracefulTerminationTimeout:
             raise NFLCMException("Graceful termination must set timeout")
-        # get nfvo info
-        JobUtil.add_job_status(self.job_id, 5, 'Get nfvo connection info')
-        self.load_nfvo_config()
 
         NfInstModel.objects.filter(nfinstid=self.nf_inst_id).update(status=VNF_STATUS.TERMINATING)
-
         JobUtil.add_job_status(self.job_id, 10, 'Nf terminating pre-check finish')
         logger.info("Nf terminating pre-check finish")
 
@@ -170,13 +166,13 @@ class TermVnf(Thread):
             logger.error("nf_cancel_task grant_resource failed.[%s]" % str(rsp[1]))
         logger.info("nf_cancel_task grant_resource end")
 
-    def load_nfvo_config(self):
-        logger.info("[NF instantiation]get nfvo connection info start")
-        reg_info = NfvoRegInfoModel.objects.filter(vnfminstid='vnfm111').first()
-        if reg_info:
-            self.vnfm_inst_id = reg_info.vnfminstid
-            self.nfvo_inst_id = reg_info.nfvoid
-            logger.info("[NF instantiation] Registered nfvo id is [%s]" % self.nfvo_inst_id)
-        else:
-            raise NFLCMException("Nfvo was not registered")
-        logger.info("[NF instantiation]get nfvo connection info end")
+    def load_nfvo_config(self):
+        logger.info("[NF instantiation]get nfvo connection info start")
+        reg_info = NfvoRegInfoModel.objects.filter(vnfminstid='vnfm111').first()
+        if reg_info:
+            self.vnfm_inst_id = reg_info.vnfminstid
+            self.nfvo_inst_id = reg_info.nfvoid
+            logger.info("[NF instantiation] Registered nfvo id is [%s]" % self.nfvo_inst_id)
+        else:
+            raise NFLCMException("Nfvo was not registered")
+        logger.info("[NF instantiation]get nfvo connection info end")