'Allow connection to connector and return connection info.'

def initialize_connection(self, volume, connector):

    resp = {}
    LOG.debug('Initialize_connection:    initiator    -    %(initiator)s        host    -    %(host)s    ip    -    %(ip)s', {'initiator': connector['initiator'], 'host': connector['host'], 'ip': connector['ip']})
    iqn = self._get_iqn(connector)
    tgt = self.gateway_iscsi_ip_addresses[random.randint(0, (len(self.gateway_iscsi_ip_addresses) - 1))]
    resp = self.common.vmem_mg.client.create_client(name=connector['host'], proto='iSCSI', iscsi_iqns=connector['initiator'])
    if ((not resp['success']) and ('Error:    0x900100cd' not in resp['msg'])):
        msg = _('Failed    to    create    iscsi    client')
        raise exception.ViolinBackendErr(message=msg)
    resp = self.common.vmem_mg.client.create_iscsi_target(name=iqn, client_name=connector['host'], ip=self.gateway_iscsi_ip_addresses, access_mode='ReadWrite')
    if ((not resp['success']) and ('Error:    0x09024309' not in resp['msg'])):
        msg = _('Failed    to    create    iscsi    target')
        raise exception.ViolinBackendErr(message=msg)
    lun_id = self._export_lun(volume, iqn, connector)
    properties = {}
    properties['target_discovered'] = False
    properties['target_iqn'] = iqn
    properties['target_portal'] = ('%s:%s' % (tgt, '3260'))
    properties['target_lun'] = lun_id
    properties['volume_id'] = volume['id']
    LOG.debug('Return    ISCSI    data:    %(properties)s.', {'properties': properties})
    return {'driver_volume_type': 'iscsi', 'data': properties}
