There is a reboot_type parameter. For XenAPI this param is properly passed to underlying
VMOps class in nova/virt/xenapi/vmops.py which implements the reboot() for Xen.
So you can have, either proper SOFT or HARD reboot and this looks fine for me.
While in the nova/virt/libvirt/driver.py, if reboot_type=='SOFT' fails nova unconditionally
does the hard reboot what can be sometimes unexpected but at the end of the day we
want to reboot the VM.
John, looking on the reboot() function:
def reboot(self, context, instance, network_info, reboot_type,
block_ device_ info=None, bad_volumes_ callback= None)
There is a reboot_type parameter. For XenAPI this param is properly passed to underlying xenapi/ vmops.py which implements the reboot() for Xen.
VMOps class in nova/virt/
So you can have, either proper SOFT or HARD reboot and this looks fine for me.
While in the nova/virt/ libvirt/ driver. py, if reboot_type=='SOFT' fails nova unconditionally
does the hard reboot what can be sometimes unexpected but at the end of the day we
want to reboot the VM.