From: fujinhua Date: Mon, 29 Jan 2018 06:14:14 +0000 (+0800) Subject: Add ns scale swagger generate logic X-Git-Tag: v1.1.0~202^2 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F47%2F29447%2F1;p=vfc%2Fnfvo%2Flcm.git Add ns scale swagger generate logic Change-Id: I52682dd3f8b9a782e16b23d50ada17a8ca966c81 Issue-ID: VFC-680 Signed-off-by: fujinhua --- diff --git a/lcm/ns/views.py b/lcm/ns/views.py index b07f21ef..429df521 100644 --- a/lcm/ns/views.py +++ b/lcm/ns/views.py @@ -38,6 +38,7 @@ from lcm.ns.serializers import InstantNsReqSerializer from lcm.ns.serializers import TerminateNsReqSerializer from lcm.ns.serializers import HealNsReqSerializer from lcm.ns.serializers import InstNsPostDealReqSerializer +from lcm.ns.serializers import ManualScaleNsReqSerializer from lcm.pub.exceptions import NSLCMException logger = logging.getLogger(__name__) @@ -282,14 +283,30 @@ class NSInstPostDealView(APIView): class NSManualScaleView(APIView): + @swagger_auto_schema( + request_body=ManualScaleNsReqSerializer(help_text="NS manual scale"), + responses={ + status.HTTP_202_ACCEPTED: NsOperateJobSerializer(), + status.HTTP_500_INTERNAL_SERVER_ERROR: "Inner error" + } + ) def post(self, request, ns_instance_id): logger.debug("Enter NSManualScaleView::post %s, %s", request.data, ns_instance_id) job_id = JobUtil.create_job("NS", JOB_TYPE.MANUAL_SCALE_VNF, ns_instance_id) try: + req_serializer = ManualScaleNsReqSerializer(data=request.data) + if not req_serializer.is_valid(): + raise NSLCMException(req_serializer.errors) + NSManualScaleService(ns_instance_id, request.data, job_id).start() + + resp_serializer = NsOperateJobSerializer(data={'jobId': job_id}) + if not resp_serializer.is_valid(): + raise NSLCMException(resp_serializer.errors) + + return Response(data=resp_serializer.data, status=status.HTTP_202_ACCEPTED) except Exception as e: logger.error(traceback.format_exc()) JobUtil.add_job_status(job_id, 255, 'NS scale failed: %s' % e.message) return Response(data={'error': 'NS scale failed: %s' % ns_instance_id}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) - return Response(data={'jobId': job_id}, status=status.HTTP_202_ACCEPTED)