aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfujinhua <fu.jinhua@zte.com.cn>2018-01-30 15:59:48 +0800
committerfujinhua <fu.jinhua@zte.com.cn>2018-01-30 16:16:19 +0800
commitafd004d47a8179bbb060e10a46ae674d89529ac0 (patch)
tree29f2b176fc858860e5a496c7d9706331b34fd26b
parent0e7a7a2f9f8f1ce46fd58ab80446c3bfe00d0b07 (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.py6
-rw-r--r--lcm/ns/vls/serializers.py4
-rw-r--r--lcm/ns/vls/views.py22
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)