Refact code dealing with errors 55/29455/2
authorfengyuanxing <feng.yuanxing@zte.com.cn>
Mon, 29 Jan 2018 06:45:20 +0000 (14:45 +0800)
committerfengyuanxing <feng.yuanxing@zte.com.cn>
Mon, 29 Jan 2018 07:29:13 +0000 (15:29 +0800)
Change-Id: Ib61c68a5a9a58e2208181d5c70c6ff75b2ccb22b
Issue-ID: VFC-685
Signed-off-by: fengyuanxing <feng.yuanxing@zte.com.cn>
catalog/jobs/views.py
catalog/packages/views.py

index b23156f..e077fc4 100644 (file)
@@ -31,8 +31,16 @@ logger = logging.getLogger(__name__)
 
 class JobView(APIView):
 
-    input_job_id = openapi.Parameter('job_id', openapi.IN_QUERY, description="job id", type=openapi.TYPE_STRING)
-    input_response_id = openapi.Parameter('responseId', openapi.IN_QUERY, description="response id", type=openapi.TYPE_STRING)
+    input_job_id = openapi.Parameter(
+        'job_id',
+        openapi.IN_QUERY,
+        description="job id",
+        type=openapi.TYPE_STRING)
+    input_response_id = openapi.Parameter(
+        'responseId',
+        openapi.IN_QUERY,
+        description="response id",
+        type=openapi.TYPE_STRING)
 
     @swagger_auto_schema(
         operation_description="Get job status",
@@ -47,11 +55,12 @@ class JobView(APIView):
         response_serializer = PostResponseSerializer(data=ret)
         isValid = response_serializer.is_valid()
         if not isValid:
-            message = 'Invalid resposne'
-            logger.error(response_serializer.errors)
-            return Response(data={'result': 'error', 'msg': message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+            response = self.handleValidatonError(response_serializer, False)
+            return response
 
-        return Response(data=response_serializer.data, status=status.HTTP_200_OK)
+        return Response(
+            data=response_serializer.data,
+            status=status.HTTP_200_OK)
 
     @swagger_auto_schema(
         request_body=PostJobRequestSerializer(),
@@ -69,30 +78,53 @@ class JobView(APIView):
             if len(jobs) > 0 and jobs[-1].errcode == '255':
                 return Response(data={'result': 'ok'})
 
-            serializer = PostJobRequestSerializer(data=request.data)
-            request_isValid = serializer.is_valid()
+            request_serializer = PostJobRequestSerializer(data=request.data)
+            request_isValid = request_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)
+                response = self.handleValidatonError(request_serializer, True)
+                return response
 
-            requestData = serializer.data
+            requestData = request_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'
+            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)
 
-            response = Response(data={'result': 'ok'}, status=status.HTTP_202_ACCEPTED)
-            response_serializer = GetJobResponseResultSerializer(data=response.data)
+            response = Response(
+                data={'result': 'ok'},
+                status=status.HTTP_202_ACCEPTED)
+            response_serializer = GetJobResponseResultSerializer(
+                data=response.data)
             isValid = response_serializer.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=response_serializer.data, status=status.HTTP_202_ACCEPTED)
+                response = self.handleValidatonError(
+                    response_serializer, False)
+                return response
+            return Response(
+                data=response_serializer.data,
+                status=status.HTTP_202_ACCEPTED)
         except Exception as e:
             logger.error(e.message)
             logger.error(traceback.format_exc())
-            return Response(data={'result': 'error', 'msg': e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+            return Response(
+                data={
+                    'result': 'error',
+                    'msg': e.message},
+                status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+
+    def handleValidatonError(base_serializer, is_request):
+        errormessage = base_serializer.errors
+        logger.error(errormessage)
+
+        if is_request:
+            message = 'Invalid request'
+        else:
+            message = 'Invalid response'
+        logger.error(message)
+
+        return Response(
+            data={'result': message, 'msg': errormessage},
+            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
index a3b5c1e..3c6623e 100644 (file)
@@ -220,7 +220,7 @@ def ns_model_parser(request, *args, **kwargs):
 
 @swagger_auto_schema(
     method='POST',
-    operation_description="Parse Nf model",
+    operation_description="Parse NF model",
     request_body=ParseModelRequestSerializer,
     responses={
         status.HTTP_202_ACCEPTED: ParseModelResponseSerializer,