vfclcm upgrade from python2 to python3
[vfc/gvnfm/vnflcm.git] / lcm / lcm / nf / tests / test_query_vnf.py
index e092223..5d133de 100644 (file)
@@ -15,7 +15,8 @@
 from django.test import TestCase, Client
 from rest_framework import status
 
-from lcm.pub.database.models import NfInstModel, StorageInstModel
+from lcm.pub.database.models import (NfInstModel, VLInstModel,
+                                     VNFCInstModel, VmInstModel, StorageInstModel)
 
 
 class ResourceTest(TestCase):
@@ -26,9 +27,16 @@ class ResourceTest(TestCase):
         self.test_data_single_vnf = {
             "id": "1",
             "vnfInstanceName": "VNF1",
-            "vnfProvider": None,
+            "vnfInstanceDescription": "VNF DESC",
+            "vnfdId": "1",
+            "vnfProvider": "ZTE",
+            "vnfProductName": "XGW",
+            "vnfSoftwareVersion": "V1",
+            "vnfdVersion": "V1",
+            "vnfPkgId": "2",
+            "instantiationState": "INSTANTIATED",
             "instantiatedVnfInfo": {
-                "vnfState": None,
+                "vnfState": "STARTED",
                 "extCpInfo": [],
                 "virtualStorageResourceInfo": [
                     {
@@ -41,21 +49,26 @@ class ResourceTest(TestCase):
                 ],
                 "extVirtualLinkInfo": [],
                 "vnfcResourceInfo": [],
-                "monitoringParameters": {},
+                "monitoringParameters": [],
                 "flavourId": None,
                 "vnfVirtualLinkResourceInfo": [],
                 "scaleStatus": []
-            },
-            "vnfdVersion": None,
-            "vnfPkgId": None
+            }
         }
         self.test_data_multi_vnf = [
             {
                 "id": "1",
                 "vnfInstanceName": "VNF1",
-                "vnfProvider": None,
+                "vnfInstanceDescription": "VNF DESC",
+                "vnfdId": "1",
+                "vnfProvider": "ZTE",
+                "vnfProductName": "XGW",
+                "vnfSoftwareVersion": "V1",
+                "vnfdVersion": "V1",
+                "vnfPkgId": "2",
+                "instantiationState": "INSTANTIATED",
                 "instantiatedVnfInfo": {
-                    "vnfState": None,
+                    "vnfState": "STARTED",
                     "extCpInfo": [],
                     "virtualStorageResourceInfo": [
                         {
@@ -68,20 +81,25 @@ class ResourceTest(TestCase):
                     ],
                     "extVirtualLinkInfo": [],
                     "vnfcResourceInfo": [],
-                    "monitoringParameters": {},
+                    "monitoringParameters": [],
                     "flavourId": None,
                     "vnfVirtualLinkResourceInfo": [],
                     "scaleStatus": []
-                },
-                "vnfdVersion": None,
-                "vnfPkgId": None
+                }
             },
             {
                 "id": "2",
                 "vnfInstanceName": "VNF2",
-                "vnfProvider": None,
+                "vnfInstanceDescription": "VNF DESC",
+                "vnfdId": "1",
+                "vnfProvider": "ZTE",
+                "vnfProductName": "XGW",
+                "vnfSoftwareVersion": "V1",
+                "vnfdVersion": "V1",
+                "vnfPkgId": "2",
+                "instantiationState": "INSTANTIATED",
                 "instantiatedVnfInfo": {
-                    "vnfState": None,
+                    "vnfState": "STARTED",
                     "extCpInfo": [],
                     "virtualStorageResourceInfo": [
                         {
@@ -94,13 +112,11 @@ class ResourceTest(TestCase):
                     ],
                     "extVirtualLinkInfo": [],
                     "vnfcResourceInfo": [],
-                    "monitoringParameters": {},
+                    "monitoringParameters": [],
                     "flavourId": None,
                     "vnfVirtualLinkResourceInfo": [],
                     "scaleStatus": []
-                },
-                "vnfdVersion": None,
-                "vnfPkgId": None
+                }
             }
         ]
 
@@ -109,25 +125,112 @@ class ResourceTest(TestCase):
 
     def test_get_vnf(self):
         vnf_inst_id = "1"
