diff options
author | 2018-01-30 15:59:48 +0800 | |
---|---|---|
committer | 2018-01-30 16:16:19 +0800 | |
commit | afd004d47a8179bbb060e10a46ae674d89529ac0 (patch) | |
tree | 29f2b176fc858860e5a496c7d9706331b34fd26b | |
parent | 0e7a7a2f9f8f1ce46fd58ab80446c3bfe00d0b07 (diff) |
Add create vl swagger generate logic
Change-Id: Idc4cf055e38f39bb91d5881ff32d4652f7d8836d
Issue-ID: VFC-688
Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
-rw-r--r-- | lcm/ns/tests/vls/tests.py | 6 | ||||
-rw-r--r-- | lcm/ns/vls/serializers.py | 4 | ||||
-rw-r--r-- | lcm/ns/vls/views.py | 22 |
3 files changed, 27 insertions, 5 deletions
diff --git a/lcm/ns/tests/vls/tests.py b/lcm/ns/tests/vls/tests.py index 288c70e4..2966c908 100644 --- a/lcm/ns/tests/vls/tests.py +++ b/lcm/ns/tests/vls/tests.py @@ -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)] diff --git a/lcm/ns/vls/serializers.py b/lcm/ns/vls/serializers.py index d544b1fd..8e6f2f32 100644 --- a/lcm/ns/vls/serializers.py +++ b/lcm/ns/vls/serializers.py @@ -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) diff --git a/lcm/ns/vls/views.py b/lcm/ns/vls/views.py index 94ae5e21..e04992cf 100644 --- a/lcm/ns/vls/views.py +++ b/lcm/ns/vls/views.py @@ -15,10 +15,12 @@ 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) |