[libvirt-users] Destroy autostarted network on shutdown

Hi all, I just ran into problem properly stopping a network. I have defined a network and network hook script to accomplish some preparations and cleanup. Testing my configuration (virsh net-start and virsh net-destroy) was successfully. Now I wanted to automate the lifecycle. Unfortunately I realized that an autostarted network has to be persistent and thus will not be destroyed (even if the host gets shutdown). As it won't be destroyed, my cleanup doesn't get executed and I run into trouble. What would be the preferred way to implement an autostarting and autostopping network? Thanks, Jan

On 12/06/2015 12:19 PM, Jan Grashöfer wrote:
Hi all,
I just ran into problem properly stopping a network. I have defined a network and network hook script to accomplish some preparations and cleanup. Testing my configuration (virsh net-start and virsh net-destroy) was successfully.
Now I wanted to automate the lifecycle. Unfortunately I realized that an autostarted network has to be persistent and thus will not be destroyed (even if the host gets shutdown). As it won't be destroyed, my cleanup doesn't get executed and I run into trouble.
What would be the preferred way to implement an autostarting and autostopping network?
autostarting (and autostopping) based on what event?

On 12/07/2015 01:20 PM, Jan Grashöfer wrote:
autostarting (and autostopping) based on what event? Based on start/shutdown of the host or starting/stopping libvirtd. I just wrote a script to start with systemd but as there is that autostart functionality in libvirtd this might not be the best solution.
networks with autostart set will be started when libvirtd is started if they are seen to be inactive, but they will never be stopped by libvirt. libvirtd is designed so that it can be restarted at any time without disrupting any active guest or network, and doing an auto-shutdown of the network would go against that. Also, when using libvirt's hook scripts, you need to keep in mind that the scripts cannot call back into libvirt (e.g. using virsh) as that would create a deadlock. None of that really answers your question, but hopefully it at least gives you a better idea of what you've got to work with :-)
participants (2)
-
Jan Grashöfer
-
Laine Stump