X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=lcm%2Flcm%2Fpub%2Fmsapi%2Fgvnfmdriver.py;h=91b4a363ef595c2a6670a85cfcce0d971253e16b;hb=refs%2Fheads%2Fcasablanca;hp=a61227f1549c054b272c7536b2d12cf695800b18;hpb=5729b6abb1a43319bfa419db6548ae8df6120479;p=vfc%2Fgvnfm%2Fvnflcm.git diff --git a/lcm/lcm/pub/msapi/gvnfmdriver.py b/lcm/lcm/pub/msapi/gvnfmdriver.py index a61227f1..91b4a363 100644 --- a/lcm/lcm/pub/msapi/gvnfmdriver.py +++ b/lcm/lcm/pub/msapi/gvnfmdriver.py @@ -51,7 +51,7 @@ def notify_lcm_to_nfvo(data): return ret[1] -def prepare_notification_data(nfinstid, jobid, changetype): +def prepare_notification_data(nfinstid, jobid, changetype, operation): logger.info('Send notify request to nfvo') affected_vnfcs = [] vnfcs = VNFCInstModel.objects.filter(instid=nfinstid) @@ -61,7 +61,7 @@ def prepare_notification_data(nfinstid, jobid, changetype): 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): '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, @@ -98,8 +101,23 @@ def prepare_notification_data(nfinstid, jobid, changetype): 'resourceProviderId': port.name, # TODO: is resourceName mapped to resourceProviderId? 'vimLevelResourceType': 'port' }, - 'cpInstanceId': port.cpinstanceid # TODO: port.cpinstanceid is not initiated when create port resource. - }), + 'cpInstanceId': port.portid # 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) + net_name = networks[0].name if networks else network_id + network_resource = { + 'vimConnectionId': ext_link_ports[0]['resourceHandle']['vimConnectionId'], + 'resourceId': network_id, + 'resourceProviderId': net_name, # TODO: is resourceName mapped to resourceProviderId? + 'vimLevelResourceType': 'network' + } + ext_connectivity.append({ + 'id': network_id, + 'resourceHandle': network_resource, + 'extLinkPorts': ext_link_ports + }) + logger.debug("ext_connectivity=%s", ext_connectivity) affected_vss = [] vss = StorageInstModel.objects.filter(instid=nfinstid) for vs in vss: @@ -122,17 +140,13 @@ def prepare_notification_data(nfinstid, jobid, changetype): 'notificationStatus': 'RESULT', 'operationState': 'COMPLETED', 'vnfInstanceId': nfinstid, - 'operation': 'INSTANTIATE', + 'operation': operation, 'isAutomaticInvocation': False, 'vnfLcmOpOccId': jobid, 'affectedVnfcs': affected_vnfcs, 'affectedVirtualLinks': affected_vls, 'affectedVirtualStorages': affected_vss, - 'chengedExtConnectivity': [{ - 'id': None, # TODO - 'resourceHandle': None, # TODO - 'extLinkPorts': ext_link_ports - }], + 'changedExtConnectivity': [], # TODO: will add in R4 '_links': { 'vnfInstance': {'href': '/api/vnflcm/v1/vnf_instances/%s' % nfinstid}, # set 'subscription' link after filtering for subscribers @@ -140,6 +154,6 @@ def prepare_notification_data(nfinstid, jobid, changetype): } } 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