Fix scale vnf logic 52/83852/2
authorfujinhua <fu.jinhua@zte.com.cn>
Mon, 1 Apr 2019 11:24:21 +0000 (19:24 +0800)
committerfujinhua <fu.jinhua@zte.com.cn>
Mon, 1 Apr 2019 11:25:27 +0000 (19:25 +0800)
Change-Id: I8d8137e79a657e23d1f6a8be474639fc7693bcbd
Issue-ID: VFC-1306
Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
lcm/lcm/nf/biz/scale_vnf.py
lcm/lcm/nf/views/scale_vnf_view.py

index 935fcef..404b036 100644 (file)
@@ -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,
index f8778a7..570ba74 100644 (file)
@@ -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")