diff options
author | 2018-01-29 10:11:48 +0800 | |
---|---|---|
committer | 2018-01-29 10:18:07 +0800 | |
commit | 1df6aecf613fe8a22e8aada2ca7d2ea0c4e827db (patch) | |
tree | f20f8be33130acfef645894f10f4ad530974cfe8 | |
parent | a267a46135f68f0400111ec87bba8adb69e226d5 (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.py | 30 |
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) |