From 56c992661cec11bc5caf9511ba1e1d6384cebaa7 Mon Sep 17 00:00:00 2001 From: intrigeri Date: Sat, 28 Oct 2006 19:19:55 +0000 Subject: sys: fix bug when vrootdir is on its own partition --- ChangeLog | 1 + handlers/sys | 52 ++++++++++++++++++++-------------------------------- 2 files changed, 21 insertions(+), 32 deletions(-) diff --git a/ChangeLog b/ChangeLog index 47281e4..245fc62 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,7 @@ version 0.9.5 -- unreleased handler changes sys: . Fixed typo breaking things for VServers. + . Fix bug when vrootdir is on its own partition. fixed automake 'make install' bug that failed if /etc/backup.d already existed diff --git a/handlers/sys b/handlers/sys index 6ae736d..677d5ee 100755 --- a/handlers/sys +++ b/handlers/sys @@ -80,37 +80,22 @@ fi # if [ "$packages" == "yes" ]; then - if [ $usevserver = yes ] - then - nodpkg="lost+found|ARCHIVES" - info "vserver root directory set to: $VROOTDIR" - for vserver in $found_vservers - do - info "examining vserver: $vserver" - running=`$VSERVERINFO $vserver RUNNING` - if [ "$running" = "1" ]; then - if [ ! -x "$VROOTDIR/$vserver`$VSERVER $vserver exec which $packagemgr`" ]; then - warning "can't find $packagemgr in vserver $vserver, skipping installed packages report." - nodpkg="$nodpkg|$vserver" - fi - else - nodpkg="$nodpkg|$vserver" - fi - - done - else - if [ -z "$packagemgr" -o ! -x "$packagemgr" ]; then - warning "can't find ${packagemgr}, skipping installed packages report." - packages="no" - fi - fi -fi -if [ "$packages" == "yes" ]; then - if [ $usevserver = yes ] - then - for vserver in `ls $VROOTDIR | grep -E -v $nodpkg` - do + if [ $usevserver = yes ]; then + info "vserver root directory set to: $VROOTDIR" + for vserver in $found_vservers; do + info "examining vserver: $vserver" + # is it running ? + $VSERVERINFO -q $vserver RUNNING + if [ $? -ne 0 ]; then + warning "The vserver $vserver is not running." + continue + fi + # is $packagemgr available inside $vserver ? + if [ ! -x "$VROOTDIR/$vserver`$VSERVER $vserver exec which $packagemgr`" ]; then + warning "can't find $packagemgr in vserver $vserver, skipping installed packages report." + continue + fi # don't expand * since it can be used in $packagemgroptions set -o noglob debug "$VSERVER $vserver exec $packagemgr $packagemgroptions > $VROOTDIR/$vserver$packagesfile" @@ -119,14 +104,17 @@ if [ "$packages" == "yes" ]; then done fi -# We want to perform this on the host as well - if [ "$packages" == "yes" ]; then + # We want to perform this on the host as well + if [ -z "$packagemgr" -o ! -x "$packagemgr" ]; then + warning "can't find ${packagemgr}, skipping installed packages report." + else # don't expand * since it can be used in $packagemgroptions set -o noglob debug "$packagemgr $packagemgroptions > $packagesfile" $packagemgr $packagemgroptions > $packagesfile || fatal "can not save $packagemgr info to $packagesfile" set +o noglob fi + fi ## System report ############################## -- cgit v1.2.3