diff --git a/tools/libvirt-guests.init.sh b/tools/libvirt-guests.init.sh index 2b8b20ad3545d57bdb44fd23703f91e97ff4b74d..1f27de6d970a8edc940ade8088f3924bb34e6931 100644 --- a/tools/libvirt-guests.init.sh +++ b/tools/libvirt-guests.init.sh @@ -293,13 +293,48 @@ stop() { printf %s "$(guest_name "$uri" "$uuid")" empty=false done + if "$empty"; then - gettext "no running guests."; echo + gettext "no running guests." + fi + echo + fi + + if "$suspending"; then + transient=$(list_guests "$uri" "--transient") + if [ $? -eq 0 ]; then + empty=true + for uuid in $transient; do + if "$empty"; then + eval_gettext "Not suspending transient guests on URI: \$uri: " + empty=false + else + printf ", " + fi + printf %s "$(guest_name "$uri" "$uuid")" + done + echo + # reload domain list to contain only persistent guests + list=$(list_guests "$uri" "--persistent") + if [ $? -ne 0 ]; then + eval_gettext "Failed to list persistent guests on \$uri" + echo + RETVAL=1 + set +f + return + fi else + gettext "Failed to list transient guests" echo - echo "$uri" "$list" >>"$LISTFILE" + RETVAL=1 + set +f + return fi fi + + if [ -n "$list" ]; then + echo "$uri" "$list" >>"$LISTFILE" + fi done set +f