summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/tests/test_libvirt.py4
-rwxr-xr-xnova/virt/libvirt/driver.py7
2 files changed, 8 insertions, 3 deletions
diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py
index c544da724..6d8332769 100644
--- a/nova/tests/test_libvirt.py
+++ b/nova/tests/test_libvirt.py
@@ -1072,6 +1072,10 @@ class LibvirtConnTestCase(test.TestCase):
libvirt_driver.LibvirtDriver._conn.listDomainsID = lambda: [0, 1]
libvirt_driver.LibvirtDriver._conn.listDefinedDomains = lambda: []
+ self.mox.StubOutWithMock(libvirt.libvirtError, "get_error_code")
+ libvirt.libvirtError.get_error_code().AndReturn(
+ libvirt.VIR_ERR_NO_DOMAIN)
+
self.mox.ReplayAll()
conn = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)
instances = conn.list_instances()
diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py
index f61f85995..12bc03e66 100755
--- a/nova/virt/libvirt/driver.py
+++ b/nova/virt/libvirt/driver.py
@@ -673,9 +673,10 @@ class LibvirtDriver(driver.ComputeDriver):
if domain_id != 0:
domain = self._conn.lookupByID(domain_id)
names.append(domain.name())
- except libvirt.libvirtError:
- # Instance was deleted while listing... ignore it
- pass
+ except libvirt.libvirtError as e:
+ if e.get_error_code() != libvirt.VIR_ERR_NO_DOMAIN:
+ # Ignore deleted instance while listing
+ raise
# extend instance list to contain also defined domains
names.extend([vm for vm in self._conn.listDefinedDomains()