'Initializes the connection and returns connection info.
The iscsi driver returns a driver_volume_type of \'iscsi\'.
The format of the driver data is defined in _get_iscsi_properties.
Example return value::
\'driver_volume_type\': \'iscsi\'
\'data\': {
\'target_discovered\': True,
\'target_iqn\': \'iqn.2010-10.org.openstack:volume-00000001\',
\'target_portal\': \'127.0.0.0.1:3260\',
\'volume_id\': 1,
\'access_mode\': \'rw\''

def _iscsi_initialize_connection(self, volume, connector):

    LOG.debug('_iscsi_initialize_connection(Volume    ID    =    %(id)s,    connector    =    %(connector)s)    Start.', {'id': volume.id, 'connector': connector})
    provider_location = volume.provider_location
    provider_location = provider_location.split()
    info = {'driver_volume_type': 'iscsi', 'data': {'target_portal': random.choice(provider_location[0][0:(-2)].split(';')), 'target_iqn': provider_location[1], 'target_lun': int(provider_location[2]), 'target_discovered': False, 'volume_id': volume.id}}
    if connector.get('multipath'):
        portals_len = len(provider_location[0][0:(-2)].split(';'))
        info['data'].update({'target_portals': provider_location[0][0:(-2)].split(';'), 'target_iqns': ([provider_location[1]] * portals_len), 'target_luns': ([int(provider_location[2])] * portals_len)})
    LOG.debug('_iscsi_initialize_connection(Volume    ID    =    %(id)s,    connector    =    %(connector)s,    info    =    %(info)s)    End.', {'id': volume.id, 'connector': connector, 'info': info})
    return info
