Add validation code 73/29273/1
authorfengyuanxing <feng.yuanxing@zte.com.cn>
Fri, 26 Jan 2018 08:01:42 +0000 (16:01 +0800)
committerfengyuanxing <feng.yuanxing@zte.com.cn>
Fri, 26 Jan 2018 08:01:42 +0000 (16:01 +0800)
Change-Id: I37591d5c4300cff28cf2fcc6a54109979300c711
Issue-ID: VFC-685
Signed-off-by: fengyuanxing <feng.yuanxing@zte.com.cn>
catalog/jobs/views.py
catalog/packages/views.py
catalog/serializers.py

index 3439106..b23156f 100644 (file)
@@ -22,8 +22,8 @@ from rest_framework import status
 from catalog.jobs.job_get import GetJobInfoService
 from catalog.pub.utils.jobutil import JobUtil
 from catalog.pub.utils.values import ignore_case_get
-from catalog.serializers import JobResponseSerializer
-from catalog.serializers import PostJobResponseResultSerializer
+from catalog.serializers import PostResponseSerializer
+from catalog.serializers import GetJobResponseResultSerializer
 from catalog.serializers import PostJobRequestSerializer
 
 logger = logging.getLogger(__name__)
@@ -38,13 +38,13 @@ class JobView(APIView):
         operation_description="Get job status",
         manual_parameters=[input_job_id, input_response_id],
         responses={
-            status.HTTP_200_OK: JobResponseSerializer(),
-            status.HTTP_500_INTERNAL_SERVER_ERROR: PostJobResponseResultSerializer()
+            status.HTTP_200_OK: PostResponseSerializer(),
+            status.HTTP_500_INTERNAL_SERVER_ERROR: GetJobResponseResultSerializer()
         })
     def get(self, request, job_id):
         response_id = ignore_case_get(request.META, 'responseId')
         ret = GetJobInfoService(job_id, response_id).do_biz()
-        response_serializer = JobResponseSerializer(data=ret)
+        response_serializer = PostResponseSerializer(data=ret)
         isValid = response_serializer.is_valid()
         if not isValid:
             message = 'Invalid resposne'
@@ -58,8 +58,8 @@ class JobView(APIView):
         operation_description="Update job status",
         manual_parameters=[input_job_id],
         responses={
-            status.HTTP_202_ACCEPTED: PostJobResponseResultSerializer(),
-            status.HTTP_500_INTERNAL_SERVER_ERROR: PostJobResponseResultSerializer()
+            status.HTTP_202_ACCEPTED: GetJobResponseResultSerializer(),
+            status.HTTP_500_INTERNAL_SERVER_ERROR: GetJobResponseResultSerializer()
         }
     )
     def post(self, request, job_id):
@@ -84,7 +84,7 @@ class JobView(APIView):
             JobUtil.add_job_status(job_id, progress, desc, error_code=errcode)
 
             response = Response(data={'result': 'ok'}, status=status.HTTP_202_ACCEPTED)
-            response_serializer = PostJobResponseResultSerializer(data=response.data)
+            response_serializer = GetJobResponseResultSerializer(data=response.data)
             isValid = response_serializer.is_valid()
             if not isValid:
                 message = 'Invalid resposne'
index a2861f0..7fcb854 100644 (file)
@@ -28,7 +28,7 @@ from drf_yasg.utils import no_body, swagger_auto_schema
 from catalog.serializers import NsPackagesSerializer
 from catalog.serializers import NfPackageSerializer
 from catalog.serializers import NfPackageDistributeRequestSerializer
-from catalog.serializers import PostJobResponseResultSerializer
+from catalog.serializers import GetJobResponseResultSerializer
 
 
 logger = logging.getLogger(__name__)
@@ -62,7 +62,7 @@ logger = logging.getLogger(__name__)
 @api_view(http_method_names=['POST', 'GET'])
 def nspackages_rc(request, *args, **kwargs):
     logger.debug("Enter %s, method is %s", fun_name(), request.method)
-    ret, normal_status, validation_response = None, None, None
+    ret, normal_status, validation_error = None, None, None
 
     if request.method == 'GET':
         # Gets ns package list
