nsName = serializers.CharField(help_text="Name of NS instance", required=False, allow_null=True)
description = serializers.CharField(help_text="Description of NS instance", required=False, allow_null=True)
nsdId = serializers.CharField(help_text="ID of NSD", required=True)
- vnfInfo = VnfInstSerializer(help_text="VNF instances", many=True)
- vlInfo = VlInstSerializer(help_text="VL instances", many=True)
- vnffgInfo = VnffgInstSerializer(help_text="VNFFG instances", many=True)
+ vnfInfo = VnfInstSerializer(help_text="VNF instances", many=True, required=False, allow_null=True)
+ vlInfo = VlInstSerializer(help_text="VL instances", many=True, required=False, allow_null=True)
+ vnffgInfo = VnffgInstSerializer(help_text="VNFFG instances", many=True, required=False, allow_null=True)
nsState = serializers.CharField(help_text="State of NS instance", required=False, allow_null=True)
\r
def test_query_all_nsinstance(self):\r
response = self.client.get("/api/nslcm/v1/ns")\r
- self.failUnlessEqual(status.HTTP_200_OK, response.status_code)\r
+ self.failUnlessEqual(status.HTTP_200_OK, response.status_code, response.data)\r
self.assertIsNotNone(response.data)\r
self.assertEqual(2, len(response.data))\r
\r
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(),