summaryrefslogtreecommitdiffstats
path: root/lcm/jobs/views.py
diff options
context:
space:
mode:
authorfujinhua <fu.jinhua@zte.com.cn>2018-01-23 13:47:08 +0800
committerfujinhua <fu.jinhua@zte.com.cn>2018-01-23 13:57:02 +0800
commit66f0365d6d1174a0afbf86a755b99fb47c37f393 (patch)
treeb6007be934982a9ffe913ed6fde09c6b894006fd /lcm/jobs/views.py
parent36bc3659d4c538b9d8da309b843e1214cf2755b0 (diff)
Add swagger auto generate of job
Add job update swagger logic Change-Id: Ic8e84348520168d32a29f8f36931595a232e1e69 Issue-ID: VFC-673 Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
Diffstat (limited to 'lcm/jobs/views.py')
-rw-r--r--lcm/jobs/views.py29
1 files changed, 26 insertions, 3 deletions
diff --git a/lcm/jobs/views.py b/lcm/jobs/views.py
index acbb5fe9..24a89b57 100644
--- a/lcm/jobs/views.py
+++ b/lcm/jobs/views.py
@@ -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)