Merge "libvirt: Catch VIR_ERR_NO_DOMAIN in list_instances"

This commit is contained in:
Jenkins
2013-05-16 18:26:59 +00:00
committed by Gerrit Code Review
2 changed files with 8 additions and 3 deletions
+4
View File
@@ -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()
+4 -3
View File
@@ -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()