From: fujinhua Date: Wed, 19 Sep 2018 02:44:47 +0000 (+0800) Subject: Move get and del ns view as single X-Git-Tag: 1.2.0~25 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=8b34893ea993f2f7237ddbf82327521f99cd1311;p=vfc%2Fnfvo%2Flcm.git Move get and del ns view as single Change-Id: I942a9dff2cbb75face293da6fb39e45af24ea9cb Issue-ID: VFC-1009 Signed-off-by: fujinhua --- diff --git a/lcm/ns/urls.py b/lcm/ns/urls.py index 2aaa4eb3..cbc2c4d7 100644 --- a/lcm/ns/urls.py +++ b/lcm/ns/urls.py @@ -18,7 +18,8 @@ from lcm.ns.views.create_ns_view import CreateNSView from lcm.ns.views.inst_ns_view import NSInstView from lcm.ns.views.term_ns_view import TerminateNSView from lcm.ns.views.heal_ns_view import NSHealView -from lcm.ns.views.views import NSDetailView, NSInstPostDealView, \ +from lcm.ns.views.get_del_ns_view import NSDetailView +from lcm.ns.views.views import NSInstPostDealView, \ NSManualScaleView urlpatterns = [ diff --git a/lcm/ns/views/get_del_ns_view.py b/lcm/ns/views/get_del_ns_view.py new file mode 100644 index 00000000..6ea97da1 --- /dev/null +++ b/lcm/ns/views/get_del_ns_view.py @@ -0,0 +1,71 @@ +# 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_get import GetNSInfoService +from lcm.ns.biz.ns_delete import DeleteNsService +from lcm.ns.serializers.ns_serializers import QueryNsRespSerializer +from lcm.pub.exceptions import NSLCMException + +logger = logging.getLogger(__name__) + + +class NSDetailView(APIView): + @swagger_auto_schema( + request_body=None, + responses={ + status.HTTP_200_OK: QueryNsRespSerializer(help_text="NS instance", many=True), + status.HTTP_500_INTERNAL_SERVER_ERROR: "Inner error", + status.HTTP_404_NOT_FOUND: "Ns instance does not exist" + } + ) + def get(self, request, ns_instance_id): + try: + logger.debug("Enter NSDetailView::get ns(%s)", ns_instance_id) + ns_filter = {"ns_inst_id": ns_instance_id} + ret = GetNSInfoService(ns_filter).get_ns_info() + if not ret: + return Response(status=status.HTTP_404_NOT_FOUND) + logger.debug("Leave NSDetailView::get::ret=%s", ret) + resp_serializer = QueryNsRespSerializer(data=ret, many=True) + if not resp_serializer.is_valid(): + raise NSLCMException(resp_serializer.errors) + return Response(data=resp_serializer.data, status=status.HTTP_200_OK) + except Exception as e: + logger.error(traceback.format_exc()) + logger.error("Exception in GetNSDetail: %s", e.message) + return Response(data={'error': e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + + @swagger_auto_schema( + request_body=None, + responses={ + status.HTTP_204_NO_CONTENT: 'successful', + status.HTTP_500_INTERNAL_SERVER_ERROR: "Inner error" + } + ) + def delete(self, request, ns_instance_id): + try: + logger.debug("Enter NSDetailView::delete ns(%s)", ns_instance_id) + DeleteNsService(ns_instance_id).do_biz() + return Response(data={}, status=status.HTTP_204_NO_CONTENT) + except Exception as e: + logger.error(traceback.format_exc()) + logger.error("Exception in delete NS: %s", e.message) + return Response(data={'error': e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) diff --git a/lcm/ns/views/views.py b/lcm/ns/views/views.py index 9f3bdd58..e3b77c5e 100644 --- a/lcm/ns/views/views.py +++ b/lcm/ns/views/views.py @@ -16,17 +16,14 @@ import logging import traceback from drf_yasg.utils import swagger_auto_schema -from lcm.ns.biz.ns_get import GetNSInfoService 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.biz.ns_delete import DeleteNsService from lcm.ns.serializers.ns_serializers import InstNsPostDealReqSerializer from lcm.ns.serializers.ns_serializers import ManualScaleNsReqSerializer from lcm.ns.serializers.ns_serializers import NsOperateJobSerializer -from lcm.ns.serializers.ns_serializers import QueryNsRespSerializer from lcm.pub.database.models import NSInstModel, ServiceBaseInfoModel from lcm.pub.exceptions import NSLCMException from lcm.pub.utils.jobutil import JobUtil, JOB_TYPE @@ -36,50 +33,6 @@ from lcm.pub.utils.values import ignore_case_get logger = logging.getLogger(__name__) -class NSDetailView(APIView): - @swagger_auto_schema( - request_body=None, - responses={ - status.HTTP_200_OK: QueryNsRespSerializer(help_text="NS instance", many=True), - status.HTTP_500_INTERNAL_SERVER_ERROR: "Inner error", - status.HTTP_404_NOT_FOUND: "Ns instance does not exist" - } - ) - def get(self, request, ns_instance_id): - try: - logger.debug("Enter NSDetailView::get ns(%s)", ns_instance_id) - ns_filter = {"ns_inst_id": ns_instance_id} - ret = GetNSInfoService(ns_filter).get_ns_info() - if not ret: - return Response(status=status.HTTP_404_NOT_FOUND) - logger.debug("Leave NSDetailView::get::ret=%s", ret) - resp_serializer = QueryNsRespSerializer(data=ret, many=True) - if not resp_serializer.is_valid(): - raise NSLCMException(resp_serializer.errors) - return Response(data=resp_serializer.data, status=status.HTTP_200_OK) - except Exception as e: - logger.error(traceback.format_exc()) - logger.error("Exception in GetNSDetail: %s", e.message) - return Response(data={'error': e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) - - @swagger_auto_schema( - request_body=None, - responses={ - status.HTTP_204_NO_CONTENT: 'successful', - status.HTTP_500_INTERNAL_SERVER_ERROR: "Inner error" - } - ) - def delete(self, request, ns_instance_id): - try: - logger.debug("Enter NSDetailView::delete ns(%s)", ns_instance_id) - DeleteNsService(ns_instance_id).do_biz() - return Response(data={}, status=status.HTTP_204_NO_CONTENT) - except Exception as e: - logger.error(traceback.format_exc()) - logger.error("Exception in delete NS: %s", e.message) - return Response(data={'error': e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) - - class NSInstPostDealView(APIView): @swagger_auto_schema( request_body=InstNsPostDealReqSerializer(help_text="NS instant post deal"),