From 90c1fa5d05f8aefae0fd0f114b479216ba6d8490 Mon Sep 17 00:00:00 2001 From: "ying.yunlong" Date: Tue, 14 Feb 2017 11:31:37 +0800 Subject: [PATCH] change lcm notify code and test case Change-Id: Id4640d0dd7a22542fb1c259b4976ed149d875c7a Issue-Id: GVNFM-12 Signed-off-by: ying.yunlong --- lcm/lcm/nf/vnfs/tests/test_vnf_create.py | 79 ++++++++++++++++---------------- lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py | 28 +++++------ 2 files changed, 55 insertions(+), 52 deletions(-) diff --git a/lcm/lcm/nf/vnfs/tests/test_vnf_create.py b/lcm/lcm/nf/vnfs/tests/test_vnf_create.py index cb524c59..2fe03ba5 100644 --- a/lcm/lcm/nf/vnfs/tests/test_vnf_create.py +++ b/lcm/lcm/nf/vnfs/tests/test_vnf_create.py @@ -20,7 +20,8 @@ from rest_framework import status from lcm.nf.vnfs.vnf_create.create_vnf_identifier import CreateVnf from lcm.nf.vnfs.vnf_create.inst_vnf import InstVnf -from lcm.pub.database.models import NfInstModel, JobStatusModel, NfvoRegInfoModel +from lcm.pub.database.models import NfInstModel, JobStatusModel, NfvoRegInfoModel, VmInstModel, NetworkInstModel, \ + SubNetworkInstModel, PortInstModel from lcm.pub.utils import restcall from lcm.pub.utils.jobutil import JobUtil @@ -28,23 +29,23 @@ from lcm.pub.utils.jobutil import JobUtil class TestNsInstantiate(TestCase): def setUp(self): self.client = Client() - # VmInstModel.objects.create(vmid="1", vimid="1", resouceid="11", insttype=0, instid="1", vmname="test_01", - # operationalstate=1) - # VmInstModel.objects.create(vmid="2", vimid="2", resouceid="22", insttype=0, instid="2", vmname="test_02", - # operationalstate=1) - # NetworkInstModel.objects.create(networkid='1', vimid='1', resouceid='1', name='pnet_network', - # tenant='admin', insttype=0, instid='1') - # SubNetworkInstModel.objects.create(subnetworkid='1', vimid='1', resouceid='1', networkid='1', - # name='sub_pnet',tenant='admin', insttype=0, instid='1') - # PortInstModel.objects.create(portid='1', networkid='1', subnetworkid='1', vimid='1', resouceid='1', - # name='aaa_pnet_cp', tenant='admin', insttype=0, instid='1') + VmInstModel.objects.create(vmid="1", vimid="1", resouceid="11", insttype=0, instid="1", vmname="test_01", + operationalstate=1) + VmInstModel.objects.create(vmid="2", vimid="2", resouceid="22", insttype=0, instid="2", vmname="test_02", + operationalstate=1) + NetworkInstModel.objects.create(networkid='1', vimid='1', resouceid='1', name='pnet_network', + tenant='admin', insttype=0, instid='1') + SubNetworkInstModel.objects.create(subnetworkid='1', vimid='1', resouceid='1', networkid='1', + name='sub_pnet',tenant='admin', insttype=0, instid='1') + PortInstModel.objects.create(portid='1', networkid='1', subnetworkid='1', vimid='1', resouceid='1', + name='aaa_pnet_cp', tenant='admin', insttype=0, instid='1') def tearDown(self): pass - # VmInstModel.objects.all().delete() - # NetworkInstModel.objects.all().delete() - # SubNetworkInstModel.objects.all().delete() - # PortInstModel.objects.all().delete() + 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( @@ -135,31 +136,9 @@ class TestNsInstantiate(TestCase): InstVnf(data, nf_inst_id=self.nf_inst_id, job_id=self.job_id).run() self.assert_job_result(self.job_id, 255, "Nf instancing apply grant exception") - @mock.patch.object(restcall, 'call_req') - # @mock.patch.object(adaptor, 'create_vim_res') - def test_instantiate_vnf_when_create_res_failed(self, mock_call_req): - NfvoRegInfoModel.objects.create(nfvoid='nfvo111', vnfminstid='vnfm111', apiurl='http://10.74.44.11', - nfvouser='root', nfvopassword='root123') - r1 = [0, json.JSONEncoder().encode(vnfd_model_dict), '200'] - r2 = [0, json.JSONEncoder().encode(vnfd_model_dict), '200'] - r3 = [0, json.JSONEncoder().encode('Nf instancing apply grant'), '200'] - # r4 = [0, json.JSONEncoder().encode('Nf instancing apply resource'), '200'] - mock_call_req.side_effect = [r1, r2, r3] - # mock_create_vim_res.re.return_value = None - create_data = { - "vnfdId": "111", - "vnfInstanceName": "vFW_01", - "vnfInstanceDescription": " vFW in Nanjing TIC Edge"} - self.nf_inst_id = CreateVnf(create_data).do_biz() - self.job_id = JobUtil.create_job('NF', 'CREATE', self.nf_inst_id) - JobUtil.add_job_status(self.job_id, 0, "INST_VNF_READY") - data = inst_req_data - InstVnf(data, nf_inst_id=self.nf_inst_id, job_id=self.job_id).run() - self.assert_job_result(self.job_id, 255, "Create resource failed") - # @mock.patch.object(restcall, 'call_req') # # @mock.patch.object(adaptor, 'create_vim_res') - # def test_instantiate_vnf_success(self, mock_call_req): + # def test_instantiate_vnf_when_create_res_failed(self, mock_call_req): # NfvoRegInfoModel.objects.create(nfvoid='nfvo111', vnfminstid='vnfm111', apiurl='http://10.74.44.11', # nfvouser='root', nfvopassword='root123') # r1 = [0, json.JSONEncoder().encode(vnfd_model_dict), '200'] @@ -177,7 +156,29 @@ class TestNsInstantiate(TestCase): # JobUtil.add_job_status(self.job_id, 0, "INST_VNF_READY") # data = inst_req_data # InstVnf(data, nf_inst_id=self.nf_inst_id, job_id=self.job_id).run() - # self.assert_job_result(self.job_id, 100, "Instantiate Vnf success.") + # self.assert_job_result(self.job_id, 255, "Create resource failed") + + @mock.patch.object(restcall, 'call_req') + # @mock.patch.object(adaptor, 'create_vim_res') + def test_instantiate_vnf_success(self, mock_call_req): + NfvoRegInfoModel.objects.create(nfvoid='nfvo111', vnfminstid='vnfm111', apiurl='http://10.74.44.11', + nfvouser='root', nfvopassword='root123') + r1 = [0, json.JSONEncoder().encode(vnfd_model_dict), '200'] + r2 = [0, json.JSONEncoder().encode(vnfd_model_dict), '200'] + r3 = [0, json.JSONEncoder().encode('Nf instancing apply grant'), '200'] + r4 = [0, json.JSONEncoder().encode('None'), '200'] + mock_call_req.side_effect = [r1, r2, r3, r4] + # mock_create_vim_res.re.return_value = None + create_data = { + "vnfdId": "111", + "vnfInstanceName": "vFW_01", + "vnfInstanceDescription": " vFW in Nanjing TIC Edge"} + self.nf_inst_id = CreateVnf(create_data).do_biz() + self.job_id = JobUtil.create_job('NF', 'CREATE', self.nf_inst_id) + JobUtil.add_job_status(self.job_id, 0, "INST_VNF_READY") + data = inst_req_data + InstVnf(data, nf_inst_id=self.nf_inst_id, job_id=self.job_id).run() + self.assert_job_result(self.job_id, 100, "Instantiate Vnf success.") inst_req_data = { "flavourId": "flavour_1", diff --git a/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py b/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py index a23ced9a..2384ee2b 100644 --- a/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py +++ b/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py @@ -87,7 +87,7 @@ class InstVnf(Thread): self.create_res() # self.check_res_status() # self.wait_inst_finish(args) - # self.lcm_notify() + self.lcm_notify() JobUtil.add_job_status(self.job_id, 100, "Instantiate Vnf success.") is_exist = JobStatusModel.objects.filter(jobid=self.job_id).exists() logger.debug("check_ns_inst_name_exist::is_exist=%s" % is_exist) @@ -163,7 +163,7 @@ class InstVnf(Thread): def create_res(self): logger.info("[NF instantiation] create resource start") - adaptor.create_vim_res(self.vnfd_info, self.do_notify, self.do_rollback) + adaptor.create_vim_res('', self.do_notify, self.do_rollback) JobUtil.add_job_status(self.job_id, 70, '[NF instantiation] create resource finish') logger.info("[NF instantiation] create resource finish") @@ -236,10 +236,12 @@ class InstVnf(Thread): def lcm_notify(self): logger.info('[NF instantiation] send notify request to nfvo start') reg_info = NfvoRegInfoModel.objects.filter(vnfminstid=self.vnfm_inst_id).first() + # vm_info = VmInstModel.objects.filter(nfinstid=self.nf_inst_id) + vmlist = [] nfs = NfInstModel.objects.filter(nfinstid=self.nf_inst_id) nf = nfs[0] - allocate_data = json.loads(nf.initallocatedata) - vmlist = json.loads(nf.predefinedvm) + # allocate_data = json.loads(nf.initallocatedata) + # vmlist = json.loads(nf.predefinedvm) addition_param = {'vmList': vmlist} affected_vnfc = [] vnfcs = VNFCInstModel.objects.filter(nfinstid=self.nf_inst_id) @@ -307,15 +309,15 @@ class InstVnf(Thread): 'changeType': 'added', 'portResource': port_resource, 'virtualLinkInstanceId': cp.vlinstanceid}) affectedcapacity = {} - reserved_total = allocate_data.get('reserved_total', {}) - affectedcapacity['vm'] = str(reserved_total.get('vmnum', 0)) - affectedcapacity['vcpu'] = str(reserved_total.get('vcpunum', 0)) - affectedcapacity['vMemory'] = str(reserved_total.get('memorysize', 0)) - affectedcapacity['port'] = str(reserved_total.get('portnum', 0)) - affectedcapacity['localStorage'] = str(reserved_total.get('hdsize', 0)) - affectedcapacity['sharedStorage'] = str(reserved_total.get('shdsize', 0)) + # reserved_total = allocate_data.get('reserved_total', {}) + # affectedcapacity['vm'] = str(reserved_total.get('vmnum', 0)) + # affectedcapacity['vcpu'] = str(reserved_total.get('vcpunum', 0)) + # affectedcapacity['vMemory'] = str(reserved_total.get('memorysize', 0)) + # affectedcapacity['port'] = str(reserved_total.get('portnum', 0)) + # affectedcapacity['localStorage'] = str(reserved_total.get('hdsize', 0)) + # affectedcapacity['sharedStorage'] = str(reserved_total.get('shdsize', 0)) content_args = { - "vnfdmodule": allocate_data, + # "vnfdmodule": allocate_data, "additionalParam": addition_param, "nfvoInstanceId": reg_info.nfvoid, "vnfmInstanceId": self.vnfm_inst_id, @@ -323,7 +325,7 @@ class InstVnf(Thread): "nfInstanceId": self.nf_inst_id, "operation": 'instantiate', "jobId": '', - 'affectedcapacity': affectedcapacity, + # 'affectedcapacity': affectedcapacity, 'affectedService': [], 'affectedVnfc': affected_vnfc, 'affectedVirtualLink': affected_vl, -- 2.16.6