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):
self.nf_inst_id = "01"
NfInstModel.objects.all().delete()
self.test_data_single_vnf = {
- "vnfInstanceId": "1",
+ "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": [
{
- "virtualStorageInstanceId": "s02",
+ "id": "s02",
"storageResource": {
"resourceId": "resource01",
- "vimId": "vim01"
+ "vimConnectionId": "vim01"
}
}
],
- "extVirtualLink": [],
+ "extVirtualLinkInfo": [],
"vnfcResourceInfo": [],
- "monitoringParameters": {},
- "vimInfo": [],
+ "monitoringParameters": [],
"flavourId": None,
- "virtualLinkResourceInfo": [],
+ "vnfVirtualLinkResourceInfo": [],
"scaleStatus": []
- },
- "vnfdVersion": None,
- "onboardedVnfPkgInfoId": None
+ }
}
self.test_data_multi_vnf = [
{
- "vnfInstanceId": "1",
+ "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": [
{
- "virtualStorageInstanceId": "s01",
+ "id": "s01",
"storageResource": {
"resourceId": "resource01",
- "vimId": "vim01"
+ "vimConnectionId": "vim01"
}
}
],
- "extVirtualLink": [],
+ "extVirtualLinkInfo": [],
"vnfcResourceInfo": [],
- "monitoringParameters": {},
- "vimInfo": [],
+ "monitoringParameters": [],
"flavourId": None,
- "virtualLinkResourceInfo": [],
+ "vnfVirtualLinkResourceInfo": [],
"scaleStatus": []
- },
- "vnfdVersion": None,
- "onboardedVnfPkgInfoId": None
+ }
},
{
- "vnfInstanceId": "2",
+ "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": [
{
- "virtualStorageInstanceId": "s02",
+ "id": "s02",
"storageResource": {
"resourceId": "resource02",
- "vimId": "vim02"
+ "vimConnectionId": "vim02"
}
}
],
- "extVirtualLink": [],
+ "extVirtualLinkInfo": [],
"vnfcResourceInfo": [],
- "monitoringParameters": {},
- "vimInfo": [],
+ "monitoringParameters": [],
"flavourId": None,
- "virtualLinkResourceInfo": [],
+ "vnfVirtualLinkResourceInfo": [],
"scaleStatus": []
- },
- "vnfdVersion": None,
- "onboardedVnfPkgInfoId": None
+ }
}
]
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({'error': 'VnfInst(x) does not exist.'}, 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({'error': 'NetworkInst(x) does not exist.'}, 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({'error': 'VmInst(x) does not exist.'}, 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(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)