@@ -71,7 +71,7 @@ def nspackages_rc(request, *args, **kwargs):
         responseSerializer = NsPackagesSerializer(data=ret[1])
 
         if not responseSerializer.is_valid():
-            validation_response = handleValidatonError(
+            validation_error = handleValidatonError(
                 responseSerializer, False)
     elif request.method == 'POST':
         # Distributes the package accroding to the given csarId
@@ -80,8 +80,8 @@ def nspackages_rc(request, *args, **kwargs):
         ret = ns_package.ns_on_distribute(csar_id)
         normal_status = status.HTTP_202_ACCEPTED
 
-    if validation_response:
-        return validation_response
+    if validation_error:
+        return validation_error
 
     logger.debug("Leave %s, Return value is %s", fun_name(), ret)
     if ret[0] != 0:
@@ -97,7 +97,7 @@ def nspackages_rc(request, *args, **kwargs):
     operation_description="On distribute Nf package",
     request_body=NfPackageDistributeRequestSerializer(),
     responses={
-        status.HTTP_202_ACCEPTED: PostJobResponseResultSerializer,
+        status.HTTP_202_ACCEPTED: GetJobResponseResultSerializer,
         status.HTTP_500_INTERNAL_SERVER_ERROR: openapi.Response(
             'error message',
             openapi.Schema(
@@ -120,20 +120,25 @@ def nfpackages_rc(request, *args, **kwargs):
         fun_name(),
         request.data,
         request.method)
-    ret, normal_status = None, None
+    ret, normal_status, validation_error = None, None, None
     if request.method == 'GET':
         ret = nf_package.nf_get_csars()
         normal_status = status.HTTP_200_OK
     elif request.method == 'POST':
-        csar_id = ignore_case_get(request.data, "csarId")
-        vim_ids = ignore_case_get(request.data, "vimIds")
-        lab_vim_id = ignore_case_get(request.data, "labVimId")
+        request_serivalizer = NfPackageDistributeRequestSerializer(data=request.data)
+        if not request_serivalizer.is_valid():
+            validation_error = handleValidatonError(request_serivalizer, True)
+            return validation_error
+        csar_id = ignore_case_get(request_serivalizer.data, "csarId")
+        vim_ids = ignore_case_get(request_serivalizer.data, "vimIds")
+        lab_vim_id = ignore_case_get(request_serivalizer.data, "labVimId")
         job_id = str(uuid.uuid4())
         nf_package.NfDistributeThread(
             csar_id, vim_ids, lab_vim_id, job_id).start()
         ret = [0, {"jobId": job_id}]
         normal_status = status.HTTP_202_ACCEPTED
     logger.debug("Leave %s, Return value is %s", fun_name(), ret)
+
     if ret[0] != 0:
         return Response(
             data={
index c4321e2..d5d3030 100644 (file)
@@ -44,7 +44,7 @@ class JobResponseDescriptorSerializer(serializers.Serializer):
         many=True, help_text="Response History List", required=False)
 
 
-class JobResponseSerializer(serializers.Serializer):
+class PostResponseSerializer(serializers.Serializer):
     jobId = serializers.CharField(
         help_text="Job Id",
         required=False)
@@ -52,7 +52,7 @@ class JobResponseSerializer(serializers.Serializer):
         help_text="Job Response Descriptor", required=False)
 
 
-class PostJobResponseResultSerializer(serializers.Serializer):
+class GetJobResponseResultSerializer(serializers.Serializer):
     result = serializers.CharField(help_text="Result", required=True)
     msg = serializers.CharField(help_text="Message", required=False)
 
@@ -85,13 +85,15 @@ class NsPackagesSerializer(serializers.ListSerializer):
 
 
 class NfPackageDistributeRequestSerializer(serializers.Serializer):
-    csar_id = serializers.CharField(help_text="CSAR ID", required=True)
+    csarId = serializers.CharField(help_text="CSAR ID", required=True)
     vimIds = serializers.ListField(
-        help_text="vim_ids",
+        help_text="A string for vimIds",
         child=serializers.CharField(),
         required=False)
     labVimId = serializers.CharField(
-        help_text="A list of VIM IDs.", required=False)
+        help_text="A list of VIM IDs.",
+        allow_blank=True,
+        required=False)
 
 
 class NfPackageInfoSerializer(serializers.Serializer):