From 6c8fec9120a9532f76f03eeb60fbe4cf5ec36f69 Mon Sep 17 00:00:00 2001 From: "ying.yunlong" Date: Sat, 18 Feb 2017 16:00:05 +0800 Subject: [PATCH] Modify table module and related code Change-Id: Idf3ce94158291a269595a506430490e68a8b44fc Issue-Id: GVNFM-19 Signed-off-by: ying.yunlong --- lcm/lcm/nf/vnfs/tests/test_vnf_create.py | 34 ++++++++++++++++---------------- lcm/lcm/nf/vnfs/views.py | 15 ++++++++++---- lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py | 2 +- lcm/lcm/pub/database/models.py | 6 +++--- 4 files changed, 32 insertions(+), 25 deletions(-) diff --git a/lcm/lcm/nf/vnfs/tests/test_vnf_create.py b/lcm/lcm/nf/vnfs/tests/test_vnf_create.py index 06ba6dec..3aa583bf 100644 --- a/lcm/lcm/nf/vnfs/tests/test_vnf_create.py +++ b/lcm/lcm/nf/vnfs/tests/test_vnf_create.py @@ -54,9 +54,9 @@ class TestNFInstantiate(TestCase): descp=job_detail) self.assertEqual(1, len(jobs)) - # def test_swagger_ok(self): - # response = self.client.get("/openoapi/vnflcm/v1/swagger.json", format='json') - # self.assertEqual(response.status_code, status.HTTP_200_OK) + def test_swagger_ok(self): + response = self.client.get("/openoapi/vnflcm/v1/swagger.json", format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) @mock.patch.object(restcall, 'call_req') def test_create_vnf_identifier(self, mock_call_req): @@ -71,20 +71,20 @@ class TestNFInstantiate(TestCase): context = json.loads(response.content) self.assertTrue(NfInstModel.objects.filter(nfinstid=context['vnfInstanceId']).exists()) - # @mock.patch.object(InstVnf, 'run') - # def test_instantiate_vnf(self, mock_run): - # mock_run.re.return_value = None - # response = self.client.post("/openoapi/vnflcm/v1/vnf_instances/12/instantiate", data={}, format='json') - # self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code) - # - # def test_instantiate_vnf_when_inst_id_not_exist(self): - # 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") - # 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, 255, "VNF nf_inst_id is not exist.") - # + @mock.patch.object(InstVnf, 'run') + def test_instantiate_vnf(self, mock_run): + mock_run.re.return_value = None + response = self.client.post("/openoapi/vnflcm/v1/vnf_instances/12/instantiate", data={}, format='json') + self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code) + + def test_instantiate_vnf_when_inst_id_not_exist(self): + 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") + 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, 255, "VNF nf_inst_id is not exist.") + # @mock.patch.object(restcall, 'call_req') # def test_instantiate_vnf_when_input_para_not_define_in_vnfd(self, mock_call_req): # r1 = [0, json.JSONEncoder().encode(vnfd_model_dict), '200'] diff --git a/lcm/lcm/nf/vnfs/views.py b/lcm/lcm/nf/vnfs/views.py index a852c9f0..01db9db5 100644 --- a/lcm/lcm/nf/vnfs/views.py +++ b/lcm/lcm/nf/vnfs/views.py @@ -47,10 +47,17 @@ class CreateVnfIdentifier(APIView): class InstantiateVnf(APIView): def post(self, request, instanceid): - logger.debug("InstantiateVnf--post::> %s" % request.data) - job_id = JobUtil.create_job('NF', 'INSTANTIATE', instanceid) - JobUtil.add_job_status(job_id, 0, "INST_VNF_READY") - InstVnf(request.data, instanceid, job_id).start() + try: + logger.debug("InstantiateVnf--post::> %s" % request.data) + job_id = JobUtil.create_job('NF', 'INSTANTIATE', instanceid) + JobUtil.add_job_status(job_id, 0, "INST_VNF_READY") + InstVnf(request.data, instanceid, job_id).start() + except NFLCMException as e: + logger.error(e.message) + return Response(data={'error': '%s' % e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + except Exception: + logger.error(traceback.format_exc()) + return Response(data={'error': 'unexpected exception'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) rsp = {"jobId": job_id} return Response(data=rsp, status=status.HTTP_202_ACCEPTED) diff --git a/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py b/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py index 759859cb..b9bc15a9 100644 --- a/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py +++ b/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py @@ -103,7 +103,7 @@ class InstVnf(Thread): raise NFLCMException('VNF nf_inst_id is not exist.') # self.vnfm_inst_id = vnf_insts[0].vnfm_inst_id - if vnf_insts[0].instantiationState != 'NOT_INSTANTIATED': + if vnf_insts[0].status != 'NOT_INSTANTIATED': raise NFLCMException('VNF instantiationState is not NOT_INSTANTIATED.') # get rawdata by vnfd_id diff --git a/lcm/lcm/pub/database/models.py b/lcm/lcm/pub/database/models.py index d386ae64..183283ff 100644 --- a/lcm/lcm/pub/database/models.py +++ b/lcm/lcm/pub/database/models.py @@ -19,16 +19,16 @@ class NfInstModel(models.Model): db_table = 'NFINST' nfinstid = models.CharField(db_column='NFINSTID', max_length=200, primary_key=True) - nf_name = models.CharField(db_column='NFNAME', max_length=100, blank=True, null=True) #CreateVnfRequest.vnfInstanceName + nf_name = models.CharField(db_column='NFNAME', max_length=100, blank=True, null=True) # CreateVnfRequest.vnfInstanceName package_id = models.CharField(db_column='PACKAGEID', max_length=200, blank=True, null=True) status = models.CharField(db_column='STATUS', max_length=20, blank=True, null=True) - flavour_id = models.CharField(db_column='FLAVOURID', max_length=200, blank=True, null=True) #InstantiateVnfRequest.flavourId + flavour_id = models.CharField(db_column='FLAVOURID', max_length=200, blank=True, null=True) # InstantiateVnfRequest.flavourId location = models.CharField(db_column='LOCATION', max_length=200, blank=True, null=True) version = models.CharField(db_column='VERSION', max_length=255, null=True) vendor = models.CharField(db_column='VENDOR', max_length=255, null=True, blank=True) netype = models.CharField(db_column='NETYPE', max_length=255, null=True) vnfd_model = models.TextField(db_column='VNFDMODEL', max_length=20000, blank=True, null=True) - input_params = models.TextField(db_column='INPUTPARAMS', max_length=2000, blank=True, null=True) #InstantiateVnfRequest.additionalParams + input_params = models.TextField(db_column='INPUTPARAMS', max_length=2000, blank=True, null=True) # InstantiateVnfRequest.additionalParams create_time = models.CharField(db_column='CREATETIME', max_length=200, null=True, blank=True) lastuptime = models.CharField(db_column='LASTUPTIME', max_length=200, blank=True, null=True) -- 2.16.6