diff options
-rw-r--r-- | lcm/lcm/nf/tests/test_scale_vnf.py | 329 |
1 files changed, 165 insertions, 164 deletions
diff --git a/lcm/lcm/nf/tests/test_scale_vnf.py b/lcm/lcm/nf/tests/test_scale_vnf.py index 9f1ae9ce..e5583fe7 100644 --- a/lcm/lcm/nf/tests/test_scale_vnf.py +++ b/lcm/lcm/nf/tests/test_scale_vnf.py @@ -15,9 +15,10 @@ import json import mock from . import const from django.test import TestCase +from rest_framework import status from rest_framework.test import APIClient from lcm.pub.database.models import NfInstModel, JobStatusModel, StorageInstModel, NetworkInstModel, \ - SubNetworkInstModel, PortInstModel, FlavourInstModel, VmInstModel + SubNetworkInstModel, PortInstModel, FlavourInstModel, VmInstModel, VNFCInstModel from lcm.pub.utils import restcall from lcm.pub.vimapi import api from lcm.pub.utils.jobutil import JobUtil @@ -53,37 +54,37 @@ class TestNfScale(TestCase): ) self.assertEqual(1, len(jobs)) - # def test_scale_vnf_not_found(self): - # url = "/api/vnflcm/v1/vnf_instances/12/scale" - # response = self.client.post(url, - # data=self.req_data, - # format='json') - # self.assertEqual(status.HTTP_404_NOT_FOUND, response.status_code) - # - # def test_scale_vnf_conflict(self): - # url = "/api/vnflcm/v1/vnf_instances/12345/scale" - # response = self.client.post(url, - # data=self.req_data, - # format='json') - # self.assertEqual(status.HTTP_409_CONFLICT, response.status_code) - # - # def test_scale_vnf_badreq(self): - # NfInstModel(nfinstid='678', - # nf_name='VNF1', - # nf_desc="VNF DESC", - # vnfdid="1", - # netype="XGW", - # vendor="ZTE", - # vnfSoftwareVersion="V1", - # version="V1", - # package_id="2", - # status='INSTANTIATED').save() - # url = "/api/vnflcm/v1/vnf_instances/678/scale" - # response = self.client.post(url, - # data={}, - # format='json') - # NfInstModel.objects.filter(nfinstid='678').delete() - # self.assertEqual(status.HTTP_400_BAD_REQUEST, response.status_code) + def test_scale_vnf_not_found(self): + url = "/api/vnflcm/v1/vnf_instances/12/scale" + response = self.client.post(url, + data=self.req_data, + format='json') + self.assertEqual(status.HTTP_404_NOT_FOUND, response.status_code) + + def test_scale_vnf_conflict(self): + url = "/api/vnflcm/v1/vnf_instances/12345/scale" + response = self.client.post(url, + data=self.req_data, + format='json') + self.assertEqual(status.HTTP_409_CONFLICT, response.status_code) + + def test_scale_vnf_badreq(self): + NfInstModel(nfinstid='678', + nf_name='VNF1', + nf_desc="VNF DESC", + vnfdid="1", + netype="XGW", + vendor="ZTE", + vnfSoftwareVersion="V1", + version="V1", + package_id="2", + status='INSTANTIATED').save() + url = "/api/vnflcm/v1/vnf_instances/678/scale" + response = self.client.post(url, + data={}, + format='json') + NfInstModel.objects.filter(nfinstid='678').delete() + self.assertEqual(status.HTTP_400_BAD_REQUEST, response.status_code) @mock.patch.object(restcall, 'call_req') @mock.patch.object(api, 'call') @@ -200,135 +201,135 @@ class TestNfScale(TestCase): 'Scale Vnf success.' ) - # @mock.patch.object(restcall, 'call_req') - # @mock.patch.object(api, 'call') - # def test_scale_in_vnf_success(self, mock_call, mock_call_req): - # self.nf_inst_id = '6789' - # res_cache = {"volume": {}, "flavor": {}, "port": {}} - # # res_cache["volume"]["volume_storage1"] = "vol1" - # # res_cache["flavor"]["vdu1Id"] = "flavor1" - # res_cache["port"]["ext_cp"] = "port1" - # NfInstModel(nfinstid=self.nf_inst_id, - # nf_name='VNF1', - # nf_desc="VNF DESC", - # vnfdid="1", - # netype="XGW", - # vendor="ZTE", - # vnfSoftwareVersion="V1", - # version="V1", - # package_id="2", - # status='INSTANTIATED', - # vnfd_model=json.dumps(const.vnfd_for_scale), - # vimInfo=json.dumps({}), - # resInfo=json.dumps(res_cache)).save() - # StorageInstModel.objects.create( - # storageid="1", - # vimid="1", - # resourceid="11", - # insttype=0, - # instid=self.nf_inst_id, - # is_predefined=1 - # ) - # NetworkInstModel.objects.create( - # networkid='1', - # vimid='1', - # resourceid='1', - # name='pnet_network', - # is_predefined=1, - # tenant='admin', - # insttype=0, - # instid=self.nf_inst_id - # ) - # SubNetworkInstModel.objects.create( - # subnetworkid='1', - # vimid='1', - # resourceid='1', - # networkid='1', - # is_predefined=1, - # name='sub_pnet', - # tenant='admin', - # insttype=0, - # instid=self.nf_inst_id - # ) - # PortInstModel.objects.create( - # portid='1', - # networkid='1', - # subnetworkid='1', - # vimid='1', - # resourceid='1', - # is_predefined=1, - # name='ext_cp', - # tenant='admin', - # insttype=0, - # instid=self.nf_inst_id - # ) - # FlavourInstModel.objects.create( - # flavourid="1", - # vimid="1", - # resourceid="11", - # instid=self.nf_inst_id, - # is_predefined=1, - # name="Flavor_sunshine" - # ) - # VmInstModel.objects.create( - # vmid="1", - # vimid="1", - # resourceid="11", - # insttype=0, - # instid=self.nf_inst_id, - # vmname="test_01", - # is_predefined=1, - # operationalstate=1 - # ) - # VmInstModel.objects.create( - # vmid="2", - # vimid="1", - # resourceid="22", - # insttype=0, - # instid=self.nf_inst_id, - # vmname="test_02", - # is_predefined=1, - # operationalstate=1 - # ) - # VNFCInstModel.objects.create( - # vnfcinstanceid="1", - # instid=self.nf_inst_id, - # vmid="1" - # ) - # VNFCInstModel.objects.create( - # vnfcinstanceid="2", - # instid=self.nf_inst_id, - # vmid="2" - # ) - # r1_apply_grant_result = [ - # 0, - # json.JSONEncoder().encode(const.instantiate_grant_result), - # '200' - # ] - # mock_call_req.side_effect = [ - # r1_apply_grant_result, - # ] - # mock_call.side_effect = [ - # const.c1_data_get_tenant_id, - # const.c7_data_create_flavor, - # const.c8_data_list_image, - # const.c9_data_create_vm, - # const.c10_data_get_vm - # ] - # - # self.job_id = JobUtil.create_job('NF', 'SCALE', self.nf_inst_id) - # JobUtil.add_job_status(self.job_id, 0, "VNF_SCALE_READY", ) - # - # ScaleVnf( - # {"type": "SCALE_IN", - # "aspectId": "sunshine_aspect"}, - # nf_inst_id=self.nf_inst_id, - # job_id=self.job_id - # ).run() - # - # NfInstModel.objects.filter(nfinstid=self.nf_inst_id).delete() - # self.assert_job_result( - # self.job_id, - # 100, - # 'Scale Vnf success.' - # ) + @mock.patch.object(restcall, 'call_req') + @mock.patch.object(api, 'call') + def test_scale_in_vnf_success(self, mock_call, mock_call_req): + self.nf_inst_id = '6789' + res_cache = {"volume": {}, "flavor": {}, "port": {}} + # res_cache["volume"]["volume_storage1"] = "vol1" + # res_cache["flavor"]["vdu1Id"] = "flavor1" + res_cache["port"]["ext_cp"] = "port1" + NfInstModel(nfinstid=self.nf_inst_id, + nf_name='VNF1', + nf_desc="VNF DESC", + vnfdid="1", + netype="XGW", + vendor="ZTE", + vnfSoftwareVersion="V1", + version="V1", + package_id="2", + status='INSTANTIATED', + vnfd_model=json.dumps(const.vnfd_for_scale), + vimInfo=json.dumps({}), + resInfo=json.dumps(res_cache)).save() + StorageInstModel.objects.create( + storageid="1", + vimid="1", + resourceid="11", + insttype=0, + instid=self.nf_inst_id, + is_predefined=1 + ) + NetworkInstModel.objects.create( + networkid='1', + vimid='1', + resourceid='1', + name='pnet_network', + is_predefined=1, + tenant='admin', + insttype=0, + instid=self.nf_inst_id + ) + SubNetworkInstModel.objects.create( + subnetworkid='1', + vimid='1', + resourceid='1', + networkid='1', + is_predefined=1, + name='sub_pnet', + tenant='admin', + insttype=0, + instid=self.nf_inst_id + ) + PortInstModel.objects.create( + portid='1', + networkid='1', + subnetworkid='1', + vimid='1', + resourceid='1', + is_predefined=1, + name='ext_cp', + tenant='admin', + insttype=0, + instid=self.nf_inst_id + ) + FlavourInstModel.objects.create( + flavourid="1", + vimid="1", + resourceid="11", + instid=self.nf_inst_id, + is_predefined=1, + name="Flavor_sunshine" + ) + VmInstModel.objects.create( + vmid="1", + vimid="1", + resourceid="11", + insttype=0, + instid=self.nf_inst_id, + vmname="test_01", + is_predefined=1, + operationalstate=1 + ) + VmInstModel.objects.create( + vmid="2", + vimid="1", + resourceid="22", + insttype=0, + instid=self.nf_inst_id, + vmname="test_02", + is_predefined=1, + operationalstate=1 + ) + VNFCInstModel.objects.create( + vnfcinstanceid="1", + instid=self.nf_inst_id, + vmid="1" + ) + VNFCInstModel.objects.create( + vnfcinstanceid="2", + instid=self.nf_inst_id, + vmid="2" + ) + r1_apply_grant_result = [ + 0, + json.JSONEncoder().encode(const.instantiate_grant_result), + '200' + ] + mock_call_req.side_effect = [ + r1_apply_grant_result, + ] + mock_call.side_effect = [ + const.c1_data_get_tenant_id, + const.c7_data_create_flavor, + const.c8_data_list_image, + const.c9_data_create_vm, + const.c10_data_get_vm + ] + + self.job_id = JobUtil.create_job('NF', 'SCALE', self.nf_inst_id) + JobUtil.add_job_status(self.job_id, 0, "VNF_SCALE_READY", ) + + ScaleVnf( + {"type": "SCALE_IN", + "aspectId": "sunshine_aspect"}, + nf_inst_id=self.nf_inst_id, + job_id=self.job_id + ).run() + + NfInstModel.objects.filter(nfinstid=self.nf_inst_id).delete() + self.assert_job_result( + self.job_id, + 100, + 'Scale Vnf success.' + ) |