diff options
author | 2018-01-29 06:22:39 +0000 | |
---|---|---|
committer | 2018-01-29 06:22:39 +0000 | |
commit | ea922f3779644a1d0b16182fe0124e16a6b22713 (patch) | |
tree | 157bde31525f59538985b02ebf0023ba9fc21aae | |
parent | 55d224a89a919fc2bb9e20dd7b3b3d892ee020c4 (diff) | |
parent | 96e7252cfb393e78b8061453134371865b2bdf2b (diff) |
Merge "Add ns scale swagger generate logic"
-rw-r--r-- | lcm/ns/views.py | 19 |
1 files changed, 18 insertions, 1 deletions
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) |