viewers: Only use openGraphics if supported

This commit is contained in:
Cole Robinson 2016-05-07 18:14:58 -04:00
parent 7cc6141618
commit e30671b53d
3 changed files with 13 additions and 7 deletions

View File

@ -1116,12 +1116,7 @@ class vmmDomain(vmmLibvirtObject):
return self._backend.openConsole(devname, stream, flags) return self._backend.openConsole(devname, stream, flags)
def open_graphics_fd(self): def open_graphics_fd(self):
try: return self._backend.openGraphicsFD(0)
fd = self._backend.openGraphicsFD(0)
except libvirt.libvirtError:
logging.debug("openGraphicsFD failed", exc_info=True)
fd = -1
return fd
def refresh_snapshots(self): def refresh_snapshots(self):
self._snapshot_list = None self._snapshot_list = None

View File

@ -139,11 +139,20 @@ class Viewer(vmmGObject):
def _get_fd_for_open(self): def _get_fd_for_open(self):
if self._ginfo.need_tunnel(): if self._ginfo.need_tunnel():
return self._tunnels.open_new() return self._tunnels.open_new()
if self._vm.conn.is_remote():
# OpenGraphics only works for local libvirtd connections
return None
if not self._vm.conn.check_support(
self._vm.conn.SUPPORT_DOMAIN_OPEN_GRAPHICS):
return None
return self._vm.open_graphics_fd() return self._vm.open_graphics_fd()
def _open(self): def _open(self):
fd = self._get_fd_for_open() fd = self._get_fd_for_open()
if fd != -1: if fd is not None:
self._open_fd(fd) self._open_fd(fd)
else: else:
self._open_host() self._open_host()

View File

@ -349,6 +349,8 @@ SUPPORT_DOMAIN_GET_METADATA = _make(function="virDomain.metadata",
SUPPORT_DOMAIN_MEMORY_STATS = _make( SUPPORT_DOMAIN_MEMORY_STATS = _make(
function="virDomain.memoryStats", run_args=()) function="virDomain.memoryStats", run_args=())
SUPPORT_DOMAIN_STATE = _make(function="virDomain.state", run_args=()) SUPPORT_DOMAIN_STATE = _make(function="virDomain.state", run_args=())
SUPPORT_DOMAIN_OPEN_GRAPHICS = _make(function="virDomain.openGraphicsFD",
version="1.2.8", hv_version={"qemu": 0})
############### ###############