From 8bdd330193043b3675cb229db6b7ba566996d546 Mon Sep 17 00:00:00 2001 From: fujinhua Date: Tue, 23 Jan 2018 16:15:36 +0800 Subject: [PATCH] Add swagger auto generate of job Fix job update swagger logic Change-Id: I25c44ab8bfe5aaed4213c72353f185de2b21cd3e Issue-ID: VFC-673 Signed-off-by: fujinhua --- lcm/jobs/views.py | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/lcm/jobs/views.py b/lcm/jobs/views.py index 24a89b57..1ffcf9c3 100644 --- a/lcm/jobs/views.py +++ b/lcm/jobs/views.py @@ -22,6 +22,7 @@ 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 +from lcm.pub.exceptions import NSLCMException logger = logging.getLogger(__name__) @@ -35,8 +36,7 @@ class JobView(APIView): @swagger_auto_schema( request_body=JobUpdReqSerializer(), responses={ - status.HTTP_202_ACCEPTED: JobUpdRespSerializer(), - status.HTTP_404_NOT_FOUND: "Job does not exist" + status.HTTP_202_ACCEPTED: JobUpdRespSerializer() } ) def post(self, request, job_id): @@ -45,24 +45,31 @@ class JobView(APIView): 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) + raise NSLCMException(req_serializer.errors) jobs = JobUtil.query_job_status(job_id) - if len(jobs) > 0 and jobs[-1].errcode == '255': - return Response(data={'result': 'ok'}, status=status.HTTP_202_ACCEPTED) + if not jobs: + raise NSLCMException("Job(%s) does not exist.") + + if jobs[-1].errcode != '255': + 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) - 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) + resp_serializer = JobUpdRespSerializer(data={'result': 'ok'}) + if not resp_serializer.is_valid(): + raise NSLCMException(req_serializer.errors) - return Response(data={'result': 'ok'}, status=status.HTTP_202_ACCEPTED) + return Response(data=resp_serializer.data, status=status.HTTP_202_ACCEPTED) except Exception as e: - return Response(data={ + resp_serializer = JobUpdRespSerializer(data={ 'result': 'error', - 'msg': e.message}, - status=status.HTTP_202_ACCEPTED) + 'msg': e.message}) + if not resp_serializer.is_valid(): + logger.error(resp_serializer.errors) + return Response(data={ + 'result': 'error', + 'msg': resp_serializer.errors}, status=status.HTTP_202_ACCEPTED) + return Response(data=resp_serializer.data, status=status.HTTP_202_ACCEPTED) -- 2.16.6