diff options
author | fengyuanxing <feng.yuanxing@zte.com.cn> | 2018-01-25 15:01:32 +0800 |
---|---|---|
committer | yunlong ying <ying.yunlong@zte.com.cn> | 2018-01-25 09:36:08 +0000 |
commit | 18cbe1ff803192aacd880efb001982c6da916339 (patch) | |
tree | 0ddda48fd4fa8022d04e8e1c504a82d7f16f6cdd | |
parent | 14531852c471291a0631186c9d96c587df3ab0be (diff) |
Add validataion code of swagger code
Change-Id: I9ffe176e3890476c627f75b7de5d4563f7123df2
Issue-ID: VFC-677
Signed-off-by: fengyuanxing <feng.yuanxing@zte.com.cn>
-rw-r--r-- | catalog/jobs/views.py | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/catalog/jobs/views.py b/catalog/jobs/views.py index 4d49dc3a..c52b8a2b 100644 --- a/catalog/jobs/views.py +++ b/catalog/jobs/views.py @@ -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()) |