summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/tests/test_libvirt.py4
-rw-r--r--nova/virt/libvirt/driver.py13
2 files changed, 9 insertions, 8 deletions
diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py
index 0abf16801..95695b469 100644
--- a/nova/tests/test_libvirt.py
+++ b/nova/tests/test_libvirt.py
@@ -2854,11 +2854,11 @@ class LibvirtConnTestCase(test.TestCase):
conn = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)
self.mox.StubOutWithMock(conn, "_wrapped_conn")
- self.mox.StubOutWithMock(conn._wrapped_conn, "getCapabilities")
+ self.mox.StubOutWithMock(conn._wrapped_conn, "getLibVersion")
self.mox.StubOutWithMock(libvirt.libvirtError, "get_error_code")
self.mox.StubOutWithMock(libvirt.libvirtError, "get_error_domain")
- conn._wrapped_conn.getCapabilities().AndRaise(
+ conn._wrapped_conn.getLibVersion().AndRaise(
libvirt.libvirtError("fake failure"))
libvirt.libvirtError.get_error_code().AndReturn(error)
diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py
index 557818a99..c4818a56f 100644
--- a/nova/virt/libvirt/driver.py
+++ b/nova/virt/libvirt/driver.py
@@ -277,6 +277,7 @@ class LibvirtDriver(driver.ComputeDriver):
self._host_state = None
self._initiator = None
self._wrapped_conn = None
+ self._caps = None
self.read_only = read_only
self.firewall_driver = firewall.load_driver(
DEFAULT_FIREWALL_DRIVER,
@@ -362,7 +363,7 @@ class LibvirtDriver(driver.ComputeDriver):
def _test_connection(self):
try:
- self._wrapped_conn.getCapabilities()
+ self._wrapped_conn.getLibVersion()
return True
except libvirt.libvirtError as e:
if (e.get_error_code() == libvirt.VIR_ERR_SYSTEM_ERROR and
@@ -1422,11 +1423,11 @@ class LibvirtDriver(driver.ComputeDriver):
def get_host_capabilities(self):
"""Returns an instance of config.LibvirtConfigCaps representing
the capabilities of the host"""
- xmlstr = self._conn.getCapabilities()
-
- caps = vconfig.LibvirtConfigCaps()
- caps.parse_str(xmlstr)
- return caps
+ if not self._caps:
+ xmlstr = self._conn.getCapabilities()
+ self._caps = vconfig.LibvirtConfigCaps()
+ self._caps.parse_str(xmlstr)
+ return self._caps
def get_host_uuid(self):
"""Returns a UUID representing the host."""