X-Git-Url: https://gerrit.onap.org/r/gitweb?p=vfc%2Fgvnfm%2Fvnflcm.git;a=blobdiff_plain;f=lcm%2Flcm%2Fpub%2Fmsapi%2Fgvnfmdriver.py;fp=lcm%2Flcm%2Fpub%2Fmsapi%2Fgvnfmdriver.py;h=c2519ea0c5dfb268dc8090478aca5961b2f9448a;hp=13e8dee5e7dafb958f06bd5a9b3d74750c8bf466;hb=4f82607bbc26823472e58e2073a20ca928db5bd9;hpb=f90a8ca14fd25b86ca00e2aba52e3f48de4683d4 diff --git a/lcm/lcm/pub/msapi/gvnfmdriver.py b/lcm/lcm/pub/msapi/gvnfmdriver.py index 13e8dee5..c2519ea0 100644 --- a/lcm/lcm/pub/msapi/gvnfmdriver.py +++ b/lcm/lcm/pub/msapi/gvnfmdriver.py @@ -61,7 +61,7 @@ def prepare_notification_data(nfinstid, jobid, changetype, operation): vm = VmInstModel.objects.filter(vmid=vnfc.vmid) if vm: vm_resource = { - 'vimId': vm[0].vimid, + 'vimConnectionId': vm[0].vimid, 'resourceId': vm[0].resourceid, 'resourceProviderId': vm[0].vmname, # TODO: is resourceName mapped to resourceProviderId? 'vimLevelResourceType': 'vm' @@ -87,10 +87,13 @@ def prepare_notification_data(nfinstid, jobid, changetype, operation): 'changeType': changetype, 'networkResource': network_resource }) - ext_link_ports = [] + ext_connectivity = [] + ext_connectivity_map = {} ports = PortInstModel.objects.filter(instid=nfinstid) for port in ports: - ext_link_ports.append({ + if port.networkid not in ext_connectivity_map: + ext_connectivity_map[port.networkid] = [] + ext_connectivity_map[port.networkid].append({ 'id': port.portid, # TODO: port.portid or port.nodeid? 'resourceHandle': { 'vimConnectionId': port.vimid, @@ -99,7 +102,21 @@ def prepare_notification_data(nfinstid, jobid, changetype, operation): 'vimLevelResourceType': 'port' }, 'cpInstanceId': port.cpinstanceid # TODO: port.cpinstanceid is not initiated when create port resource. - }), + }) + for network_id, ext_link_ports in ext_connectivity_map.items(): + networks = NetworkInstModel.objects.filter(networkid=network_id) + network = networks[0] + network_resource = { + 'vimConnectionId': network.vimid, + 'resourceId': network.resourceid, + 'resourceProviderId': network.name, # TODO: is resourceName mapped to resourceProviderId? + 'vimLevelResourceType': 'network' + } + ext_connectivity.append({ + 'id': network_id, + 'resourceHandle': network_resource, + 'extLinkPorts': ext_link_ports + }) affected_vss = [] vss = StorageInstModel.objects.filter(instid=nfinstid) for vs in vss: @@ -128,11 +145,7 @@ def prepare_notification_data(nfinstid, jobid, changetype, operation): 'affectedVnfcs': affected_vnfcs, 'affectedVirtualLinks': affected_vls, 'affectedVirtualStorages': affected_vss, - 'chengedExtConnectivity': [{ - 'id': None, # TODO - 'resourceHandle': None, # TODO - 'extLinkPorts': ext_link_ports - }], + 'changedExtConnectivity': ext_connectivity, '_links': { 'vnfInstance': {'href': '/api/vnflcm/v1/vnf_instances/%s' % nfinstid}, # set 'subscription' link after filtering for subscribers @@ -140,6 +153,6 @@ def prepare_notification_data(nfinstid, jobid, changetype, operation): } } nfInsts = NfInstModel.objects.filter(nfinstid=nfinstid) - notification_content['vnfmInstId'] = nfInsts[0].vnfminstid + notification_content['vnfmInstId'] = nfInsts[0].vnfminstid if nfInsts[0].vnfminstid else '1' logger.info('Notify request data = %s' % notification_content) return notification_content