]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
libvirt-guests: Don't try to do a managed-save of transient guests
authorPeter Krempa <pkrempa@redhat.com>
Tue, 28 Feb 2012 13:32:21 +0000 (14:32 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 29 Feb 2012 11:44:21 +0000 (12:44 +0100)
The libvirt-guests script tried to do a managed save of transient guest
that failed. This patch notifies which guests are transient (and not
being saved) and saves only the persistent ones.

tools/libvirt-guests.init.sh

index 2b8b20ad3545d57bdb44fd23703f91e97ff4b74d..1f27de6d970a8edc940ade8088f3924bb34e6931 100644 (file)
@@ -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