diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-05-16 18:26:59 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-05-16 18:26:59 +0000 |
commit | a87b4e36e9a0ce6d565cc9ea38fcff523271e9ff (patch) | |
tree | 203b6f6c578452f362ea079bf8897a7dc8e3ec15 | |
parent | 67445d708425be11d05d405190a2033d8cae9db1 (diff) | |
parent | 81e50b746b4d35f98b0f86c46c6b9ec3c4ee6442 (diff) | |
download | nova-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.py | 4 | ||||
-rwxr-xr-x | nova/virt/libvirt/driver.py | 7 |
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() |