summaryrefslogtreecommitdiffstats
path: root/nova/virt
diff options
context:
space:
mode:
Diffstat (limited to 'nova/virt')
-rw-r--r--nova/virt/libvirt/driver.py12
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. "