diff options
author | laili <lai.li@zte.com.cn> | 2018-08-15 18:43:39 +0800 |
---|---|---|
committer | laili <lai.li@zte.com.cn> | 2018-08-15 18:43:39 +0800 |
commit | 754d374a28624e609bbb65aec69ebf417cfcf404 (patch) | |
tree | bbbd728994c4711615da58ea0a89a151ffab608f | |
parent | 25bc088ee9ccd268396f7b1b87aa56fe90344d0b (diff) |
Deal with gvnfm adapter stuffs.
Modify reqest data used to notify nfvo when performing termination.
Change-Id: I8b3b5db14010df5ce3eee8763f256d95225fb3c6
Issue-ID: VFC-1020
Signed-off-by: laili <lai.li@zte.com.cn>
-rw-r--r-- | lcm/lcm/nf/biz/instantiate_vnf.py | 40 | ||||
-rw-r--r-- | lcm/lcm/nf/biz/terminate_vnf.py | 100 |
2 files changed, 86 insertions, 54 deletions
diff --git a/lcm/lcm/nf/biz/instantiate_vnf.py b/lcm/lcm/nf/biz/instantiate_vnf.py index 01f1ef7e..e0975e5c 100644 --- a/lcm/lcm/nf/biz/instantiate_vnf.py +++ b/lcm/lcm/nf/biz/instantiate_vnf.py @@ -165,25 +165,35 @@ class InstantiateVnf(Thread): if vnfc.vmid: vm = VmInstModel.objects.filter(vmid=vnfc.vmid) if vm: - vm_resource = {'vimId': vm[0].vimConnectionId, 'resourceId': vm[0].resouceid, - 'resourceProviderId': vm[0].vmname, 'vimLevelResourceType': 'vm'} + vm_resource = { + 'vimId': vm[0].vimConnectionId, + 'resourceId': vm[0].resouceid, + 'resourceProviderId': vm[0].vmname, + 'vimLevelResourceType': 'vm' + } # TODO: is resourceName mapped to resourceProviderId? - affected_vnfcs.append( - {'id': vnfc.vnfcinstanceid, - 'vduId': vnfc.vduid, - 'changeType': 'ADDED', - 'computeResource': vm_resource}) + affected_vnfcs.append({ + 'id': vnfc.vnfcinstanceid, + 'vduId': vnfc.vduid, + 'changeType': 'ADDED', + 'computeResource': vm_resource + }) affected_vls = [] networks = NetworkInstModel.objects.filter(instid=self.nf_inst_id) for network in networks: - network_resource = {'vimConnectionId': network.vimid, 'resourceId': network.resouceid, - 'resourceProviderId': network.name, 'vimLevelResourceType': 'network'} + network_resource = { + 'vimConnectionId': network.vimid, + 'resourceId': network.resouceid, + 'resourceProviderId': network.name, + 'vimLevelResourceType': 'network' + } # TODO: is resourceName mapped to resourceProviderId? - affected_vls.append( - {'id': network.networkid, - 'virtualLinkDescId': network.nodeId, - 'changeType': 'ADDED', - 'networkResource': network_resource}) + affected_vls.append({ + 'id': network.networkid, + 'virtualLinkDescId': network.nodeId, + 'changeType': 'ADDED', + 'networkResource': network_resource + }) ext_link_ports = [] ports = PortInstModel.objects.filter(instid=self.nf_inst_id) for port in ports: @@ -215,7 +225,7 @@ class InstantiateVnf(Thread): # TODO: is resourceName mapped to resourceProviderId? content_args = { "notificationType": 'VnfLcmOperationOccurrenceNotification', - "notificationStatus": 'Result', + "notificationStatus": 'RESULT', "vnfInstanceId": self.nf_inst_id, "operation": 'INSTANTIATE', "vnfLcmOpOccId": self.job_id, diff --git a/lcm/lcm/nf/biz/terminate_vnf.py b/lcm/lcm/nf/biz/terminate_vnf.py index 98edf1ed..01945152 100644 --- a/lcm/lcm/nf/biz/terminate_vnf.py +++ b/lcm/lcm/nf/biz/terminate_vnf.py @@ -120,65 +120,87 @@ class TerminateVnf(Thread): def query_notify_data(self): logger.info('Send notify request to nfvo') - affected_vnfc = [] + affected_vnfcs = [] vnfcs = VNFCInstModel.objects.filter(instid=self.nf_inst_id) for vnfc in vnfcs: 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': 'removed', - 'computeResource': vm_resource}) - affected_vl = [] + vm_resource = { + 'vimId': vm[0].vimid, + 'resourceId': vm[0].resouceid, + 'resourceProviderId': vm[0].vmname, + 'vimLevelResourceType': 'vm' + } + affected_vnfcs.append({ + 'id': vnfc.vnfcinstanceid, + 'vduId': vnfc.vduid, + 'changeType': 'REMOVED', + 'computeResource': vm_resource + }) + affected_vls = [] networks = NetworkInstModel.objects.filter(instid=self.nf_inst_id) for network in networks: network_resource = { - 'vimId': network.vimid, + 'vimConnectionId': network.vimid, 'resourceId': network.resouceid, - 'resourceName': network.name, - 'resourceType': 'network'} - affected_vl.append( - {'vlInstanceId': network.networkid, - 'vldid': network.nodeId, - 'changeType': 'removed', - 'networkResource': network_resource}) - affected_cp = [] + 'resourceProviderId': network.name, + 'vimLevelResourceType': 'network' + } + affected_vls.append({ + 'id': network.networkid, + 'virtualLinkDescId': network.nodeId, + 'changeType': 'REMOVED', + 'networkResource': network_resource + }) + ext_link_ports = [] ports = PortInstModel.objects.filter(instid=self.nf_inst_id) for port in ports: - affected_cp.append( - {'vsInstanceId': port.portid, - 'cpdid': port.nodeId, - 'changeType': 'removed', - 'storageResource': {'vimId': port.vimid, 'resourceId': port.resouceid, - 'resourceName': port.name, 'resourceType': 'port'}}) - affected_vs = [] + ext_link_ports.append({ + 'id': port.portid, + 'resourceHandle': { + 'vimConnectionId': port.vimid, + 'resourceId': port.resouceid, + 'resourceProviderId': port.name, + 'vimLevelResourceType': 'port' + }, + 'cpInstanceId': port.cpinstanceid + }) + affected_vss = [] vss = StorageInstModel.objects.filter(instid=self.nf_inst_id) for vs in vss: - affected_vs.append( - {'vsInstanceId': vs.storageid, - 'vsdId': vs.nodeId, - 'changeType': 'removed', - 'storageResource': {'vimId': vs.vimid, 'resourceId': vs.resouceid, - 'resourceName': vs.name, 'resourceType': 'volume'}}) + affected_vss.append({ + 'id': vs.storageid, + 'virtualStorageDescId': vs.nodeId, + 'changeType': 'REMOVED', + 'storageResource': { + 'vimConnectionId': vs.vimid, + 'resourceId': vs.resouceid, + 'resourceProviderId': vs.name, + 'vimLevelResourceType': 'volume' + } + }) FlavourInstModel.objects.filter(instid=self.nf_inst_id) SubNetworkInstModel.objects.filter(instid=self.nf_inst_id) self.notify_data = { - "status": 'result', + "notificationType": 'VnfLcmOperationOccurrenceNotification', + "notificationStatus": 'RESULT', "vnfInstanceId": self.nf_inst_id, - "operation": 'Terminal', - "jobId": self.job_id, - 'affectedVnfc': affected_vnfc, - 'affectedVirtualLink': affected_vl, - 'affectedVirtualStorage': affected_vs, - 'affectedCp': affected_cp} + "operation": 'TERMINATE', + "vnfLcmOpOccId": self.job_id, + 'affectedVnfcs': affected_vnfcs, + 'affectedVirtualLinks': affected_vls, + 'affectedVirtualStorages': affected_vss, + 'chengedExtConnectivity': [{ + 'id': None, # TODO + 'resourceHandle': None, # TODO + 'extLinkPorts': ext_link_ports + }] + } vnfInsts = NfInstModel.objects.filter(nfinstid=self.nf_inst_id) - self.notify_data['VNFMID'] = vnfInsts[0].vnfminstid + self.notify_data['vnfmInstId'] = vnfInsts[0].vnfminstid logger.info('Notify request data=%s' % self.notify_data) def delete_resource(self): |