Add create vl swagger generate logic 05/29605/2
authorfujinhua <fu.jinhua@zte.com.cn>
Tue, 30 Jan 2018 07:59:48 +0000 (15:59 +0800)
committerfujinhua <fu.jinhua@zte.com.cn>
Tue, 30 Jan 2018 08:16:19 +0000 (16:16 +0800)
Change-Id: Idc4cf055e38f39bb91d5881ff32d4652f7d8836d
Issue-ID: VFC-688
Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
lcm/ns/tests/vls/tests.py
lcm/ns/vls/serializers.py
lcm/ns/vls/views.py

index 288c70e..2966c90 100644 (file)
@@ -84,10 +84,10 @@ class TestVlViews(TestCase):
         req_data = {
             "nsInstanceId": self.ns_inst_id,
             "context": json.JSONEncoder().encode(self.context),
-            "vlindex": vl_id}
+            "vlIndex": vl_id}
         response = self.client.post("/api/nslcm/v1/ns/vls", data=req_data)
         self.assertEqual(status.HTTP_201_CREATED, response.status_code)
-        self.assertEqual(0, response.data["result"])
+        self.assertEqual(0, response.data["result"], response.data)
 
     @mock.patch.object(restcall, "call_req")
     @mock.patch.object(vimadaptor.VimAdaptor, "create_network")
@@ -96,7 +96,7 @@ class TestVlViews(TestCase):
         req_data = {
             "nsInstanceId": self.ns_inst_id,
             "context": json.JSONEncoder().encode(self.context),
-            "vlindex": self.vl_id_1}
+            "vlIndex": self.vl_id_1}
         mock_uuid4.return_value = '999'
         mock_req_by_rest.return_value = [0, json.JSONEncoder().encode(vim_info), '200']
         mock_create_network.return_value = [1, (1)]
index d544b1f..8e6f2f3 100644 (file)
@@ -16,13 +16,13 @@ from rest_framework import serializers
 
 
 class CreateVlReqSerializer(serializers.Serializer):
-    index = serializers.CharField(help_text="Index of VL instance", required=True)
+    vlIndex = serializers.CharField(help_text="Index of VL instance", required=True)
     nsInstanceId = serializers.CharField(help_text="ID of NS instance", required=False, allow_null=True)
     context = serializers.CharField(help_text="Context of VL instance", required=False, allow_null=True)
     additionalParamForNs = serializers.CharField(help_text="Additional param for NS", required=False, allow_null=True)
 
 
 class CreateVlRespSerializer(serializers.Serializer):
-    result = serializers.IntegerField(help_text="Index of VL instance", required=True)
+    result = serializers.IntegerField(help_text="Index of VL instance(0: success, 1: failed)", required=True)
     detail = serializers.CharField(help_text="Detail of result", required=False, allow_null=True)
     vlId = serializers.CharField(help_text="ID of VL instance", required=True)
index 94ae5e2..e04992c 100644 (file)
 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.vls.create_vls import CreateVls
 from lcm.ns.vls.delete_vls import DeleteVls
 from lcm.ns.vls.get_vls import GetVls
+from lcm.ns.vls.serializers import CreateVlReqSerializer, CreateVlRespSerializer
 
 import logging
 
@@ -26,9 +28,29 @@ logger = logging.getLogger(__name__)
 
 
 class VlView(APIView):
+    @swagger_auto_schema(
+        request_body=CreateVlReqSerializer(),
+        responses={
+            status.HTTP_201_CREATED: CreateVlRespSerializer()
+        }
+    )
     def post(self, request):
         logger.debug("VlsCreateView--post::> %s" % request.data)
+
+        req_serializer = CreateVlReqSerializer(data=request.data)
+        if not req_serializer.is_valid():
+            logger.error(req_serializer.errors)
+            resp = {"result": 1, "detail": req_serializer.errors, "vlId": ""}
+            return Response(data=resp, status=status.HTTP_201_CREATED)
+
         resp = CreateVls(request.data).do()
+
+        resp_serializer = CreateVlRespSerializer(data=resp)
+        if not resp_serializer.is_valid():
+            logger.error(resp_serializer.errors)
+            resp = {"result": 1, "detail": resp_serializer.errors, "vlId": ""}
+            return Response(data=resp, status=status.HTTP_201_CREATED)
+
         return Response(data=resp, status=status.HTTP_201_CREATED)