aboutsummaryrefslogtreecommitdiffstats
path: root/lcm/ns/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'lcm/ns/views.py')
-rw-r--r--lcm/ns/views.py34
1 files changed, 25 insertions, 9 deletions
diff --git a/lcm/ns/views.py b/lcm/ns/views.py
index 954f6486..ae9c48d1 100644
--- a/lcm/ns/views.py
+++ b/lcm/ns/views.py
@@ -33,22 +33,38 @@ from lcm.pub.utils.jobutil import JobUtil, JOB_TYPE
from lcm.pub.utils.restcall import req_by_msb
from lcm.pub.utils.values import ignore_case_get
from lcm.ns.serializers import CreateNsReqSerializer, CreateNsRespSerializer
+from lcm.ns.serializers import QueryNsRespSerializer
from lcm.pub.exceptions import NSLCMException
logger = logging.getLogger(__name__)
class CreateNSView(APIView):
+ @swagger_auto_schema(
+ request_body=None,
+ responses={
+ status.HTTP_200_OK: QueryNsRespSerializer(help_text="NS instances", many=True),
+ status.HTTP_500_INTERNAL_SERVER_ERROR: "Inner error"
+ }
+ )
def get(self, request):
- logger.debug("CreateNSView::get")
- filter = None
- csarId = ignore_case_get(request.META, 'csarId')
- if csarId:
- filter = {"csarId": csarId}
-
- ret = GetNSInfoService(filter).get_ns_info()
- logger.debug("CreateNSView::get::ret=%s", ret)
- return Response(data=ret, status=status.HTTP_200_OK)
+ try:
+ logger.debug("CreateNSView::get")
+ filter = None
+ csarId = ignore_case_get(request.META, 'csarId')
+ if csarId:
+ filter = {"csarId": csarId}
+
+ ret = GetNSInfoService(filter).get_ns_info()
+ logger.debug("CreateNSView::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 GetNS: %s", e.message)
+ return Response(data={'error': e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
@swagger_auto_schema(
request_body=CreateNsReqSerializer(),