- if 'failed' == vnfc['status']:
- continue
- compute_resource = vnfc['computeresource']
- vminst = VmInstModel.objects.filter(resouceid=compute_resource['resourceid']).first()
- VNFCInstModel.objects.create(
- vnfcinstanceid=vnfc['vnfcinstanceid'],
- vduid=vnfc['vduid'],
- vdutype=vnfc['vdutype'],
- nfinstid=self.nf_inst_id,
- vmid=vminst.vmid)
- for vl in vls:
- if 'failed' == vl['status']:
- continue
- network_resource = vl['networkresource']
- subnet_resource = vl['subnetworkresource']
- networkinst = NetworkInstModel.objects.filter(resouceid=network_resource['resourceid']).first()
- subnetinst = SubNetworkInstModel.objects.filter(resouceid=subnet_resource['resourceid']).first()
- VLInstModel.objects.create(
- vlinstanceid=vl['virtuallinkinstanceid'],
- vldid=vl['virtuallinkdescid'],
- ownertype='0',
- ownerid=self.nf_inst_id,
- relatednetworkid=networkinst.networkid,
- relatedsubnetworkid=subnetinst.subnetworkid)
- # # for vs in vss:
- for cp in cps:
- if 'failed' == cp['status']:
- continue
- port_resource = cp['portresource']
- portinst = PortInstModel.objects.filter(resouceid=port_resource['resourceid']).first()
- ttt = portinst.portid
- CPInstModel.objects.create(
- cpinstanceid=cp['cpinstanceid'],
- cpdid=cp['cpdid'],
- relatedtype='2',
- relatedport=portinst.portid,
- ownertype=cp['ownertype'],
- ownerid=cp['ownerid'],
- vlinstanceid=cp['virtuallinkinstanceid'])
- # self.add_job(43, 'INST_DPLY_VM_PRGS')
- logger.info("[NF instantiation] confirm all vms are active end")
-
- # def wait_inst_finish(self, args):
- # try:
- # logger.info('wait_inst_finish, args=%s' % args)
- # # WaitInstFinishTask(args).do_biz()
- # return {'result': '100', 'msg': 'Nf instancing wait finish', 'context': {}}
- # except Exception as e:
- # logger.error('Nf instancing wait exception=%s' % e.message)
- # logger.error(traceback.format_exc())
- # return {'result': '255', 'msg': 'Nf instancing wait exception', 'context': {}}
-
- def lcm_notify(self, args):
- logger.info('lcm_notify, args=%s' % args)
- # LcmNotifyTask(args).do_biz()
- return {'result': '100', 'msg': 'Nf instancing lcm notify finish', 'context': {}}
-
- # def rollback(self, args):
- # try:
- # logger.info('inst_exception, args=%s' % args)
- # # InstExceptionTask(args).do_biz()
- # return {'result': '100', 'msg': 'Nf instancing exception process finish', 'context': {}}
- # except Exception as e:
- # logger.error('Nf instancing exception process exception=%s' % e.message)
- # logger.error(traceback.format_exc())
- # return {'result': '255', 'msg': 'Nf instancing exception process exception', 'context': {}}
+ vm_resource = {}
+ if vnfc.vmid:
+ vm = VmInstModel.objects.filter(vmid=vnfc.vmid)
+ if vm:
+ vm_resource = {'vimId': vm[0].vimid, 'resourceId': vm[0].resouceid,
+ 'resourceName': vm[0].vmname, 'resourceType': 'vm'}
+ affected_vnfc.append(
+ {'vnfcInstanceId': vnfc.vnfcinstanceid,
+ 'vduId': vnfc.vduid,
+ 'changeType': 'added',
+ 'computeResource': vm_resource})
+ affected_vl = []
+ networks = NetworkInstModel.objects.filter(instid=self.nf_inst_id)
+ for network in networks:
+ network_resource = {'vimId': network.vimid, 'resourceId': network.resouceid,
+ 'resourceName': network.name, 'resourceType': 'network'}
+ affected_vl.append(
+ {'vlInstanceId': network.networkid,
+ 'vldid': network.nodeId,
+ 'changeType': 'added',
+ 'networkResource': network_resource})
+ affected_cp = []
+ ports = PortInstModel.objects.filter(instid=self.nf_inst_id)
+ for port in ports:
+ affected_cp.append(
+ {'vsInstanceId': port.portid,
+ 'cpdid': port.nodeId,
+ 'changeType': 'added',
+ 'portResource': {'vimId': port.vimid, 'resourceId': port.resouceid,
+ 'resourceName': port.name, 'resourceType': 'port'}})
+ affected_vs = []
+ vss = StorageInstModel.objects.filter(instid=self.nf_inst_id)
+ for vs in vss:
+ affected_vs.append(
+ {'vsInstanceId': vs.storageid,
+ 'vsdId': vs.nodeId,
+ 'changeType': 'added',
+ 'storageResource': {'vimId': vs.vimid, 'resourceId': vs.resouceid,
+ 'resourceName': vs.name, 'resourceType': 'volume'}})
+ content_args = {
+ "status": 'result',
+ "vnfInstanceId": self.nf_inst_id,
+ "operation": 'instantiate',
+ "jobId": self.job_id,
+ 'affectedVnfc': affected_vnfc,
+ 'affectedVirtualLink': affected_vl,
+ 'affectedVirtualStorage': affected_vs,
+ 'affectedCp': affected_cp}