1 # Copyright 2017 ZTE Corporation.
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 from django.test import TestCase, Client
16 from rest_framework import status
18 from res.pub.database.models import NfInstModel, StorageInstModel, VmInstModel, FlavourInstModel, NetworkInstModel, \
19 SubNetworkInstModel, CPInstModel
22 class ResourceTest(TestCase):
24 self.client = Client()
25 self.nf_inst_id = "01"
26 NfInstModel.objects.all().delete()
29 "vnfInstanceName": "VNF1",
30 "vnfInstanceDescription": None,
31 "onboardedVnfPkgInfoId": None,
34 "vnfSoftwareVersion": None,
36 "vnfProductName": None,
37 "vnfConfigurableProperties": {None},
38 "instantiationState": None,
39 "instantiatedVnfInfo": {
45 "monitoringParameters": {},
46 "localizationLanguage": None,
48 "vnfcResourceInfo": [],
49 "virtualLinkResourceInfo": [],
50 "virtualStorageResourceInfo": [
52 "virtualStorageInstanceId": "s02",
53 "virtualStorageDescId": "desc01",
56 "resourceId": "resource01"
73 "operationalstate": None,
76 "security_groups": "sec0",
77 "flavor_id": "flavor0",
78 "availability_zone": "ava0",
79 "server_group": "server0",
80 "volume_array": "volume0",
101 self.networks_data = {
111 self.subnets_data = {
113 "subnetworkid": "sub0",
125 "cpinstanceid": "cp0",
127 "cpinstancename": "cpinstname0",
128 "vlinstanceid": "vlinst0",
135 self.volumes_data = {
142 "storagetype": "stype0",
150 def test_get_vnf(self):
152 NfInstModel(nfinstid=vnf_inst_id, nf_name="VNF1").save()
153 StorageInstModel(storageid="s02", vimid="vim01", resouceid="resource01", insttype=1,
154 instid=vnf_inst_id, storagetype="desc01", size="ten").save()
155 response = self.client.get("/api/vnfres/v1/vnfs/%s" % vnf_inst_id)
156 self.failUnlessEqual(status.HTTP_200_OK, response.status_code)
157 self.assertEqual(self.test_data, response.data)
159 def test_get_vnfs(self):
161 NfInstModel(nfinstid="%s" % i, nf_name="VNF%s" % i).save()
162 StorageInstModel(storageid="s0%s" % i, vimid="vim0%s" % i, resouceid="resource0%s" % i,
163 insttype=1, instid="%s" % i, storagetype="desc%s" % i, size="ten").save()
164 response = self.client.get("/api/vnfres/v1/vnfs")
165 self.failUnlessEqual(status.HTTP_200_OK, response.status_code)
167 def test_get_vms(self):
168 NfInstModel(nfinstid="%s" % "01", nf_name="VFS%s" % "01").save()
169 nfInst = NfInstModel.objects.get(pk="01")
171 VmInstModel(vmid="vm%s" % i, vimid="vim%s" % i, resouceid="res%s" % i, instid="%s" % nfInst.nfinstid,
172 insttype=0, vmname="v1", nic_array="nic%s" % i, metadata="meta%s" % i,
173 volume_array="volume%s" % i, server_group="server%s" % i, availability_zone="ava%s" % i,
174 flavor_id="flavor%s" % i, security_groups="sec%s" % i).save()
175 response = self.client.get("/api/vnfres/v1/%s/vms" % nfInst.nfinstid)
176 self.failUnlessEqual(status.HTTP_200_OK, response.status_code)
177 self.assertEqual(self.vms_data, response.data)
179 def test_get_flavors(self):
180 NfInstModel(nfinstid="%s" % "01", nf_name="VFS%s" % "01").save()
181 nfInst = NfInstModel.objects.get(pk="01")
183 FlavourInstModel(flavourid="fla%s" % i, name="fname%s" % i, vcpu="%d" % i, instid="%s" % nfInst.nfinstid,
184 memory="%d" % i, extraspecs="ext%s" % i, vimid="vim%s" % i, resouceid="res%s" % i).save()
185 response = self.client.get("/api/vnfres/v1/%s/flavors" % nfInst.nfinstid)
186 self.failUnlessEqual(status.HTTP_200_OK, response.status_code)
187 self.assertEqual(self.flavors_data, response.data)
189 def test_get_networks(self):
191 NetworkInstModel(networkid="net%s" % i, name="net_name%s" % i, vimid="vim%s" % i,
192 instid="%s" % self.nf_inst_id, resouceid="res%s" % i, insttype="%d" % i).save()
193 response = self.client.get("/api/vnfres/v1/%s/networks" % self.nf_inst_id)
194 self.failUnlessEqual(status.HTTP_200_OK, response.status_code)
195 self.assertEqual(self.networks_data, response.data)
197 def test_get_subnets(self):
199 SubNetworkInstModel(subnetworkid="sub%s" % i, vimid="vim%s" % i, resouceid="res%s" % i,
200 networkid="net%s" % i, insttype="%d" % i, instid="%s" % self.nf_inst_id,
201 name="sub_name%s" % i, cidr="cidr%s" % i).save()
202 response = self.client.get("/api/vnfres/v1/%s/subnets" % self.nf_inst_id)
203 self.failUnlessEqual(status.HTTP_200_OK, response.status_code)
204 self.assertEqual(self.subnets_data, response.data)
206 def test_get_cps(self):
208 CPInstModel(cpinstanceid="cp%s" % i, cpdid="cpd%s" % i, cpinstancename="cpinstname%s" % i,
209 vlinstanceid="vlinst%s" % i, ownertype="%d" % i, ownerid="%s" % self.nf_inst_id,
210 relatedtype="%d" % i).save()
211 response = self.client.get("/api/vnfres/v1/%s/cps" % self.nf_inst_id)
212 self.failUnlessEqual(status.HTTP_200_OK, response.status_code)
213 self.assertEqual(self.cps_data, response.data)
215 def test_get_volumes(self):
217 StorageInstModel(storageid="st%s" % i, vimid="vim%s" % i, resouceid="res%s" % i, insttype="%d" % i,
218 instid="%s" % self.nf_inst_id, storagetype="stype%s" % i, size="%s" % i).save()
219 response = self.client.get("/api/vnfres/v1/%s/volumes" % self.nf_inst_id)
220 self.assertEqual(self.volumes_data, response.data)
221 self.failUnlessEqual(status.HTTP_200_OK, response.status_code)