connection: Add explicit API for getting virConnect object

This commit is contained in:
Cole Robinson 2014-03-20 13:34:34 -04:00
parent 7cc76a9c54
commit 994b1fa4f4
4 changed files with 11 additions and 9 deletions

View File

@ -1470,7 +1470,7 @@ class vmmDomain(vmmLibvirtObject):
if unsafe:
flags |= libvirt.VIR_MIGRATE_UNSAFE
destconn = destconn.get_backend().libvirtconn
destconn = destconn.get_backend().get_conn_for_api_arg()
logging.debug("Migrating: conn=%s flags=%s dname=%s uri=%s rate=%s",
destconn, flags, newname, interface, rate)

View File

@ -89,7 +89,7 @@ class CPUValues(object):
if (conn and
conn.check_support(conn.SUPPORT_CONN_CPU_MODEL_NAMES)):
self._cpus = [CPUValuesModel(i) for i in
conn.libvirtconn.getCPUModelNames(arch, 0)]
conn.getCPUModelNames(arch, 0)]
return self._cpus
return []

View File

@ -104,10 +104,11 @@ class VirtualConnection(object):
# Properties #
##############
# Proxy virConnect API calls
def __getattr__(self, attr):
if attr in self.__dict__:
return self.__dict__[attr]
# Proxy virConnect API calls
libvirtconn = self.__dict__.get("_libvirtconn")
return getattr(libvirtconn, attr)
@ -115,15 +116,16 @@ class VirtualConnection(object):
return self._uri or self._open_uri
uri = property(_get_uri)
libvirtconn = property(lambda self: getattr(self, "_libvirtconn"))
def _get_caps(self):
if not self._caps:
self._caps = CapabilitiesParser.Capabilities(
self.libvirtconn.getCapabilities())
self._libvirtconn.getCapabilities())
return self._caps
caps = property(_get_caps)
def get_conn_for_api_arg(self):
return self._libvirtconn
##############
# Public API #
@ -274,7 +276,7 @@ class VirtualConnection(object):
if not self.check_support(support.SUPPORT_CONN_LIBVERSION):
self._daemon_version = 0
else:
self._daemon_version = self.libvirtconn.getLibVersion()
self._daemon_version = self._libvirtconn.getLibVersion()
return self._daemon_version
def conn_version(self):
@ -285,7 +287,7 @@ class VirtualConnection(object):
if not self.check_support(support.SUPPORT_CONN_GETVERSION):
self._conn_version = 0
else:
self._conn_version = self.libvirtconn.getVersion()
self._conn_version = self._libvirtconn.getVersion()
return self._conn_version

View File

@ -365,7 +365,7 @@ def check_support(virtconn, feature, data=None):
@returns: True if feature is supported, False otherwise
"""
if "VirtualConnection" in repr(data):
data = data.libvirtconn
data = data.get_conn_for_api_arg()
sobj = _support_objs[feature - 1]
return sobj.check_support(virtconn, data)