Add validataion code of swagger code 21/29121/3
authorfengyuanxing <feng.yuanxing@zte.com.cn>
Thu, 25 Jan 2018 07:01:32 +0000 (15:01 +0800)
committeryunlong ying <ying.yunlong@zte.com.cn>
Thu, 25 Jan 2018 09:36:08 +0000 (09:36 +0000)
Change-Id: I9ffe176e3890476c627f75b7de5d4563f7123df2
Issue-ID: VFC-677
Signed-off-by: fengyuanxing <feng.yuanxing@zte.com.cn>
catalog/jobs/views.py

index 4d49dc3..c52b8a2 100644 (file)
@@ -58,12 +58,30 @@ class JobView(APIView):
             jobs = JobUtil.query_job_status(job_id)
             if len(jobs) > 0 and jobs[-1].errcode == '255':
                 return Response(data={'result': 'ok'})
-            progress = request.data.get('progress')
-            desc = request.data.get('desc', '%s' % progress)
-            errcode = '0' if request.data.get('errcode') in ('true', 'active') else '255'
+
+            serializer = PostJobRequestSerializer(data=request.data)
+            request_isValid = serializer.is_valid()
+            if not request_isValid:
+                message = 'Invalid request'
+                logger.error(message)
+                return Response(data={'result': 'error', 'msg': message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+
+            requestData = serializer.data
+            progress = ignore_case_get(requestData, "progress")
+            desc = ignore_case_get(requestData, "desc", '%s' % progress)
+            errcode = '0' if ignore_case_get(requestData, 'errcode') in ('true', 'active') else '255'
             logger.debug("errcode=%s", errcode)
             JobUtil.add_job_status(job_id, progress, desc, error_code=errcode)
-            return Response(data={'result': 'ok'}, status=status.HTTP_202_ACCEPTED)
+
+            response = Response(data={'result': 'ok'}, status=status.HTTP_202_ACCEPTED)
+            responseSerializer = PostJobResponseResultSerializer(response.data)
+            isValid = responseSerializer.is_valid()
+            if not isValid:
+                message = 'Invalid resposne'
+                logger.error(message)
+                return Response(data={'result': 'error', 'msg': message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+
+            return Response(data=responseSerializer.data, status=status.HTTP_202_ACCEPTED)
         except Exception as e:
             logger.error(e.message)
             logger.error(traceback.format_exc())