On Wed, Aug 24, 2011 at 08:23:55AM -0600, Eric Blake wrote: > On 08/24/2011 08:21 AM, Daniel P. Berrange wrote: > >>+++ b/src/qemu/qemu_driver.c > >>@@ -8804,14 +8804,16 @@ static int qemuDomainRevertToSnapshot(virDomainSnapshotPtr snapshot, > >> QEMU_ASYNC_JOB_NONE); > >> if (rc< 0) > >> goto endjob; > >>+ event = virDomainEventNewFromObj(vm, > >>+ VIR_DOMAIN_EVENT_SUSPENDED, > >>+ VIR_DOMAIN_EVENT_SUSPENDED_FROM_SNAPSHOT); > >> } else { > >> virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, > >> VIR_DOMAIN_RUNNING_FROM_SNAPSHOT); > >>+ event = virDomainEventNewFromObj(vm, > >>+ VIR_DOMAIN_EVENT_STARTED, > >>+ VIR_DOMAIN_EVENT_STARTED_FROM_SNAPSHOT); > >> } > >>- > >>- event = virDomainEventNewFromObj(vm, > >>- VIR_DOMAIN_EVENT_STARTED, > >>- VIR_DOMAIN_EVENT_STARTED_FROM_SNAPSHOT); > >> } else { > > > >This isn't so nice. The lifecycle model for VMs is > > > > shutoff<----> running<------>paused > > Even when you use virDomainCreateWithFlags(, VIR_DOMAIN_START_PAUSED)? When you do that, it should be viewed as 2 transitions. From shutoff to running, to paused. Currently we will emit a 'STARTED' event there, but are missing a SUSPENDED event there. > >This change creates a direct transition from shutoff to paused, missing > >out the running state, which will break any apps which are just looking > >to find out when guests stop/start and don't care about pause/resume. > >Also > > > > virsh start --paused $GUEST > > > >will only emit a 'VIR_DOMAIN_EVENT_STARTED', so the current beahviour for > >reverting to a paused snapshot matches that. > > > >Arguably we could *also* emit an VIR_DOMAIN_EVENT_SUSPENDED, immediately > >*after* the VIR_DOMAIN_EVENT_STARTED, in both cases though. > > This may have bigger cleanup impact, then, if we want to guarantee > both STARTED and SUSPENDED events on all code paths where we can > start life paused. I believe migration deals with it correctly. The restore/boot up paths likely need fixing Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list