On 05/28/2012 10:20 AM, Daniel P. Berrange wrote: > From: "Daniel P. Berrange" <berrange@xxxxxxxxxx> > > A core use case of the hook scripts is to be able to do things > to a guest's network configuration. It is possible to hook into > the 'start' operation for a QEMU guest which runs just before > the guest is started. The TAP devices will exist at this point, > but the QEMU process will not. It can be desirable to have a > 'started' hook too, which runs once QEMU has started. > > If libvirtd is restarted it will re-populate firewall rules, > but there is no QEMU hook to trigger for existing domains. > This is solved with a 'reconnect' hook. As a test of its usefulness, I applied this patch to my tree and tried it out with a modified version of http://wiki.libvirt.org/page/Networking#Forwarding_Incoming_Connections which deletes and re-adds the DNAT and FORWARD rules when libvirtd is restarted. As expected, the port forwarding to the guest continues to work across restarts of libvirtd, so having these new hooks is a definite win. I also applied the final patch in Stefan's dhcp snooping series, and checked out the xml handed to the hook script for presence of the guest's learned IP address. It turns out that (for Fedora 14 guest anyway) the IP address *is* present in the domain XML by the time the "started" hook is called, but I believe this is just a coincidence. As I mentioned in the thread about libvirt-1.0, I think it would be really useful for odd networking setups if there was a hook that was called any time something notable in the network setup of a guest changed (such as a new DHCP lease acquisition being detected) (really, in the general sense, it would be nice to have a hook called any time something happened which made any actionable change in the contents of a dumpxml of the domain). None of that should detract from the usefulness of this patch as it stands, though - it definitely has my "functional ACK" :-) -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list