From 2f1382b6ef609bcc57f8848c6211b9cfff301c4f Mon Sep 17 00:00:00 2001 From: fujinhua Date: Wed, 19 Sep 2018 12:55:41 +0800 Subject: Move scale ns view as single Change-Id: I9abebb7b1a8ce2d6732ff37950d6e77f8c9f52d2 Issue-ID: VFC-1009 Signed-off-by: fujinhua --- lcm/ns/urls.py | 2 +- lcm/ns/views/scale_ns_views.py | 58 ++++++++++++++++++++++++++++++++++++++++++ lcm/ns/views/views.py | 58 ------------------------------------------ 3 files changed, 59 insertions(+), 59 deletions(-) create mode 100644 lcm/ns/views/scale_ns_views.py delete mode 100644 lcm/ns/views/views.py diff --git a/lcm/ns/urls.py b/lcm/ns/urls.py index cfff5795..4322d763 100644 --- a/lcm/ns/urls.py +++ b/lcm/ns/urls.py @@ -20,7 +20,7 @@ from lcm.ns.views.term_ns_view import TerminateNSView from lcm.ns.views.heal_ns_view import NSHealView from lcm.ns.views.get_del_ns_view import NSDetailView from lcm.ns.views.inst_ns_post_deal_view import NSInstPostDealView -from lcm.ns.views.views import NSManualScaleView +from lcm.ns.views.scale_ns_views import NSManualScaleView urlpatterns = [ # API will be deprecated in the future release diff --git a/lcm/ns/views/scale_ns_views.py b/lcm/ns/views/scale_ns_views.py new file mode 100644 index 00000000..6a9050c3 --- /dev/null +++ b/lcm/ns/views/scale_ns_views.py @@ -0,0 +1,58 @@ +# Copyright 2016-2017 ZTE Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import logging +import traceback + +from rest_framework import status +from rest_framework.response import Response +from rest_framework.views import APIView +from drf_yasg.utils import swagger_auto_schema + +from lcm.ns.biz.ns_manual_scale import NSManualScaleService +from lcm.ns.serializers.ns_serializers import ManualScaleNsReqSerializer +from lcm.ns.serializers.ns_serializers import NsOperateJobSerializer +from lcm.pub.exceptions import NSLCMException +from lcm.pub.utils.jobutil import JobUtil, JOB_TYPE + +logger = logging.getLogger(__name__) + + +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) diff --git a/lcm/ns/views/views.py b/lcm/ns/views/views.py deleted file mode 100644 index cd2b16b4..00000000 --- a/lcm/ns/views/views.py +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 2016-2017 ZTE Corporation. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import logging -import traceback - -from drf_yasg.utils import swagger_auto_schema -from lcm.ns.biz.ns_manual_scale import NSManualScaleService -from rest_framework import status -from rest_framework.response import Response -from rest_framework.views import APIView - -from lcm.ns.serializers.ns_serializers import ManualScaleNsReqSerializer -from lcm.ns.serializers.ns_serializers import NsOperateJobSerializer -from lcm.pub.exceptions import NSLCMException -from lcm.pub.utils.jobutil import JobUtil, JOB_TYPE - -logger = logging.getLogger(__name__) - - -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) -- cgit 1.2.3-korg