'Manages an existing volume.
The specified Cinder volume is to be taken into Cinder management.
The driver will verify its existence and then rename it to the
new Cinder volume name. It is expected that the existing volume
reference is an NFS share point and some [/path]/volume;
e.g., 10.10.32.1:/openstack/vol_to_manage
or 10.10.32.1:/openstack/some_directory/vol_to_manage
:param volume: cinder volume to manage
:param existing_vol_ref: driver-specific information used to identify a
volume
:returns: the provider location
:raises VolumeBackendAPIException:'

@cutils.trace
def manage_existing(self, volume, existing_vol_ref):

    (nfs_share, nfs_mount, vol_name) = self._get_share_mount_and_vol_from_vol_ref(existing_vol_ref)
    LOG.info('Asked    to    manage    NFS    volume    %(vol)s,    with    vol    ref    %(ref)s.', {'vol': volume.id, 'ref': existing_vol_ref['source-name']})
    vol_id = utils.extract_id_from_volume_name(vol_name)
    if utils.check_already_managed_volume(vol_id):
        raise exception.ManageExistingAlreadyManaged(volume_ref=vol_name)
    self._check_pool_and_share(volume, nfs_share)
    if (vol_name == volume.name):
        LOG.debug('New    Cinder    volume    %(vol)s    name    matches    reference    name:    no    need    to    rename.', {'vol': volume.name})
    else:
        src_vol = os.path.join(nfs_mount, vol_name)
        dst_vol = os.path.join(nfs_mount, volume.name)
        try:
            self._try_execute('mv', src_vol, dst_vol, run_as_root=False, check_exit_code=True)
            LOG.debug('Setting    newly    managed    Cinder    volume    name    to    %(vol)s.', {'vol': volume.name})
            self._set_rw_permissions_for_all(dst_vol)
        except (OSError, processutils.ProcessExecutionError) as err:
            msg = (_('Failed    to    manage    existing    volume    %(name)s,    because    rename    operation    failed:    Error    msg:    %(msg)s.') % {'name': existing_vol_ref['source-name'], 'msg': six.text_type(err)})
            LOG.error(msg)
            raise exception.VolumeBackendAPIException(data=msg)
    return {'provider_location': nfs_share}
