Fixes bug 767947

If libvirt was restarted, a libvirt.libvirtError was raised with error
domain libvirt.VIR_FROM_RPC when trying to use the existing connection.

Change-Id: Ib3d4ff23aadf5a0c93dde0c37c5686bf404ce9de
This commit is contained in:
Alvaro Lopez Garcia
2011-11-30 12:25:00 +01:00
parent dcc0d41eca
commit 2c1280c49f

View File

@@ -1024,6 +1024,31 @@ class LibvirtConnTestCase(test.TestCase):
ip = conn.get_host_ip_addr()
self.assertEquals(ip, FLAGS.my_ip)
@test.skip_if(missing_libvirt(), "Test requires libvirt")
def test_broken_connection(self):
for (error, domain) in (
(libvirt.VIR_ERR_SYSTEM_ERROR, libvirt.VIR_FROM_REMOTE),
(libvirt.VIR_ERR_SYSTEM_ERROR, libvirt.VIR_FROM_RPC)):
conn = connection.LibvirtConnection(False)
self.mox.StubOutWithMock(conn, "_wrapped_conn")
self.mox.StubOutWithMock(conn._wrapped_conn, "getCapabilities")
self.mox.StubOutWithMock(libvirt.libvirtError, "get_error_code")
self.mox.StubOutWithMock(libvirt.libvirtError, "get_error_domain")
conn._wrapped_conn.getCapabilities().AndRaise(
libvirt.libvirtError("fake failure"))
libvirt.libvirtError.get_error_code().AndReturn(error)
libvirt.libvirtError.get_error_domain().AndReturn(domain)
self.mox.ReplayAll()
self.assertFalse(conn._test_connection())
self.mox.UnsetStubs()
def test_volume_in_mapping(self):
conn = connection.LibvirtConnection(False)
swap = {'device_name': '/dev/sdb',