Looking a bit at the code across hypervisors it appears that a virt driver 'reboot' can have quite different implementations.
Switching to a hard reboot will definitely fix this issue on libvirt. I took a look at the XenServer code as well it it looks like both hard and soft reboots would leave firewall rules unconfigured... so I'm not sure this is a good all around solution. I'm actually not even sure the XenServer code would work in this case to resume an instance...
I'm actually leaning towards implementing a proper virt driver method for this so that each hypervisor can cleanly implement the correct solution.
Looking a bit at the code across hypervisors it appears that a virt driver 'reboot' can have quite different implementations.
Switching to a hard reboot will definitely fix this issue on libvirt. I took a look at the XenServer code as well it it looks like both hard and soft reboots would leave firewall rules unconfigured... so I'm not sure this is a good all around solution. I'm actually not even sure the XenServer code would work in this case to resume an instance...
I'm actually leaning towards implementing a proper virt driver method for this so that each hypervisor can cleanly implement the correct solution.