aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfujinhua <fu.jinhua@zte.com.cn>2018-01-29 10:11:48 +0800
committerfujinhua <fu.jinhua@zte.com.cn>2018-01-29 10:18:07 +0800
commit1df6aecf613fe8a22e8aada2ca7d2ea0c4e827db (patch)
treef20f8be33130acfef645894f10f4ad530974cfe8
parenta267a46135f68f0400111ec87bba8adb69e226d5 (diff)
Add get ns detail swagger generate logic
Change-Id: I9e443ae9604faa5e0047105016d4e93be984bfad Issue-ID: VFC-680 Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
-rw-r--r--lcm/ns/views.py30
1 files changed, 23 insertions, 7 deletions
diff --git a/lcm/ns/views.py b/lcm/ns/views.py
index 23c3adc9..84c50da1 100644
--- a/lcm/ns/views.py
+++ b/lcm/ns/views.py
@@ -187,14 +187,30 @@ class NSHealView(APIView):
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):
- 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)
- return Response(data=ret, status=status.HTTP_200_OK)
+ 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)
def delete(self, request, ns_instance_id):
logger.debug("Enter NSDetailView::delete ns(%s)", ns_instance_id)