
On Tue, Oct 09, 2012 at 01:18:56PM +0200, Alexander Larsson wrote:
On tis, 2012-10-09 at 12:14 +0100, Daniel P. Berrange wrote:
On Mon, Oct 08, 2012 at 04:57:49PM +0200, Alexander Larsson wrote:
This helper registers with the session bus and libvirt and ensures that we properly save the state when the session exits. It does this in two ways:
1) Whenever the session dbus connection is disconnected (typically due to a logout) we save all domains in the session libvirtd.
2) Whenever there is a active domain in the session libvirtd we take a shutdown inhibition lock[1] which means that systemd will delay shutdown until we saved any active VMs. We then save the VM when we get a PrepareForShutdown event (or when the session dies as in 1).
[1] http://www.freedesktop.org/wiki/Software/systemd/inhibit
In general I think this is a neat idea. We currently have a nasty shell script that we trigger on host shutdown to save/migrate/etc VMs. Although it is not as featureful, I like that this code is using our APIs instead of shell code.
My primary feedback would be that this could actually be run inside libvirtd itself.
Ok, I'll try that out then.
Btw, how do i tell libvirtd to exit? Just call exit(0)?
The best way is to call virNetServerQuit() on the virNetServerPtr object since this allows it todo graceful cleanup 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 :|