'Connect the host and volume; return dict describing connection.'

@utils.retry(exception.PureRetryableException, retries=HOST_CREATE_MAX_RETRIES)
def _connect(self, volume, connector):

    wwns = connector['wwpns']
    current_array = self._get_current_array()
    vol_name = self._get_vol_name(volume)
    host = self._get_host(current_array, connector)
    if host:
        host_name = host['name']
        LOG.info('Re-using    existing    purity    host    %(host_name)r', {'host_name': host_name})
    else:
        host_name = self._generate_purity_host_name(connector['host'])
        LOG.info('Creating    host    object    %(host_name)r    with    WWN:    %(wwn)s.', {'host_name': host_name, 'wwn': wwns})
        try:
            current_array.create_host(host_name, wwnlist=wwns)
        except purestorage.PureHTTPError as err:
            if ((err.code == 400) and ((ERR_MSG_ALREADY_EXISTS in err.text) or (ERR_MSG_ALREADY_IN_USE in err.text))):
                LOG.debug('Unable    to    create    host:    %s', err.text)
                raise exception.PureRetryableException()
    return self._connect_host_to_vol(current_array, host_name, vol_name)
