From: ying.yunlong Date: Fri, 24 Feb 2017 07:51:51 +0000 (+0800) Subject: Modify code and testcase of delete vnf X-Git-Tag: release/mercury~39 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=vfc%2Fgvnfm%2Fvnflcm.git;a=commitdiff_plain;h=cf4883f5f2b1588f802d2c25231dd5cc27821b5b Modify code and testcase of delete vnf Change-Id: Ib771a00c36a8810ff2d0616d98207da3172a8c9f Issue-Id: GVNFM-21 Signed-off-by: ying.yunlong --- diff --git a/lcm/lcm/nf/vnfs/tests/test_vnf_cancel.py b/lcm/lcm/nf/vnfs/tests/test_vnf_cancel.py index 5a6854c1..cdb4094c 100644 --- a/lcm/lcm/nf/vnfs/tests/test_vnf_cancel.py +++ b/lcm/lcm/nf/vnfs/tests/test_vnf_cancel.py @@ -11,73 +11,69 @@ # # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # # See the License for the specific language governing permissions and # # limitations under the License. -# import uuid -# -# import mock -# from django.test import TestCase, Client -# from rest_framework import status -# -# from lcm.nf.vnfs.vnf_cancel.term_vnf import TermVnf -# from lcm.pub.database.models import NfInstModel, JobStatusModel, VmInstModel, NetworkInstModel, SubNetworkInstModel, \ -# PortInstModel, NfvoRegInfoModel -# from lcm.pub.utils.jobutil import JobUtil -# from lcm.pub.utils.timeutil import now_time -# -# -# class TestNFTerminate(TestCase): -# def setUp(self): -# self.client = Client() -# VmInstModel.objects.create(vmid="1", vimid="1", resouceid="11", insttype=0, instid="1111", vmname="test_01", -# is_predefined=1, operationalstate=1) -# VmInstModel.objects.create(vmid="2", vimid="2", resouceid="22", insttype=0, instid="1111", -# is_predefined=1, vmname="test_02", operationalstate=1) -# NetworkInstModel.objects.create(networkid='1', vimid='1', resouceid='1', name='pnet_network', -# is_predefined=1, tenant='admin', insttype=0, instid='1111') -# SubNetworkInstModel.objects.create(subnetworkid='1', vimid='1', resouceid='1', networkid='1', -# is_predefined=1, name='sub_pnet', tenant='admin', insttype=0, instid='1111') -# PortInstModel.objects.create(portid='1', networkid='1', subnetworkid='1', vimid='1', resouceid='1', -# is_predefined=1, name='aaa_pnet_cp', tenant='admin', insttype=0, instid='1111') -# -# def tearDown(self): -# VmInstModel.objects.all().delete() -# NetworkInstModel.objects.all().delete() -# SubNetworkInstModel.objects.all().delete() -# PortInstModel.objects.all().delete() -# -# def assert_job_result(self, job_id, job_progress, job_detail): -# jobs = JobStatusModel.objects.filter( -# jobid=job_id, -# progress=job_progress, -# descp=job_detail) -# self.assertEqual(1, len(jobs)) -# -# def test_delete_vnf_identifier(self): -# NfInstModel.objects.create(nfinstid='1111', mnfinstid='1111', nf_name='2222', -# package_id='todo', vnfm_inst_id='todo', version='', vendor='', -# producttype='', netype='', vnfd_model='', -# instantiationState='VNF_INSTANTIATED', nf_desc='', vnfdid='', -# vnfSoftwareVersion='', vnfConfigurableProperties='todo', -# localizationLanguage='EN_US', create_time=now_time()) -# response = self.client.delete("/openoapi/vnflcm/v1/vnf_instances/1111") -# self.failUnlessEqual(status.HTTP_204_NO_CONTENT, response.status_code) -# self.assertEqual(None, response.data) -# -# def test_delete_vnf_identifier_when_vnf_not_exist(self): -# response = self.client.delete("/openoapi/vnflcm/v1/vnf_instances/1111") -# self.failUnlessEqual(status.HTTP_500_INTERNAL_SERVER_ERROR, response.status_code) -# self.assertEqual("VnfInst(1111) does not exist", response.data["error"]) -# -# def test_delete_vnf_identifier_when_instantiationState_check_failed(self): -# NfInstModel.objects.create(nfinstid='1111', mnfinstid='1111', nf_name='2222', -# package_id='todo', vnfm_inst_id='todo', version='', vendor='', -# producttype='', netype='', vnfd_model='', -# instantiationState='NOT_INSTANTIATED', nf_desc='', vnfdid='', -# vnfSoftwareVersion='', vnfConfigurableProperties='todo', -# localizationLanguage='EN_US', create_time=now_time()) -# response = self.client.delete("/openoapi/vnflcm/v1/vnf_instances/1111") -# self.failUnlessEqual(status.HTTP_500_INTERNAL_SERVER_ERROR, response.status_code) -# self.assertEqual("No instantiated vnf", response.data["error"]) -# +import uuid + +import mock +from django.test import TestCase, Client +from rest_framework import status + +from lcm.nf.vnfs.vnf_cancel.term_vnf import TermVnf +from lcm.pub.database.models import NfInstModel, JobStatusModel, VmInstModel, NetworkInstModel, SubNetworkInstModel, \ + PortInstModel, NfvoRegInfoModel +from lcm.pub.utils.jobutil import JobUtil +from lcm.pub.utils.timeutil import now_time + + +class TestNFTerminate(TestCase): + def setUp(self): + self.client = Client() + VmInstModel.objects.create(vmid="1", vimid="1", resouceid="11", insttype=0, instid="1111", vmname="test_01", + is_predefined=1, operationalstate=1) + VmInstModel.objects.create(vmid="2", vimid="2", resouceid="22", insttype=0, instid="1111", + is_predefined=1, vmname="test_02", operationalstate=1) + NetworkInstModel.objects.create(networkid='1', vimid='1', resouceid='1', name='pnet_network', + is_predefined=1, tenant='admin', insttype=0, instid='1111') + SubNetworkInstModel.objects.create(subnetworkid='1', vimid='1', resouceid='1', networkid='1', + is_predefined=1, name='sub_pnet', tenant='admin', insttype=0, instid='1111') + PortInstModel.objects.create(portid='1', networkid='1', subnetworkid='1', vimid='1', resouceid='1', + is_predefined=1, name='aaa_pnet_cp', tenant='admin', insttype=0, instid='1111') + + def tearDown(self): + VmInstModel.objects.all().delete() + NetworkInstModel.objects.all().delete() + SubNetworkInstModel.objects.all().delete() + PortInstModel.objects.all().delete() + + def assert_job_result(self, job_id, job_progress, job_detail): + jobs = JobStatusModel.objects.filter( + jobid=job_id, + progress=job_progress, + descp=job_detail) + self.assertEqual(1, len(jobs)) + + def test_delete_vnf_identifier(self): + NfInstModel.objects.create(nfinstid='1111', nf_name='2222', package_id='todo', version='', vendor='', + netype='', vnfd_model='', status='VNF_INSTANTIATED', nf_desc='', vnfdid='', + vnfSoftwareVersion='', vnfConfigurableProperties='todo', + localizationLanguage='EN_US', create_time=now_time()) + response = self.client.delete("/openoapi/vnflcm/v1/vnf_instances/1111") + self.failUnlessEqual(status.HTTP_204_NO_CONTENT, response.status_code) + self.assertEqual(None, response.data) + + def test_delete_vnf_identifier_when_vnf_not_exist(self): + response = self.client.delete("/openoapi/vnflcm/v1/vnf_instances/1111") + self.failUnlessEqual(status.HTTP_500_INTERNAL_SERVER_ERROR, response.status_code) + self.assertEqual("VnfInst(1111) does not exist", response.data["error"]) + + def test_delete_vnf_identifier_when_status_check_failed(self): + NfInstModel.objects.create(nfinstid='1111', nf_name='2222', package_id='todo', version='', vendor='', + netype='', vnfd_model='', status='NOT_INSTANTIATED', nf_desc='', vnfdid='', + vnfSoftwareVersion='', vnfConfigurableProperties='todo', + localizationLanguage='EN_US', create_time=now_time()) + response = self.client.delete("/openoapi/vnflcm/v1/vnf_instances/1111") + self.failUnlessEqual(status.HTTP_500_INTERNAL_SERVER_ERROR, response.status_code) + self.assertEqual("Don't allow to delete vnf(status:[NOT_INSTANTIATED])", response.data["error"]) + # @mock.patch.object(TermVnf, 'run') # def test_terminate_vnf(self, mock_run): # mock_run.re.return_value = None diff --git a/lcm/lcm/nf/vnfs/vnf_cancel/delete_vnf_identifier.py b/lcm/lcm/nf/vnfs/vnf_cancel/delete_vnf_identifier.py index b7b352ff..c5a92c08 100644 --- a/lcm/lcm/nf/vnfs/vnf_cancel/delete_vnf_identifier.py +++ b/lcm/lcm/nf/vnfs/vnf_cancel/delete_vnf_identifier.py @@ -29,6 +29,6 @@ class DeleteVnf: if not vnf_insts.exists(): raise NFLCMException('VnfInst(%s) does not exist' % self.nf_inst_id) sel_vnf = vnf_insts[0] - if sel_vnf.instantiationState != 'VNF_INSTANTIATED': - raise NFLCMException("No instantiated vnf") + if sel_vnf.status != 'VNF_INSTANTIATED': + raise NFLCMException("Don't allow to delete vnf(status:[%s])" % sel_vnf.status) NfInstModel.objects.filter(nfinstid=self.nf_inst_id).delete()