#!/bin/sh # A script to cleanup resource leases auto-created by # the libvirt lock plugin for sanlock # Copyright (C) 2011, 2013 Red Hat, Inc. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library. If not, see # . verbose=1 if test "x$1" = "x-q" ; then verbose=0 fi LOCKSPACE="__LIBVIRT__DISKS__" LOCKDIR=`augtool print '/files@sysconfdir@/libvirt/qemu-sanlock.conf/disk_lease_dir'` if test $? != 0 || test "x$LOCKDIR" = "x" ; then LOCKDIR="@localstatedir@/lib/libvirt/sanlock" fi notify() { test $verbose = 1 || return if test "x$1" = "x-n"; then shift printf %s "$*" else printf %s\\n "$*" fi } cd "$LOCKDIR" || exit 1 for MD5 in * do if test $MD5 != '*' && test $MD5 != $LOCKSPACE ; then RESOURCE="$LOCKSPACE:$MD5:$LOCKDIR/$MD5:0" notify -n "Cleanup: $RESOURCE " sanlock client command -r $RESOURCE -c /bin/rm -f "$LOCKDIR/$MD5" 2>/dev/null if test $? = 0 ; then notify "PASS" else notify "FAIL" fi fi done exit 0 : <<=cut =pod =head1 NAME virt-sanlock-cleanup - remove stale sanlock resource lease files =head1 SYNOPSIS virt-sanlock-cleanup =head1 DESCRIPTION This tool removes any resource lease files created by the sanlock lock manager plugin. The resource lease files only need to exist on disks when a guest using the resource is active. This script reclaims the disk space used by resources which are not currently active. =head1 EXIT STATUS Upon successful processing of leases cleanup, an exit status of 0 will be set. Upon fatal error a non-zero status will be set. =head1 AUTHOR Daniel Berrange =head1 BUGS Report any bugs discovered to the libvirt community via the mailing list C or bug tracker C. Alternatively report bugs to your software distributor / vendor. =head1 COPYRIGHT Copyright (C) 2011, 2013 Red Hat, Inc. =head1 LICENSE virt-sanlock-cleanup is distributed under the terms of the GNU GPL v2+. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE =head1 SEE ALSO C, online instructions C =cut