Refactor codes for ns descriptor 95/84595/1
authorfujinhua <fu.jinhua@zte.com.cn>
Tue, 9 Apr 2019 03:58:21 +0000 (11:58 +0800)
committerfujinhua <fu.jinhua@zte.com.cn>
Tue, 9 Apr 2019 03:58:21 +0000 (11:58 +0800)
Change-Id: I6cbb1543178c1a9fd50fb1f7f7960b8a5c1c9f48
Issue-ID: VFC-1306
Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
catalog/packages/views/common.py
catalog/packages/views/ns_descriptor_views.py

index f6b4a06..f7e3f70 100644 (file)
@@ -21,6 +21,7 @@ from rest_framework.response import Response
 from catalog.pub.exceptions import CatalogException
 from catalog.pub.exceptions import NsdmBadRequestException
 from catalog.pub.exceptions import PackageNotFoundException
+from catalog.pub.exceptions import ResourceNotFoundException
 
 logger = logging.getLogger(__name__)
 
@@ -58,6 +59,12 @@ def view_safe_call_with_log(logger):
                     detail=e.message,
                     status=status.HTTP_404_NOT_FOUND
                 )
+            except ResourceNotFoundException as e:
+                logger.error(e.message)
+                return make_error_resp(
+                    detail=e.message,
+                    status=status.HTTP_404_NOT_FOUND
+                )
             except NsdmBadRequestException as e:
                 logger.error(e.message)
                 return make_error_resp(
index 942033e..5a5310b 100644 (file)
@@ -27,6 +27,7 @@ from catalog.packages.serializers.nsd_info import NsdInfoSerializer
 from catalog.packages.serializers.nsd_infos import NsdInfosSerializer
 from catalog.packages.views.common import validate_data
 from catalog.pub.exceptions import CatalogException, ResourceNotFoundException
+from .common import view_safe_call_with_log
 
 logger = logging.getLogger(__name__)
 
@@ -51,33 +52,16 @@ logger = logging.getLogger(__name__)
     }
 )
 @api_view(http_method_names=['GET', 'DELETE'])
+@view_safe_call_with_log(logger=logger)
 def ns_info_rd(request, **kwargs):
     nsd_info_id = kwargs.get("nsdInfoId")
     if request.method == 'GET':
-        try:
-            data = NsDescriptor().query_single(nsd_info_id)
-            nsd_info = validate_data(data, NsdInfoSerializer)
-            return Response(data=nsd_info.data, status=status.HTTP_200_OK)
-        except ResourceNotFoundException as e:
-            logger.error(e.message)
-            error_data = {'error': e.message}
-            error_code = status.HTTP_404_NOT_FOUND
-        except Exception as e:
-            logger.error(e.message)
-            logger.error(traceback.format_exc())
-            error_data = {'error': 'Query of NSD(%s) failed.' % nsd_info_id}
-            error_code = status.HTTP_500_INTERNAL_SERVER_ERROR
-        return Response(data=error_data, status=error_code)
-
+        data = NsDescriptor().query_single(nsd_info_id)
+        nsd_info = validate_data(data, NsdInfoSerializer)
+        return Response(data=nsd_info.data, status=status.HTTP_200_OK)
     if request.method == 'DELETE':
-        try:
-            NsDescriptor().delete_single(nsd_info_id)
-            return Response(status=status.HTTP_204_NO_CONTENT)
-        except Exception as e:
-            logger.error(e.message)
-            logger.error(traceback.format_exc())
-            error_data = {'error': 'Deletion of NSD(%s) failed.' % nsd_info_id}
-        return Response(data=error_data, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+        NsDescriptor().delete_single(nsd_info_id)
+        return Response(status=status.HTTP_204_NO_CONTENT)
 
 
 @swagger_auto_schema(