Add swagger auto generate of job 55/28855/2
authorfujinhua <fu.jinhua@zte.com.cn>
Tue, 23 Jan 2018 05:47:08 +0000 (13:47 +0800)
committerfujinhua <fu.jinhua@zte.com.cn>
Tue, 23 Jan 2018 05:57:02 +0000 (13:57 +0800)
Add job update swagger logic

Change-Id: Ic8e84348520168d32a29f8f36931595a232e1e69
Issue-ID: VFC-673
Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
lcm/jobs/views.py

index acbb5fe..24a89b5 100644 (file)
@@ -15,10 +15,13 @@ import logging
 
 from rest_framework.response import Response
 from rest_framework.views import APIView
+from rest_framework import status
+from drf_yasg.utils import swagger_auto_schema
 
 from lcm.jobs.job_get import GetJobInfoService
 from lcm.pub.utils.jobutil import JobUtil
 from lcm.pub.utils.values import ignore_case_get
+from lcm.jobs.serializers import JobUpdReqSerializer, JobUpdRespSerializer
 
 logger = logging.getLogger(__name__)
 
@@ -29,17 +32,37 @@ class JobView(APIView):
         ret = GetJobInfoService(job_id, response_id).do_biz()
         return Response(data=ret)
 
+    @swagger_auto_schema(
+        request_body=JobUpdReqSerializer(),
+        responses={
+            status.HTTP_202_ACCEPTED: JobUpdRespSerializer(),
+            status.HTTP_404_NOT_FOUND: "Job does not exist"
+        }
+    )
     def post(self, request, job_id):
         try:
             logger.debug("Enter JobView:post, %s, %s ", job_id, request.data)
+
+            req_serializer = JobUpdReqSerializer(data=request.data)
+            if not req_serializer.is_valid():
+                return Response(data={
+                    'result': 'error',
+                    'msg': req_serializer.errors},
+                    status=status.HTTP_202_ACCEPTED)
+
             jobs = JobUtil.query_job_status(job_id)
             if len(jobs) > 0 and jobs[-1].errcode == '255':
-                return Response(data={'result': 'ok'})
+                return Response(data={'result': 'ok'}, status=status.HTTP_202_ACCEPTED)
+
             progress = request.data.get('progress')
             desc = request.data.get('desc', '%s' % progress)
             errcode = '0' if request.data.get('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'})
+
+            return Response(data={'result': 'ok'}, status=status.HTTP_202_ACCEPTED)
         except Exception as e:
-            return Response(data={'result': 'error', 'msg': e.message})
+            return Response(data={
+                'result': 'error',
+                'msg': e.message},
+                status=status.HTTP_202_ACCEPTED)