Add instantiation state check
authorying.yunlong <ying.yunlong@zte.com.cn>
Thu, 9 Feb 2017 12:44:21 +0000 (20:44 +0800)
committerying.yunlong <ying.yunlong@zte.com.cn>
Thu, 9 Feb 2017 12:44:21 +0000 (20:44 +0800)
Change-Id: Ia9cc90e57e22207054257176f588aa4ff9b4db6e
Issue-Id: GVNFM-6
Signed-off-by: ying.yunlong <ying.yunlong@zte.com.cn>
lcm/lcm/nf/vnfs/tests/test_vnf_create.py
lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py

index cefb86d..5537f19 100644 (file)
@@ -115,6 +115,21 @@ class TestNsInstantiate(TestCase):
         self.assert_job_result(self.job_id, 255, "VNF nf_inst_id is not exist.")
 
 
+    @mock.patch.object(restcall, 'call_req')
+    def test_instantiate_vnf_success(self, mock_call_req):
+        r1 = [0, json.JSONEncoder().encode(vnfd_model_dict), '200']
+        mock_call_req.side_effect = [r1]
+        create_data = {
+            "vnfdId": "111",
+            "vnfInstanceName": "vFW_01",
+            "vnfInstanceDescription": " vFW in Nanjing TIC Edge"}
+        self.nf_inst_id = CreateVnf(create_data).do_biz()
+        self.job_id = JobUtil.create_job('NF', 'CREATE', self.nf_inst_id)
+        JobUtil.add_job_status(self.job_id, 0, "INST_VNF_READY")
+        data = inst_req_data
+        InstVnf(data, nf_inst_id=self.nf_inst_id, job_id=self.job_id).run()
+        self.assert_job_result(self.job_id, 100, "Instantiate Vnf success.")
+
 vnfd_model_dict = {
     'local_storages': [],
     'vdus': [
index db45fd6..cf67fad 100644 (file)
@@ -57,6 +57,11 @@ class InstVnf(Thread):
                 JobUtil.add_job_status(self.job_id, 255, "VNF nf_inst_id is not exist.")
                 raise NFLCMException('VNF nf_inst_id is not exist.')
 
+            vnf_inst = NfInstModel.objects.get(nfinstid=self.nf_inst_id)
+            if vnf_inst.instantiationState != 'NOT_INSTANTIATED':
+                JobUtil.add_job_status(self.job_id, 255, "VNF instantiationState is not NOT_INSTANTIATED.")
+                raise NFLCMException('VNF instantiationState is not NOT_INSTANTIATED.')
+
             JobUtil.add_job_status(self.job_id, 100, "Instantiate Vnf success.")
             is_exist = JobStatusModel.objects.filter(jobid=self.job_id).exists()
             logger.debug("check_ns_inst_name_exist::is_exist=%s" % is_exist)