From 0531377076c13b57f583102937092d7d12b15422 Mon Sep 17 00:00:00 2001 From: Peter Krempa <pkrempa@redhat.com> Date: Tue, 28 Feb 2012 14:39:17 +0100 Subject: [PATCH] libvirt-guests: Check if URI is reachable before launching commands 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 | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/tools/libvirt-guests.init.sh b/tools/libvirt-guests.init.sh index 1f27de6d97..c867eceea6 100644 --- a/tools/libvirt-guests.init.sh +++ b/tools/libvirt-guests.init.sh @@ -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