summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-05-16 18:26:59 +0000
committerGerrit Code Review <review@openstack.org>2013-05-16 18:26:59 +0000
commita87b4e36e9a0ce6d565cc9ea38fcff523271e9ff (patch)
tree203b6f6c578452f362ea079bf8897a7dc8e3ec15
parent67445d708425be11d05d405190a2033d8cae9db1 (diff)
parent81e50b746b4d35f98b0f86c46c6b9ec3c4ee6442 (diff)
downloadnova-a87b4e36e9a0ce6d565cc9ea38fcff523271e9ff.tar.gz
nova-a87b4e36e9a0ce6d565cc9ea38fcff523271e9ff.tar.xz
nova-a87b4e36e9a0ce6d565cc9ea38fcff523271e9ff.zip
Merge "libvirt: Catch VIR_ERR_NO_DOMAIN in list_instances"
-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()