X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=lcm%2Fns%2Fviews%2Fsol%2Finstantiate_ns_views.py;h=8b8318daabd5e8fc9b42586a6596e2a063906673;hb=0876c326a9f9809fbb35d512a4a95f9fad00e445;hp=b25823372aaeab25145db9e65ddacb9f8c502d62;hpb=4792c0f41b781d21047df7df8109c1c041fdf1ee;p=vfc%2Fnfvo%2Flcm.git diff --git a/lcm/ns/views/sol/instantiate_ns_views.py b/lcm/ns/views/sol/instantiate_ns_views.py index b2582337..8b8318da 100644 --- a/lcm/ns/views/sol/instantiate_ns_views.py +++ b/lcm/ns/views/sol/instantiate_ns_views.py @@ -22,6 +22,7 @@ from lcm.ns.biz.ns_instant import InstantNSService 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 logger = logging.getLogger(__name__) @@ -30,30 +31,41 @@ class InstantiateNsView(APIView): @swagger_auto_schema( request_body=InstantNsReqSerializer(), responses={ - status.HTTP_202_ACCEPTED: None, - status.HTTP_500_INTERNAL_SERVER_ERROR: "Inner error" + status.HTTP_202_ACCEPTED: "HTTP_202_ACCEPTED", + status.HTTP_500_INTERNAL_SERVER_ERROR: ProblemDetailsSerializer() } ) def post(self, request, ns_instance_id): - logger.debug("Enter NSInstView::post::ns_instance_id=%s", 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) + ack = InstantNSService(ns_instance_id, request.data).do_biz() - nsLcmOpOccId = ack['nsLcmOpOccId'] + nsLcmOpOccId = ack['occ_id'] response = Response(data={}, status=status.HTTP_202_ACCEPTED) - logger.debug("Location: %s" % ack['nsLcmOpOccId']) + logger.debug("Location: %s" % ack['occ_id']) response["Location"] = NS_OCC_BASE_URI % nsLcmOpOccId - logger.debug("Leave NSInstView::post::ack=%s", ack) + logger.debug("Leave InstantiateNsView::post::ack=%s", ack) return response except BadRequestException as e: - logger.error("Exception in CreateNS: %s", e.message) + 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 CreateNS: %s", e.message) + 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)