Add query vnfm swagger generate logic 01/30801/2
authorfujinhua <fu.jinhua@zte.com.cn>
Thu, 8 Feb 2018 05:31:53 +0000 (13:31 +0800)
committerfujinhua <fu.jinhua@zte.com.cn>
Fri, 9 Feb 2018 00:39:52 +0000 (08:39 +0800)
Change-Id: Ic90e1ed16c88ccbba9da8c4b61dd2af17ac3c00a
Issue-ID: VFC-714
Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
lcm/ns/tests/vnfs/tests.py
lcm/ns/vnfs/serializers.py
lcm/ns/vnfs/views.py

index 5792482..9650ed4 100644 (file)
@@ -520,7 +520,7 @@ class TestGetVnfmInfoViews(TestCase):
         }
 
         response = self.client.get("/api/nslcm/v1/vnfms/%s" % self.vnfm_id)
-        self.failUnlessEqual(status.HTTP_200_OK, response.status_code)
+        self.failUnlessEqual(status.HTTP_200_OK, response.status_code, response.content)
         context = json.loads(response.content)
         self.assertEqual(expect_data, context)
 
index a4edf8c..da426d4 100644 (file)
@@ -194,11 +194,11 @@ class VnfmInfoRespSerializer(serializers.Serializer):
     name = serializers.CharField(help_text="Name of VNFM", required=True)
     type = serializers.CharField(help_text="Type of VNFM", required=True)
     vimId = serializers.CharField(help_text="ID of VIM", required=True)
-    vendor = serializers.CharField(help_text="Vendor of VNFM", required=True)
-    version = serializers.CharField(help_text="Version of VNFM", required=True)
-    description = serializers.CharField(help_text="Description of VNFM", required=True)
+    vendor = serializers.CharField(help_text="Vendor of VNFM", required=False, allow_null=True, allow_blank=True)
+    version = serializers.CharField(help_text="Version of VNFM", required=False, allow_null=True, allow_blank=True)
+    description = serializers.CharField(help_text="Description of VNFM", required=False, allow_null=True, allow_blank=True)
     certificateUrl = serializers.CharField(help_text="Certificate Url of VNFM", required=True)
     url = serializers.CharField(help_text="url of VNFM", required=True)
     userName = serializers.CharField(help_text="User Name of VNFM", required=True)
     password = serializers.CharField(help_text="Password of VNFM", required=True)
-    createTime = serializers.CharField(help_text="Create Time of VNFM", required=True)
+    createTime = serializers.CharField(help_text="Create Time of VNFM", required=False, allow_null=True, allow_blank=True)
index 6110097..a959d7e 100644 (file)
@@ -44,6 +44,7 @@ from lcm.ns.vnfs.serializers import ScaleVnfReqSerializer
 from lcm.ns.vnfs.serializers import ScaleVnfRespSerializer
 from lcm.ns.vnfs.serializers import VerifyVnfReqSerializer
 from lcm.ns.vnfs.serializers import VerifyVnfRespSerializer
+from lcm.ns.vnfs.serializers import VnfmInfoRespSerializer
 
 logger = logging.getLogger(__name__)
 
@@ -249,10 +250,22 @@ class NfVerifyView(APIView):
 
 
 class NfVnfmInfoView(APIView):
+    @swagger_auto_schema(
+        request_body=None,
+        responses={
+            status.HTTP_200_OK: VnfmInfoRespSerializer(),
+            status.HTTP_500_INTERNAL_SERVER_ERROR: "Inner error"
+        }
+    )
     def get(self, request, vnfmid):
         logger.debug("NfVnfmInfoView--get::> %s" % vnfmid)
         try:
             vnfm_info = get_vnfm_by_id(vnfmid)
+
+            resp_serializer = VnfmInfoRespSerializer(data=vnfm_info)
+            if not resp_serializer.is_valid():
+                raise Exception(resp_serializer.errors)
+
         except NSLCMException as e:
             logger.error(e.message)
             return Response(data={'error': '%s' % e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)