diff options
Diffstat (limited to 'community/libvirt')
-rw-r--r-- | community/libvirt/PKGBUILD | 13 | ||||
-rwxr-xr-x | community/libvirt/libvirtd-guests.rc.d | 40 |
2 files changed, 43 insertions, 10 deletions
diff --git a/community/libvirt/PKGBUILD b/community/libvirt/PKGBUILD index 15ed35a87..d73ad83cc 100644 --- a/community/libvirt/PKGBUILD +++ b/community/libvirt/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 69188 2012-04-10 02:21:11Z spupykin $ +# $Id: PKGBUILD 69468 2012-04-16 15:11:07Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: Jonathan Wiersma <archaur at jonw dot org> pkgname=libvirt pkgver=0.9.11 -pkgrel=1 +pkgrel=2 pkgdesc="API for controlling virtualization engines (openvz,kvm,qemu,virtualbox,xen,etc)" arch=('i686' 'x86_64') url="http://libvirt.org/" @@ -36,15 +36,17 @@ source=("http://libvirt.org/sources/$pkgname-$pkgver.tar.gz" libvirtd-guests.conf.d openbsd-netcat-default.patch unixperms.patch - yajl-2.x.patch) + yajl-2.x.patch + "libvirt-qemu-ssh-user.patch::http://libvirt.org/git/?p=libvirt.git;a=patch;h=4eb1c2560d1ab8bae620788d343e9e7b32ddc066") md5sums=('6e9fab115075a8fd21d9bd0d7e558a52' 'c43244c40a0437038c82089618e7beaa' '3ed0e24f5b5e25bf553f5427d64915e6' - '4091cf082b1b743f5e7af060b3760276' + '8297b1be794a24cc77f66af9380ace59' 'bc2971dacdbac967fc3474e50affc345' 'b0be50eb9dfe4d133decf23b60880f7d' 'db95aecdf2ccf3693fef5821cdcb7eba' - '5745bb8d0b254abb7a3528c66e03b0f9') + '5745bb8d0b254abb7a3528c66e03b0f9' + '40f6ad1d227ae2c41b4a83f7a3165ffb') build() { cd "$srcdir/$pkgname-$pkgver" @@ -62,6 +64,7 @@ build() { # patch -Np1 -i "$srcdir"/unixperms.patch [ $NOEXTRACT -eq 1 ] || patch -Np1 -i "$srcdir"/openbsd-netcat-default.patch + [ $NOEXTRACT -eq 1 ] || patch -Np1 -i "$srcdir"/libvirt-qemu-ssh-user.patch export LDFLAGS=-lX11 export RADVD=/usr/sbin/radvd diff --git a/community/libvirt/libvirtd-guests.rc.d b/community/libvirt/libvirtd-guests.rc.d index e07478534..670b5431a 100755 --- a/community/libvirt/libvirtd-guests.rc.d +++ b/community/libvirt/libvirtd-guests.rc.d @@ -15,7 +15,34 @@ libvirt_get_guest_state() # list IDs of running guests libvirt_list() { - virsh $LIBVIRTD_URI list | awk 'NR > 2 {print $2}' + + list=$(virsh $LIBVIRTD_URI list) + + if [ $? -ne 0 ]; then + RETVAL=1 + return 1 + fi + + uuids= + for id in $(echo "$list" | awk 'NR > 2 {print $1}'); do + uuid=$(virsh $LIBVIRTD_UTI dominfo $id | awk '/^UUID:/{print $2}') + if [ -z "$uuid" ]; then + RETVAL=1 + return 1 + fi + uuids="$uuids $uuid" + done + + echo $uuids + +} + +libvirt_domname() +{ + uuid=$1 + name=$(virsh $LIBVIRTD_URI dominfo $uuid | awk 'NR == 2 {$1=""; print}') + + echo $name } # suspend guest by name @@ -57,9 +84,11 @@ libvirt_stop_all() { mkdir -p `dirname $LIBVIRTD_LISTFILE` echo -n >$LIBVIRTD_LISTFILE + for i in `libvirt_list`; do + name=`libvirt_domname $i` if [ "x$LIBVIRTD_STOP_ACTION" == "xsuspend" ]; then - stat_busy "Suspending libvirtd/$i guest" + stat_busy "Suspending libvirtd/$name guest" libvirt_suspend "$i" else stat_busy "Shutting libvirtd/$i guest down" @@ -75,7 +104,8 @@ libvirt_start_all() { if [ -f $LIBVIRTD_LISTFILE ]; then for i in `cat $LIBVIRTD_LISTFILE`; do - stat_busy "Starting/resuming libvirtd/$i guest" + name='libvirt_domname $i' + stat_busy "Starting/resuming libvirtd/$name guest" libvirt_start "$i" [ $? -eq 0 ] && { sleep $LIBVIRTD_START_DELAY; stat_done; } || stat_fail done @@ -101,7 +131,7 @@ case "$1" in $0 start ;; *) - echo $"Usage: $0 {start|stop|restart}" - ;; + echo $"Usage: $0 {start|stop|restart}" + ;; esac exit 0 |