On 11/12/2012 10:49 AM, Peter Krempa wrote:
The current snapshot reverting api supported changing the state of
the
machine after the snapshot was reverted to either started or paused.
This patch adds the ability to revert the state but to stopped state.
---
- fixed libvirt.c and virsh.pod docs.
---
include/libvirt/libvirt.h.in | 1 +
src/libvirt.c | 31 ++++++++++++++++---------------
tools/virsh-snapshot.c | 3 +++
tools/virsh.pod | 15 +++++++++------
4 files changed, 29 insertions(+), 21 deletions(-)
+ * Normally, the domain will revert to the same state the domain was in while
+ * the snapshot was taken (whether inactive, running, or paused), except that
+ * disk snapshots default to reverting to inactive state. Including
+ * VIR_DOMAIN_SNAPSHOT_REVERT_RUNNING in @flags overrides the snapshot state to
+ * guarantee a running domain after the revert; or including
+ * VIR_DOMAIN_SNAPSHOT_REVERT_PAUSED in @flags guarantees a paused domain after
+ * the revert. With VIR_DOMAIN_SNAPSHOT_REVERT_STOPPED contained in the flags
+ * the domain's memory state is not restored. These three flags are mutually
+ * exclusive. While a persistent domain does not need either flag, it is not
+ * possible to revert a transient domain into an inactive state, so transient
+ * domains require the use of one of these two flags.
Change the last sentence:
While a persistent domain does not need any of these flags, it is not
possible to revert a transient domain into an inactive state, so
transient domains require the use of either the running or paused flag.
=item B<snapshot-revert> I<domain> {I<snapshot> |
I<--current>}
-[{I<--running> | I<--paused>}] [I<--force>]
+[{I<--running> | I<--paused> | I<--stopped>}] [I<--force>]
Revert the given domain to the snapshot specified by I<snapshot>, or to
the current snapshot with I<--current>. Be aware
@@ -2833,11 +2833,14 @@ the original snapshot was taken.
Normally, reverting to a snapshot leaves the domain in the state it was
at the time the snapshot was created, except that a disk snapshot with
-no vm state leaves the domain in an inactive state. Passing either the
-I<--running> or I<--paused> flag will perform additional state changes
-(such as booting an inactive domain, or pausing a running domain). Since
-transient domains cannot be inactive, it is required to use one of these
-flags when reverting to a disk snapshot of a transient domain.
+no vm state leaves the domain in an inactive state. Passing one of the
+I<--running>, I<--paused> or I<--stopped> flag will perform
additional
+state changes such as booting an inactive domain, pausing a running domain
+or shutting the domain down after the snapshot is reverted. Since
+transient domains cannot be inactive, it is required to use one of
+I<--running> or I<--paused> flags when reverting to a disk snapshot of a
+transient domain. The I<--stopped> flag cannot be used on snapshots
+of transient domains.
But here you did fine.
ACK with the one tweak in libvirt.c.
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org