fix VNF query result none exception 55/73455/2
authormaopengzhang <zhang.maopeng1@zte.com.cn>
Sat, 24 Nov 2018 07:22:42 +0000 (15:22 +0800)
committermaopengzhang <zhang.maopeng1@zte.com.cn>
Sat, 24 Nov 2018 15:43:58 +0000 (23:43 +0800)
fix VNF query result none exception

Change-Id: Id1266a88f400d671deea4da54908ae9a9f908d0d
Issue-ID: VFC-989
Signed-off-by: maopengzhang <zhang.maopeng1@zte.com.cn>
lcm/lcm/nf/biz/query_vnf.py
lcm/lcm/nf/tests/test_query_vnf.py
lcm/lcm/nf/views/curd_vnf_views.py

index c735e0b..1dd7c2d 100644 (file)
@@ -35,11 +35,12 @@ class QueryVnf:
 
     def query_multi_vnf(self):
         vnf_insts = NfInstModel.objects.all()
-        if not vnf_insts:
-            raise NFLCMException('VnfInsts does not exist.')
+        if not vnf_insts:
+        #    raise NFLCMException('VnfInsts does not exist.')
         resp_data = []
-        for vnf_inst in vnf_insts:
-            resp_data.append(self.fill_resp_data(vnf_inst))
+        if vnf_insts:
+            for vnf_inst in vnf_insts:
+                resp_data.append(self.fill_resp_data(vnf_inst))
         return resp_data
 
     def fill_resp_data(self, vnf):
index 1fbe9c7..2582423 100644 (file)
@@ -169,5 +169,4 @@ class ResourceTest(TestCase):
 
     def test_get_vnfs_not_exist(self):
         response = self.client.get("/api/vnflcm/v1/vnf_instances", format='json')
-        self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
-        self.assertEqual({'error': 'VnfInsts does not exist.'}, response.data)
+        self.assertEqual(response.status_code, status.HTTP_200_OK)
index ae8a211..25a98af 100644 (file)
@@ -42,7 +42,8 @@ class CreateVnfAndQueryVnfs(APIView):
         logger.debug("QueryMultiVnf--get::> %s" % request.data)
         try:
             resp_data = QueryVnf(request.data).query_multi_vnf()
-
+            if len(resp_data) == 0:
+                return Response(data=[], status=status.HTTP_200_OK)
             vnf_instances_serializer = VnfInstancesSerializer(data=resp_data)
             if not vnf_instances_serializer.is_valid():
                 raise NFLCMException(vnf_instances_serializer.errors)