diff options
Diffstat (limited to 'nova/virt')
| -rw-r--r-- | nova/virt/libvirt/driver.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py index 9b6e6e9b4..7632ad960 100644 --- a/nova/virt/libvirt/driver.py +++ b/nova/virt/libvirt/driver.py @@ -501,10 +501,20 @@ class LibvirtDriver(driver.ComputeDriver): try: virt_dom.undefineFlags( libvirt.VIR_DOMAIN_UNDEFINE_MANAGED_SAVE) - except libvirt.libvirtError as e: + except libvirt.libvirtError: LOG.debug(_("Error from libvirt during undefineFlags." " Retrying with undefine"), instance=instance) virt_dom.undefine() + except AttributeError: + # NOTE(vish): Older versions of libvirt don't support + # undefine flags, so attempt to do the + # right thing. + try: + if virt_dom.hasManagedSaveImage(0): + virt_dom.managedSaveRemove(0) + except AttributeError: + pass + virt_dom.undefine() except libvirt.libvirtError as e: errcode = e.get_error_code() LOG.error(_("Error from libvirt during undefine. " |
