'Get device mapping from FC network.
Gets a filtered list of initiator ports and target ports for each SAN
available.
:param initiator_list: list of initiator port WWN
:param target_list: list of target port WWN
:returns: device wwn map in following format
.. code-block:: python
<San name>: {
\'initiator_port_wwn_list\':
(\'200000051E55A100\', \'200000051E55A121\'..)
\'target_port_wwn_list\':
(\'100000051E55A100\', \'100000051E55A121\'..)
:raises Exception: when a lookup service implementation is not
specified in cinder.conf:fc_san_lookup_service'

def get_device_mapping_from_network(self, initiator_list, target_list):

    if self.configuration.fc_san_lookup_service:
        lookup_service = self.configuration.fc_san_lookup_service
        LOG.debug('Lookup    service    to    invoke:    %s', lookup_service)
        self.lookup_service = importutils.import_object(lookup_service, configuration=self.configuration)
    else:
        msg = _('Lookup    service    not    configured.    Config    option    for    fc_san_lookup_service    needs    to    specify    a    concrete    implementation    of    the    lookup    service.')
        LOG.error(msg)
        raise exception.FCSanLookupServiceException(msg)
    try:
        device_map = self.lookup_service.get_device_mapping_from_network(initiator_list, target_list)
    except Exception as e:
        LOG.exception('Unable    to    get    device    mapping    from    network.')
        raise exception.FCSanLookupServiceException(e)
    return device_map