-        NfInstModel(nfinstid=vnf_inst_id, nf_name='VNF1').save()
+        NfInstModel(nfinstid=vnf_inst_id,
+                    nf_name='VNF1',
+                    nf_desc="VNF DESC",
+                    vnfdid="1",
+                    netype="XGW",
+                    vendor="ZTE",
+                    vnfSoftwareVersion="V1",
+                    version="V1",
+                    package_id="2",
+                    status='INSTANTIATED').save()
         StorageInstModel(storageid='s02',
                          vimid='vim01',
-                         resouceid='resource01',
+                         resourceid='resource01',
                          insttype=1,
                          instid=vnf_inst_id).save()
         response = self.client.get("/api/vnflcm/v1/vnf_instances/%s" % vnf_inst_id, format='json')
         self.assertEqual(response.status_code, status.HTTP_200_OK)
         self.assertEqual(self.test_data_single_vnf, response.data)
 
+    def test_get_vnf_not_exist(self):
+        response = self.client.get("/api/vnflcm/v1/vnf_instances/x", format='json')
+        self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
+        self.assertEqual({
+            'detail': 'VnfInst(x) does not exist.',
+            'status': 500
+        }, response.data)
+
+    def test_get_vnf_net_not_exist(self):
+        vnf_inst_id = "1"
+        NfInstModel(nfinstid=vnf_inst_id,
+                    nf_name='VNF1',
+                    vnfdid="1",
+                    netype="XGW",
+                    vendor="ZTE",
+                    vnfSoftwareVersion="V1",
+                    version="V1",
+                    package_id="2",
+                    status='INSTANTIATED').save()
+        VLInstModel(ownerid=vnf_inst_id,
+                    relatednetworkid='x',
+                    ownertype='0').save()
+        response = self.client.get("/api/vnflcm/v1/vnf_instances/%s" % vnf_inst_id, format='json')
+        self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
+        self.assertEqual({
+            'detail': 'NetworkInst(x) does not exist.',
+            'status': 500
+        }, response.data)
+
+    def test_get_vnf_vm_not_exist(self):
+        vnf_inst_id = "1"
+        NfInstModel(nfinstid=vnf_inst_id,
+                    nf_name='VNF1',
+                    vnfdid="1",
+                    netype="XGW",
+                    vendor="ZTE",
+                    vnfSoftwareVersion="V1",
+                    version="V1",
+                    package_id="2",
+                    status='INSTANTIATED').save()
+        VNFCInstModel(instid=vnf_inst_id,
+                      vmid='x').save()
+        response = self.client.get("/api/vnflcm/v1/vnf_instances/%s" % vnf_inst_id, format='json')
+        self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
+        self.assertEqual({
+            'detail': 'VmInst(x) does not exist.',
+            'status': 500
+        }, response.data)
+
+    def test_get_vnf_storage_not_exist(self):
+        vnf_inst_id = "1"
+        NfInstModel(nfinstid=vnf_inst_id,
+                    nf_name='VNF1',
+                    vnfdid="1",
+                    netype="XGW",
+                    vendor="ZTE",
+                    vnfSoftwareVersion="V1",
+                    version="V1",
+                    package_id="2",
+                    status='INSTANTIATED').save()
+        VNFCInstModel(instid=vnf_inst_id,
+                      vmid='x',).save()
+        VmInstModel(vmid='x', insttype='0').save()
+        response = self.client.get("/api/vnflcm/v1/vnf_instances/%s" % vnf_inst_id, format='json')
+        self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
+
     def test_get_vnfs(self):
         for i in range(1, 3):
             NfInstModel(nfinstid='%s' % i,
-                        nf_name='VNF%s' % i).save()
+                        nf_name='VNF%s' % i,
+                        nf_desc="VNF DESC",
+                        vnfdid="1",
+                        netype="XGW",
+                        vendor="ZTE",
+                        vnfSoftwareVersion="V1",
+                        version="V1",
+                        package_id="2",
+                        status='INSTANTIATED').save()
             StorageInstModel(storageid='s0%s' % i,
                              vimid='vim0%s' % i,
-                             resouceid='resource0%s' % i,
+                             resourceid='resource0%s' % i,
                              insttype=1,
                              instid='%s' % i).save()
         response = self.client.get("/api/vnflcm/v1/vnf_instances", format='json')
-        self.failUnlessEqual(status.HTTP_200_OK, response.status_code)
+        self.assertEqual(status.HTTP_200_OK, response.status_code)
         self.assertEqual(self.test_data_multi_vnf, response.data)
+
+    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_200_OK)