From df86145a053e46c5302fef9102bcc2f85abfb7ce Mon Sep 17 00:00:00 2001 From: "ying.yunlong" Date: Mon, 5 Feb 2018 13:31:27 +0800 Subject: [PATCH] Fix vfc-vnflcm termination bug Change-Id: I4ef7b47f1f0e1e513018878fd5c754f96ed3a15d Issue-ID: VFC-682 Signed-off-by: ying.yunlong --- lcm/lcm/nf/vnfs/tests/test_vnf_cancel.py | 6 +++++- lcm/lcm/nf/vnfs/views.py | 9 ++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/lcm/lcm/nf/vnfs/tests/test_vnf_cancel.py b/lcm/lcm/nf/vnfs/tests/test_vnf_cancel.py index 228e9b1b..c2ce7055 100644 --- a/lcm/lcm/nf/vnfs/tests/test_vnf_cancel.py +++ b/lcm/lcm/nf/vnfs/tests/test_vnf_cancel.py @@ -119,8 +119,12 @@ class TestNFTerminate(TestCase): @mock.patch.object(TermVnf, 'run') def test_terminate_vnf(self, mock_run): + req_data = { + "terminationType": "GRACEFUL", + "gracefulTerminationTimeout": 120 + } mock_run.re.return_value = None - response = self.client.post("/api/vnflcm/v1/vnf_instances/12/terminate", data={}, format='json') + response = self.client.post("/api/vnflcm/v1/vnf_instances/12/terminate", data=req_data, format='json') self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code) def test_terminate_vnf_when_inst_id_not_exist(self): diff --git a/lcm/lcm/nf/vnfs/views.py b/lcm/lcm/nf/vnfs/views.py index 9f2b1fef..3f12648f 100644 --- a/lcm/lcm/nf/vnfs/views.py +++ b/lcm/lcm/nf/vnfs/views.py @@ -179,13 +179,16 @@ class TerminateVnf(APIView): def post(self, request, instanceid): logger.debug("TerminateVnf--post::> %s" % request.data) try: + terminate_vnf_request_serializer = TerminateVnfRequestSerializer(data=request.data) + if not terminate_vnf_request_serializer.is_valid(): + raise NFLCMException(terminate_vnf_request_serializer.errors) + job_id = JobUtil.create_job('NF', 'TERMINATE', instanceid) JobUtil.add_job_status(job_id, 0, "TERM_VNF_READY") - TermVnf(request.data, instanceid, job_id).start() + TermVnf(terminate_vnf_request_serializer.data, instanceid, job_id).start() terminate_vnf_response_serializer = InstOrTeriVnfResponseSerializer(data={"jobId": job_id}) - resp_isvalid = terminate_vnf_response_serializer.is_valid() - if not resp_isvalid: + if not terminate_vnf_response_serializer.is_valid(): raise NFLCMException(terminate_vnf_response_serializer.errors) return Response(data=terminate_vnf_response_serializer.data, status=status.HTTP_202_ACCEPTED) -- 2.16.6