From 442d53a4cb97170da936d498ce4a3308e9fc7f05 Mon Sep 17 00:00:00 2001 From: fujinhua Date: Mon, 1 Apr 2019 19:24:21 +0800 Subject: Fix scale vnf logic Change-Id: I8d8137e79a657e23d1f6a8be474639fc7693bcbd Issue-ID: VFC-1306 Signed-off-by: fujinhua --- lcm/lcm/nf/biz/scale_vnf.py | 6 ++++++ lcm/lcm/nf/views/scale_vnf_view.py | 23 +++++++++++++++-------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/lcm/lcm/nf/biz/scale_vnf.py b/lcm/lcm/nf/biz/scale_vnf.py index 935fcefa..404b0369 100644 --- a/lcm/lcm/nf/biz/scale_vnf.py +++ b/lcm/lcm/nf/biz/scale_vnf.py @@ -48,7 +48,13 @@ class ScaleVnf(Thread): def run(self): try: self.heal_pre() + JobUtil.add_job_status(self.job_id, + 50, + "Start to apply grant.") self.apply_grant() + JobUtil.add_job_status(self.job_id, + 75, + "Start to scale Vnf.") self.do_operation() JobUtil.add_job_status(self.job_id, 100, diff --git a/lcm/lcm/nf/views/scale_vnf_view.py b/lcm/lcm/nf/views/scale_vnf_view.py index f8778a7d..570ba74d 100644 --- a/lcm/lcm/nf/views/scale_vnf_view.py +++ b/lcm/lcm/nf/views/scale_vnf_view.py @@ -54,33 +54,40 @@ class ScaleVnfView(APIView): ScaleVnf(scale_vnf_request_serializer.data, instanceid, job_id).start() - response = Response(data={"jobId": job_id}, status=status.HTTP_202_ACCEPTED) + response = Response(data={"jobId": job_id}, + status=status.HTTP_202_ACCEPTED) return response except NFLCMExceptionNotFound as e: - probDetail = ProblemDetailsSerializer(data={"status": status.HTTP_404_NOT_FOUND, "detail": "VNF Instance not found"}) + probDetail = ProblemDetailsSerializer(data={"status": status.HTTP_404_NOT_FOUND, + "detail": "VNF Instance not found"}) resp_isvalid = probDetail.is_valid() if not resp_isvalid: raise NFLCMException(probDetail.errors) - return Response(data=probDetail.data, status=status.HTTP_404_NOT_FOUND) + return Response(data=probDetail.data, + status=status.HTTP_404_NOT_FOUND) except NFLCMExceptionConflict as e: - probDetail = ProblemDetailsSerializer(data={"status": status.HTTP_409_CONFLICT, "detail": "VNF Instance not in Instantiated State"}) + probDetail = ProblemDetailsSerializer(data={"status": status.HTTP_409_CONFLICT, + "detail": "VNF Instance not in Instantiated State"}) resp_isvalid = probDetail.is_valid() if not resp_isvalid: raise NFLCMException(probDetail.errors) - return Response(data=probDetail.data, status=status.HTTP_409_CONFLICT) + return Response(data=probDetail.data, + status=status.HTTP_409_CONFLICT) except NFLCMException as e: logger.error(e.message) - return Response(data={'error': '%s' % e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + return Response(data={'error': '%s' % e.message}, + status=status.HTTP_500_INTERNAL_SERVER_ERROR) except Exception as e: logger.error(e.message) logger.error(traceback.format_exc()) - return Response(data={'error': 'unexpected exception'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + return Response(data={'error': 'unexpected exception'}, + status=status.HTTP_500_INTERNAL_SERVER_ERROR) def scale_pre_check(self, nf_inst_id, job_id): vnf_insts = NfInstModel.objects.filter(nfinstid=nf_inst_id) if not vnf_insts.exists(): raise NFLCMExceptionNotFound("VNF nf_inst_id does not exist.") - NfInstModel.objects.filter(nfinstid=nf_inst_id).update(status=VNF_STATUS.SCALING) + vnf_insts.update(status=VNF_STATUS.SCALING) JobUtil.add_job_status(job_id, 15, 'Nf scaling pre-check finish') logger.info("Nf scaling pre-check finish") -- cgit 1.2.3-korg