62ed0dfd00d672c75fbebb48f14ad1be3cbb3966
[vfc/gvnfm/vnflcm.git] / lcm / lcm / nf / tests / test_delete_vnf.py
1 # Copyright 2017 ZTE Corporation.
2 #
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
6 #
7 #         http://www.apache.org/licenses/LICENSE-2.0
8 #
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.
14
15
16 from django.test import TestCase, Client
17 from rest_framework import status
18
19 from lcm.pub.database.models import NfInstModel, JobStatusModel, VmInstModel, NetworkInstModel, SubNetworkInstModel, \
20     PortInstModel, FlavourInstModel, StorageInstModel, NfvoRegInfoModel
21 from lcm.pub.utils.timeutil import now_time
22
23
24 class TestNFTerminate(TestCase):
25     def setUp(self):
26         self.client = Client()
27         StorageInstModel.objects.create(storageid="1",
28                                         vimid="1",
29                                         resourceid="11",
30                                         insttype=0,
31                                         instid="1111",
32                                         is_predefined=1)
33         NetworkInstModel.objects.create(networkid='1',
34                                         vimid='1',
35                                         resourceid='1',
36                                         name='pnet_network',
37                                         is_predefined=1,
38                                         tenant='admin',
39                                         insttype=0,
40                                         instid='1111')
41         SubNetworkInstModel.objects.create(subnetworkid='1',
42                                            vimid='1',
43                                            resourceid='1',
44                                            networkid='1',
45                                            is_predefined=1,
46                                            name='sub_pnet',
47                                            tenant='admin',
48                                            insttype=0,
49                                            instid='1111')
50         PortInstModel.objects.create(portid='1',
51                                      networkid='1',
52                                      subnetworkid='1',
53                                      vimid='1',
54                                      resourceid='1',
55                                      is_predefined=1,
56                                      name='aaa_pnet_cp',
57                                      tenant='admin',
58                                      insttype=0,
59                                      instid='1111')
60         FlavourInstModel.objects.create(flavourid="1",
61                                         vimid="1",
62                                         resourceid="11",
63                                         instid="1111",
64                                         is_predefined=1)
65         VmInstModel.objects.create(vmid="1",
66                                    vimid="1",
67                                    resourceid="11",
68                                    insttype=0,
69                                    instid="1111",
70                                    vmname="test_01",
71                                    is_predefined=1,
72                                    operationalstate=1)
73         NfvoRegInfoModel.objects.create(nfvoid='1111',
74                                         vnfminstid='11111',
75                                         apiurl='1')
76
77     def tearDown(self):
78         VmInstModel.objects.all().delete()
79         NetworkInstModel.objects.all().delete()
80         SubNetworkInstModel.objects.all().delete()
81         PortInstModel.objects.all().delete()
82
83     def assert_job_result(self, job_id, job_progress, job_detail):
84         jobs = JobStatusModel.objects.filter(jobid=job_id,
85                                              progress=job_progress,
86                                              descp=job_detail)
87         self.assertEqual(1, len(jobs))
88
89     def test_delete_vnf_identifier(self):
90         NfInstModel.objects.create(nfinstid='1111',
91                                    nf_name='2222',
92                                    package_id='todo',
93                                    version='',
94                                    vendor='',
95                                    netype='',
96                                    vnfd_model='',
97                                    status='NOT_INSTANTIATED',
98                                    nf_desc='',
99                                    vnfdid='',
100                                    vnfSoftwareVersion='',
101                                    vnfConfigurableProperties='todo',
102                                    localizationLanguage='EN_US',
103                                    create_time=now_time())
104         response = self.client.delete("/api/vnflcm/v1/vnf_instances/1111")
105         self.failUnlessEqual(status.HTTP_204_NO_CONTENT, response.status_code)
106         self.assertEqual(None, response.data)
107
108     def test_delete_vnf_identifier_when_vnf_not_exist(self):
109         response = self.client.delete("/api/vnflcm/v1/vnf_instances/1111")
110         self.failUnlessEqual(status.HTTP_204_NO_CONTENT, response.status_code)