X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=lcm%2Flcm%2Fnf%2Fbiz%2Finstantiate_vnf.py;h=606dbab084e26e6f519c27af63344d6d6f4bf927;hb=49b87c030e4ae60b141268f9c2f89b8010acd050;hp=73109c80f3607b2d1729a010eda6c0993aa9add5;hpb=9975ee2ab76998715538fa3aeee377b947125b7e;p=vfc%2Fgvnfm%2Fvnflcm.git diff --git a/lcm/lcm/nf/biz/instantiate_vnf.py b/lcm/lcm/nf/biz/instantiate_vnf.py index 73109c80..606dbab0 100644 --- a/lcm/lcm/nf/biz/instantiate_vnf.py +++ b/lcm/lcm/nf/biz/instantiate_vnf.py @@ -15,11 +15,9 @@ import json import logging import traceback -import uuid from threading import Thread -from lcm.pub.database.models import NfInstModel, VmInstModel, NetworkInstModel, \ - SubNetworkInstModel, PortInstModel, StorageInstModel, FlavourInstModel, VNFCInstModel +from lcm.pub.database.models import NfInstModel from lcm.pub.exceptions import NFLCMException from lcm.pub.msapi.gvnfmdriver import prepare_notification_data # from lcm.pub.msapi.gvnfmdriver import notify_lcm_to_nfvo @@ -27,10 +25,11 @@ from lcm.pub.msapi.sdc_run_catalog import query_vnfpackage_by_id from lcm.pub.utils.jobutil import JobUtil from lcm.pub.utils.timeutil import now_time from lcm.pub.utils.notificationsutil import NotificationsUtil -from lcm.pub.utils.values import ignore_case_get, get_none, get_boolean, get_integer +from lcm.pub.utils.values import ignore_case_get from lcm.pub.vimapi import adaptor from lcm.nf.biz.grant_vnf import grant_resource from lcm.nf.const import CHANGE_TYPE, GRANT_TYPE, OPERATION_TYPE +from lcm.nf.biz import common logger = logging.getLogger(__name__) @@ -93,7 +92,7 @@ class InstantiateVnf(Thread): version=version, vendor=vendor, netype=netype, - vnfd_model=self.vnfd_info, + vnfd_model=json.dumps(self.vnfd_info), status='NOT_INSTANTIATED', vnfdid=self.vnfd_id, localizationLanguage=ignore_case_get(self.data, 'localizationLanguage'), @@ -126,8 +125,12 @@ class InstantiateVnf(Thread): def create_res(self): logger.info("Create resource start") - adaptor.create_vim_res(self.vnfd_info, self.do_notify) + vim_cache, res_cache = {}, {} + adaptor.create_vim_res(self.vnfd_info, self.do_notify, vim_cache=vim_cache, res_cache=res_cache) JobUtil.add_job_status(self.job_id, 70, '[NF instantiation] create resource finish') + NfInstModel.objects.filter(nfinstid=self.nf_inst_id).\ + update(vimInfo=json.dumps(vim_cache), + resInfo=json.dumps(res_cache)) logger.info("Create resource finish") def lcm_notify(self): @@ -144,7 +147,7 @@ class InstantiateVnf(Thread): def do_notify(self, res_type, ret): logger.info('Creating [%s] resource' % res_type) - resource_save_method = globals().get(res_type + '_save') + resource_save_method = getattr(common, res_type + '_save') resource_save_method(self.job_id, self.nf_inst_id, ret) def update_cps(self): @@ -201,128 +204,3 @@ class InstantiateVnf(Thread): subnet_ids.append(ignore_case_get(ip_address, "subnetId")) return subnet_ids ''' - - -def volume_save(job_id, nf_inst_id, ret): - JobUtil.add_job_status(job_id, 25, 'Create vloumns!') - StorageInstModel.objects.create( - storageid=str(uuid.uuid4()), - vimid=ignore_case_get(ret, "vimId"), - resourceid=ignore_case_get(ret, "id"), - name=ignore_case_get(ret, "name"), - tenant=ignore_case_get(ret, "tenantId"), - create_time=ignore_case_get(ret, "createTime"), - storagetype=get_none(ignore_case_get(ret, "type")), - size=ignore_case_get(ret, "size"), - insttype=0, - is_predefined=ignore_case_get(ret, "returnCode"), - nodeId=ignore_case_get(ret, "nodeId"), - instid=nf_inst_id) - - -def network_save(job_id, nf_inst_id, ret): - JobUtil.add_job_status(job_id, 35, 'Create networks!') - NetworkInstModel.objects.create( - networkid=str(uuid.uuid4()), - name=ignore_case_get(ret, "name"), - vimid=ignore_case_get(ret, "vimId"), - resourceid=ignore_case_get(ret, "id"), - tenant=ignore_case_get(ret, "tenantId"), - segmentid=str(ignore_case_get(ret, "segmentationId")), - network_type=ignore_case_get(ret, "networkType"), - physicalNetwork=ignore_case_get(ret, "physicalNetwork"), - vlantrans=get_boolean(ignore_case_get(ret, "vlanTransparent")), - is_shared=get_boolean(ignore_case_get(ret, "shared")), - routerExternal=get_boolean(ignore_case_get(ret, "routerExternal")), - insttype=0, - is_predefined=ignore_case_get(ret, "returnCode"), - nodeId=ignore_case_get(ret, "nodeId"), - instid=nf_inst_id) - - -def subnet_save(job_id, nf_inst_id, ret): - JobUtil.add_job_status(job_id, 40, 'Create subnets!') - SubNetworkInstModel.objects.create( - subnetworkid=str(uuid.uuid4()), - name=ignore_case_get(ret, "name"), - vimid=ignore_case_get(ret, "vimId"), - resourceid=ignore_case_get(ret, "id"), - tenant=ignore_case_get(ret, "tenantId"), - networkid=ignore_case_get(ret, "networkId"), - cidr=ignore_case_get(ret, "cidr"), - ipversion=ignore_case_get(ret, "ipversion"), - isdhcpenabled=ignore_case_get(ret, "enableDhcp"), - gatewayip=ignore_case_get(ret, "gatewayIp"), - dnsNameservers=ignore_case_get(ret, "dnsNameservers"), - hostRoutes=ignore_case_get(ret, "hostRoutes"), - allocationPools=ignore_case_get(ret, "allocationPools"), - insttype=0, - is_predefined=ignore_case_get(ret, "returnCode"), - instid=nf_inst_id) - - -def port_save(job_id, nf_inst_id, ret): - JobUtil.add_job_status(job_id, 50, 'Create ports!') - PortInstModel.objects.create( - portid=str(uuid.uuid4()), - networkid=ignore_case_get(ret, "networkId"), - subnetworkid=ignore_case_get(ret, "subnetId"), - name=ignore_case_get(ret, "name"), - vimid=ignore_case_get(ret, "vimId"), - resourceid=ignore_case_get(ret, "id"), - tenant=ignore_case_get(ret, "tenantId"), - macaddress=ignore_case_get(ret, "macAddress"), - ipaddress=ignore_case_get(ret, "ip"), - typevirtualnic=ignore_case_get(ret, "vnicType"), - securityGroups=ignore_case_get(ret, "securityGroups"), - insttype=0, - is_predefined=ignore_case_get(ret, "returnCode"), - nodeId=ignore_case_get(ret, "nodeId"), - instid=nf_inst_id) - - -def flavor_save(job_id, nf_inst_id, ret): - JobUtil.add_job_status(job_id, 60, 'Create flavors!') - FlavourInstModel.objects.create( - flavourid=str(uuid.uuid4()), - name=ignore_case_get(ret, "name"), - vimid=ignore_case_get(ret, "vimId"), - resourceid=ignore_case_get(ret, "id"), - tenant=ignore_case_get(ret, "tenantId"), - vcpu=get_integer(ignore_case_get(ret, "vcpu")), - memory=get_integer(ignore_case_get(ret, "memory")), - disk=get_integer(ignore_case_get(ret, "disk")), - ephemeral=get_integer(ignore_case_get(ret, "ephemeral")), - swap=get_integer(ignore_case_get(ret, "swap")), - isPublic=get_boolean(ignore_case_get(ret, "isPublic")), - extraspecs=ignore_case_get(ret, "extraSpecs"), - is_predefined=ret.get("returnCode", int(0)), - instid=nf_inst_id) - - -def vm_save(job_id, nf_inst_id, ret): - JobUtil.add_job_status(job_id, 70, 'Create vms!') - vm_id = str(uuid.uuid4()) - VmInstModel.objects.create( - vmid=vm_id, - vmname=ignore_case_get(ret, "name"), - vimid=ignore_case_get(ret, "vimId"), - resourceid=ignore_case_get(ret, "id"), - tenant=ignore_case_get(ret, "tenantId"), - nic_array=ignore_case_get(ret, "nicArray"), - metadata=ignore_case_get(ret, "metadata"), - volume_array=ignore_case_get(ret, "volumeArray"), - server_group=ignore_case_get(ret, "serverGroup"), - availability_zone=str(ignore_case_get(ret, "availabilityZone", "undefined")), - flavor_id=ignore_case_get(ret, "flavorId"), - security_groups=ignore_case_get(ret, "securityGroups"), - operationalstate=ignore_case_get(ret, "status"), - insttype=0, - is_predefined=ignore_case_get(ret, "returnCode"), - instid=nf_inst_id) - VNFCInstModel.objects.create( - vnfcinstanceid=str(uuid.uuid4()), - vduid=ignore_case_get(ret, "id"), - is_predefined=ignore_case_get(ret, "returnCode"), - instid=nf_inst_id, - vmid=vm_id)