'Restore volume using full copy i.e. all extents.
This will result in all extents being copied from source to
destination.'

def _full_restore(self, backup, dest_file, dest_name, length, src_snap=None):

    with rbd_driver.RADOSClient(self, backup.container) as client:
        if src_snap:
            diff_format = True
        else:
            diff_format = False
        backup_name = self._get_backup_base_name(backup.volume_id, backup_id=backup.id, diff_format=diff_format)
        src_rbd = self.rbd.Image(client.ioctx, backup_name, snapshot=src_snap, read_only=True)
        try:
            rbd_meta = linuxrbd.RBDImageMetadata(src_rbd, backup.container, self._ceph_backup_user, self._ceph_backup_conf)
            rbd_fd = linuxrbd.RBDVolumeIOWrapper(rbd_meta)
            self._transfer_data(rbd_fd, backup_name, dest_file, dest_name, length)
        finally:
            src_rbd.close()
