From: laili Date: Thu, 23 Aug 2018 07:25:35 +0000 (+0800) Subject: Ns descriptor related stuffs. X-Git-Tag: 1.2.0~75^2~2 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=15959a375e342713a50dde8e28c3e7e0046d75f6;p=vfc%2Fnfvo%2Fcatalog.git Ns descriptor related stuffs. Implement the view for query of multiple pnfds. Change-Id: I811561f8a0aefc3ba90c1ac15e38a98b7c1846a2 Issue-ID: VFC-1037 Signed-off-by: laili --- diff --git a/catalog/packages/views/pnf_descriptor_views.py b/catalog/packages/views/pnf_descriptor_views.py index a55fb272..5b970272 100644 --- a/catalog/packages/views/pnf_descriptor_views.py +++ b/catalog/packages/views/pnf_descriptor_views.py @@ -20,10 +20,11 @@ from rest_framework import status from rest_framework.decorators import api_view from rest_framework.response import Response -from catalog.packages.biz.pnf_descriptor import create, upload +from catalog.packages.biz.pnf_descriptor import create, query_multiple, upload from catalog.packages.serializers.create_pnfd_info_request import \ CreatePnfdInfoRequestSerializer from catalog.packages.serializers.pnfd_info import PnfdInfoSerializer +from catalog.packages.serializers.pnfd_infos import PnfdInfosSerializer from catalog.pub.exceptions import CatalogException logger = logging.getLogger(__name__) @@ -62,20 +63,44 @@ def query_single_pnfd(self, request): status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error" } ) -@api_view(http_method_names=['POST']) +@swagger_auto_schema( + method='GET', + operation_description="Query multiple PNF descriptor resources", + request_body=no_body, + responses={ + status.HTTP_200_OK: PnfdInfosSerializer(), + status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error" + } +) +@api_view(http_method_names=['POST', 'GET']) def pnf_descriptors_rc(request, *args, **kwargs): - try: - create_pnfd_info_request = CreatePnfdInfoRequestSerializer(data=request.data) - if not create_pnfd_info_request.is_valid(): - raise CatalogException - data = create(create_pnfd_info_request.data) - pnfd_info = PnfdInfoSerializer(data=data) - if not pnfd_info.is_valid(): - raise CatalogException - return Response(data=pnfd_info.data, status=status.HTTP_201_CREATED) - except CatalogException: - logger.error(traceback.format_exc()) - return Response(data={'error': 'Creating pnfd info failed.'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + if request.method == 'POST': + try: + create_pnfd_info_request = CreatePnfdInfoRequestSerializer(data=request.data) + if not create_pnfd_info_request.is_valid(): + raise CatalogException + data = create(create_pnfd_info_request.data) + pnfd_info = PnfdInfoSerializer(data=data) + if not pnfd_info.is_valid(): + raise CatalogException + return Response(data=pnfd_info.data, status=status.HTTP_201_CREATED) + except CatalogException: + logger.error(traceback.format_exc()) + return Response(data={'error': 'Creating pnfd info failed.'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + + if request.method == 'GET': + try: + data = query_multiple() + pnfd_infos = PnfdInfosSerializer(data=data) + if not pnfd_infos.is_valid(): + raise CatalogException + return Response(data=pnfd_infos.data, status=status.HTTP_200_OK) + except CatalogException: + logger.error(traceback.format_exc()) + return Response( + data={'error': 'Query of multiple PNF descriptor resources failed.'}, + status=status.HTTP_500_INTERNAL_SERVER_ERROR + ) @swagger_auto_schema(