From 66f0365d6d1174a0afbf86a755b99fb47c37f393 Mon Sep 17 00:00:00 2001 From: fujinhua Date: Tue, 23 Jan 2018 13:47:08 +0800 Subject: Add swagger auto generate of job Add job update swagger logic Change-Id: Ic8e84348520168d32a29f8f36931595a232e1e69 Issue-ID: VFC-673 Signed-off-by: fujinhua --- lcm/jobs/views.py | 29 ++++++++++++++++++++++++++--- 1 file 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) -- cgit 1.2.3-korg