From 4bf98826f1b20d0d3b068310c3142a7b17dc0ca5 Mon Sep 17 00:00:00 2001 From: fujinhua Date: Wed, 10 Apr 2019 10:06:34 +0800 Subject: [PATCH] Refactor codes for instantiate ns Change-Id: I696b37ad814a27fe6aa1a92b34a90def55f7cd82 Issue-ID: VFC-1306 Signed-off-by: fujinhua --- lcm/ns/views/sol/instantiate_ns_views.py | 52 ++++++++++++++------------------ 1 file changed, 23 insertions(+), 29 deletions(-) diff --git a/lcm/ns/views/sol/instantiate_ns_views.py b/lcm/ns/views/sol/instantiate_ns_views.py index 8b8318da..615f43c2 100644 --- a/lcm/ns/views/sol/instantiate_ns_views.py +++ b/lcm/ns/views/sol/instantiate_ns_views.py @@ -23,6 +23,7 @@ from lcm.ns.serializers.sol.inst_ns_serializers import InstantNsReqSerializer from lcm.pub.exceptions import BadRequestException from lcm.ns.const import NS_OCC_BASE_URI from lcm.ns.serializers.sol.pub_serializers import ProblemDetailsSerializer +from .common import view_safe_call_with_log logger = logging.getLogger(__name__) @@ -35,37 +36,30 @@ class InstantiateNsView(APIView): status.HTTP_500_INTERNAL_SERVER_ERROR: ProblemDetailsSerializer() } ) + @view_safe_call_with_log(logger=logger) def post(self, request, ns_instance_id): logger.debug("Enter InstantiateNsView::post::ns_instance_id=%s", ns_instance_id) logger.debug("request.data=%s", request.data) - try: - req_serializer = InstantNsReqSerializer(data=request.data) - if not req_serializer.is_valid(): - logger.debug("request.data is not valid,error: %s" % req_serializer.errors) - raise BadRequestException(req_serializer.errors) - InstantNsReq = request.data - if "additionalParamsForVnf" in InstantNsReq: - InstantNsReq['locationConstraints'] = [] - for additionalParamsForVnf in InstantNsReq["additionalParamsForVnf"]: - vnf = {} - vnf['vnfProfileId'] = additionalParamsForVnf['vnfProfileId'] - vnf['locationConstraints'] = {'vimId': additionalParamsForVnf['additionalParams']['vimId']} - vnf['additionalParams'] = additionalParamsForVnf['additionalParams'] - InstantNsReq['locationConstraints'].append(vnf) + req_serializer = InstantNsReqSerializer(data=request.data) + if not req_serializer.is_valid(): + logger.debug("request.data is not valid,error: %s" % req_serializer.errors) + raise BadRequestException(req_serializer.errors) - ack = InstantNSService(ns_instance_id, request.data).do_biz() - nsLcmOpOccId = ack['occ_id'] - response = Response(data={}, status=status.HTTP_202_ACCEPTED) - logger.debug("Location: %s" % ack['occ_id']) - response["Location"] = NS_OCC_BASE_URI % nsLcmOpOccId - logger.debug("Leave InstantiateNsView::post::ack=%s", ack) - return response - except BadRequestException as e: - logger.error("Exception in InstantiateNsView: %s", e.message) - data = {'status': status.HTTP_400_BAD_REQUEST, 'detail': e.message} - return Response(data=data, status=status.HTTP_400_BAD_REQUEST) - except Exception as e: - logger.error("Exception in InstantiateNsView: %s", e.message) - data = {'status': status.HTTP_500_INTERNAL_SERVER_ERROR, 'detail': e.message} - return Response(data=data, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + InstantNsReq = request.data + if "additionalParamsForVnf" in InstantNsReq: + InstantNsReq['locationConstraints'] = [] + for additionalParamsForVnf in InstantNsReq["additionalParamsForVnf"]: + vnf = {} + vnf['vnfProfileId'] = additionalParamsForVnf['vnfProfileId'] + vnf['locationConstraints'] = {'vimId': additionalParamsForVnf['additionalParams']['vimId']} + vnf['additionalParams'] = additionalParamsForVnf['additionalParams'] + InstantNsReq['locationConstraints'].append(vnf) + + ack = InstantNSService(ns_instance_id, request.data).do_biz() + nsLcmOpOccId = ack['occ_id'] + response = Response(data={}, status=status.HTTP_202_ACCEPTED) + logger.debug("Location: %s" % ack['occ_id']) + response["Location"] = NS_OCC_BASE_URI % nsLcmOpOccId + logger.debug("Leave InstantiateNsView::post::ack=%s", ack) + return response -- 2.16.6