From ce2dc9c377712c7e97c78fec1563c60101839bd2 Mon Sep 17 00:00:00 2001 From: "ying.yunlong" Date: Thu, 9 Feb 2017 20:44:21 +0800 Subject: [PATCH] Add instantiation state check Change-Id: Ia9cc90e57e22207054257176f588aa4ff9b4db6e Issue-Id: GVNFM-6 Signed-off-by: ying.yunlong --- lcm/lcm/nf/vnfs/tests/test_vnf_create.py | 15 +++++++++++++++ lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py | 5 +++++ 2 files changed, 20 insertions(+) diff --git a/lcm/lcm/nf/vnfs/tests/test_vnf_create.py b/lcm/lcm/nf/vnfs/tests/test_vnf_create.py index cefb86d6..5537f191 100644 --- a/lcm/lcm/nf/vnfs/tests/test_vnf_create.py +++ b/lcm/lcm/nf/vnfs/tests/test_vnf_create.py @@ -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': [ diff --git a/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py b/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py index db45fd62..cf67fad8 100644 --- a/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py +++ b/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py @@ -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) -- 2.16.6