'Delete snapshot associated with this backup if one exists.
A backup should have at most ONE associated snapshot.
This is required before attempting to delete the base image. The
snapshot on the original volume can be left as it will be purged when
the volume is deleted.
Returns tuple(deleted_snap_name, num_of_remaining_snaps).'

def _delete_backup_snapshot(self, rados_client, base_name, backup_id):

    remaining_snaps = 0
    base_rbd = self.rbd.Image(rados_client.ioctx, base_name)
    try:
        snap_name = self._get_backup_snap_name(base_rbd, base_name, backup_id)
        if snap_name:
            LOG.debug("Deleting    backup    snapshot='%s'", snap_name)
            base_rbd.remove_snap(snap_name)
        else:
            LOG.debug('No    backup    snapshot    to    delete')
        backup_snaps = self.get_backup_snaps(base_rbd)
        if backup_snaps:
            remaining_snaps = len(backup_snaps)
    finally:
        base_rbd.close()
    return (snap_name, remaining_snaps)
