]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
libvirt-guests: Check if URI is reachable before launching commands
authorPeter Krempa <pkrempa@redhat.com>
Tue, 28 Feb 2012 13:39:17 +0000 (14:39 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 29 Feb 2012 11:51:26 +0000 (12:51 +0100)
This patch adds a check to the libvirt-guests script to check for the
URI to be alive before attempting any calls. This avoids nasty error
messages and allows us to fail gracefully and continue on other URIs
configured in the script.

tools/libvirt-guests.init.sh

index 1f27de6d970a8edc940ade8088f3924bb34e6931..c867eceea6cb687311245d28914539807cf88e1e 100644 (file)
@@ -88,6 +88,20 @@ run_virsh_c() {
     ( export LC_ALL=C; run_virsh "$@" )
 }
 
+# test_connect URI
+# check if URI is reachable
+test_connect()
+{
+    uri=$1
+
+    run_virsh "$uri" connect 2>/dev/null
+    if [ $? -ne 0 ]; then
+        eval_gettext "Can't connect to \$uri. Skipping."
+        echo
+        return 1
+    fi
+}
+
 # list_guests URI PERSISTENT
 # List running guests on URI.
 # PERSISTENT argument options:
@@ -172,6 +186,8 @@ start() {
             continue
         fi
 
+        test_connect "$uri" || continue
+
         eval_gettext "Resuming guests on \$uri URI..."; echo
         for guest in $list; do
             name=$(guest_name "$uri" "$guest")
@@ -278,12 +294,10 @@ stop() {
     set -f
     for uri in $URIS; do
         set +f
-        eval_gettext "Running guests on \$uri URI: "
 
-        if [ "x$uri" = xdefault ] && [ ! -x "$libvirtd" ]; then
-            gettext "libvirtd not installed; skipping this URI."; echo
-            continue
-        fi
+        test_connect "$uri" || continue
+
+        eval_gettext "Running guests on \$uri URI: "
 
         list=$(list_guests "$uri")
         if [ $? -eq 0 ]; then