X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=lcm%2Flcm%2Fnf%2Fviews%2Flcm_op_occs_view.py;h=ecb9b17327c5fd35a4c8fbd41ff49a410ea79d5e;hb=46ad7c172411214c5432ed93fda4271288077447;hp=c49b64c149a1de03f8e5e11425415c2e7d05f4f4;hpb=5b075b9740c4d57e219df38ae4fb7446fbdf5833;p=vfc%2Fgvnfm%2Fvnflcm.git diff --git a/lcm/lcm/nf/views/lcm_op_occs_view.py b/lcm/lcm/nf/views/lcm_op_occs_view.py index c49b64c1..ecb9b173 100644 --- a/lcm/lcm/nf/views/lcm_op_occs_view.py +++ b/lcm/lcm/nf/views/lcm_op_occs_view.py @@ -13,7 +13,6 @@ # limitations under the License. import logging -import traceback from drf_yasg.utils import swagger_auto_schema from rest_framework import status @@ -22,8 +21,11 @@ from rest_framework.views import APIView from lcm.nf.biz.query_vnf_lcm_op_occ import QueryVnfLcmOpOcc from lcm.nf.serializers.response import ProblemDetailsSerializer +from lcm.nf.serializers.vnf_lcm_op_occ import VNFLCMOpOccSerializer from lcm.nf.serializers.vnf_lcm_op_occs import VNFLCMOpOccsSerializer from lcm.pub.exceptions import NFLCMException +from .common import view_safe_call_with_log +from .common import deal_indivdual_query logger = logging.getLogger(__name__) EXCLUDE_DEFAULT = ['operationParams', 'error', 'resourceChanges', 'changedInfo', 'changedExtConnectivity'] @@ -50,33 +52,40 @@ class QueryMultiVnfLcmOpOccs(APIView): status.HTTP_500_INTERNAL_SERVER_ERROR: ProblemDetailsSerializer() } ) + @view_safe_call_with_log(logger=logger) def get(self, request): logger.debug("QueryMultiVnfLcmOpOccs--get::> %s" % request.query_params) - try: - if request.query_params and not set(request.query_params).issubset(set(VALID_FILTERS)): - problem_details_serializer = get_problem_details_serializer(status.HTTP_400_BAD_REQUEST, "Not a valid filter") - return Response(data=problem_details_serializer.data, status=status.HTTP_400_BAD_REQUEST) - resp_data = QueryVnfLcmOpOcc(request.query_params).query_multi_vnf_lcm_op_occ() + if request.query_params and not set(request.query_params).issubset(set(VALID_FILTERS)): + problem_details_serializer = get_problem_details_serializer(status.HTTP_400_BAD_REQUEST, "Not a valid filter") + return Response(data=problem_details_serializer.data, status=status.HTTP_400_BAD_REQUEST) + resp_data = QueryVnfLcmOpOcc(request.query_params).query_multi_vnf_lcm_op_occ() - vnf_lcm_op_occs_serializer = VNFLCMOpOccsSerializer(data=resp_data) - if not vnf_lcm_op_occs_serializer.is_valid(): - raise NFLCMException(vnf_lcm_op_occs_serializer.errors) + vnf_lcm_op_occs_serializer = VNFLCMOpOccsSerializer(data=resp_data) + if not vnf_lcm_op_occs_serializer.is_valid(): + raise NFLCMException(vnf_lcm_op_occs_serializer.errors) - logger.debug("QueryMultiVnfLcmOpOccs--get::> Remove default fields if exclude_default" + - " is specified") - # TODO(bharath): Add support for "fields", "exclude_fields" in query parameters - if 'exclude_default' in request.query_params.keys(): - for field in EXCLUDE_DEFAULT: - for lcm_op in vnf_lcm_op_occs_serializer.data: - del lcm_op[field] - return Response(data=vnf_lcm_op_occs_serializer.data, status=status.HTTP_200_OK) - except NFLCMException as e: - logger.error(e.message) - problem_details_serializer = get_problem_details_serializer(status.HTTP_500_INTERNAL_SERVER_ERROR, e.message) - return Response(data=problem_details_serializer.data, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + logger.debug("QueryMultiVnfLcmOpOccs--get::> Remove default fields if exclude_default" + + " is specified") + # TODO(bharath): Add support for "fields", "exclude_fields" in query parameters + if 'exclude_default' in list(request.query_params.keys()): + for field in EXCLUDE_DEFAULT: + for lcm_op in resp_data: + del lcm_op[field] + return Response(data=resp_data, status=status.HTTP_200_OK) - except Exception as e: - logger.error(e.message) - logger.error(traceback.format_exc()) - problem_details_serializer = get_problem_details_serializer(status.HTTP_500_INTERNAL_SERVER_ERROR, e.message) - return Response(data=problem_details_serializer.data, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + +class QuerySingleVnfLcmOpOcc(APIView): + @swagger_auto_schema( + responses={ + status.HTTP_200_OK: VNFLCMOpOccSerializer(), + status.HTTP_500_INTERNAL_SERVER_ERROR: ProblemDetailsSerializer() + } + ) + @view_safe_call_with_log(logger=logger) + def get(self, request, lcmopoccid): + logger.debug("QuerySingleVnfLcmOpOcc--get::> %s" % request.query_params) + + return deal_indivdual_query(res_serializer=VNFLCMOpOccSerializer, + query_fun=QueryVnfLcmOpOcc( + data=request.data, + lcm_op_occ_id=lcmopoccid).query_single_vnf_lcm_op_occ)