[libvirt] [PATCH] libvirt-guests: Remove LISTFILE if it's empty when stopping service

Osier Yang jyang at redhat.com
Mon May 14 07:21:37 UTC 2012


$LISTFILE is created even no domain is running, and the empty
$LISTFILE could cause improper service status.

    stoped ,with saved guests

Which is not right, as there is no domain was saved.
---
 tools/libvirt-guests.init.sh |   42 +++++++++++++++++++++++-------------------
 1 files changed, 23 insertions(+), 19 deletions(-)

diff --git a/tools/libvirt-guests.init.sh b/tools/libvirt-guests.init.sh
index aafb4d4..c0d8a7e 100644
--- a/tools/libvirt-guests.init.sh
+++ b/tools/libvirt-guests.init.sh
@@ -461,26 +461,30 @@ stop() {
     done
     set +f
 
-    while read uri list; do
-        if "$suspending"; then
-            eval_gettext "Suspending guests on \$uri URI..."; echo
-        else
-            eval_gettext "Shutting down guests on \$uri URI..."; echo
-        fi
+    if [ -s $LISTFILE ]; then
+        while read uri list; do
+            if "$suspending"; then
+                eval_gettext "Suspending guests on \$uri URI..."; echo
+            else
+                eval_gettext "Shutting down guests on \$uri URI..."; echo
+            fi
 
-        if [ "$PARALLEL_SHUTDOWN" -gt 1 ] &&
-           ! "$suspending"; then
-            shutdown_guests_parallel "$uri" "$list"
-        else
-            for guest in $list; do
-                if "$suspending"; then
-                    suspend_guest "$uri" "$guest"
-                else
-                    shutdown_guest "$uri" "$guest"
-                fi
-            done
-        fi
-    done <"$LISTFILE"
+            if [ "$PARALLEL_SHUTDOWN" -gt 1 ] &&
+               ! "$suspending"; then
+                shutdown_guests_parallel "$uri" "$list"
+            else
+                for guest in $list; do
+                    if "$suspending"; then
+                        suspend_guest "$uri" "$guest"
+                    else
+                        shutdown_guest "$uri" "$guest"
+                    fi
+                done
+            fi
+        done <"$LISTFILE"
+    else
+        rm -f $LISTFILE
+    fi
 
     rm -f "$VAR_SUBSYS_LIBVIRT_GUESTS"
 }
-- 
1.7.7.3




More information about the libvir-list mailing list