mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-25 18:55:27 -06:00
viewers: Show spice error message in the UI on disconnect
This commit is contained in:
parent
0bd73da4bb
commit
3221b56ac3
@ -751,13 +751,15 @@ class vmmConsolePages(vmmGObjectUI):
|
||||
self.err.show_err(_("USB redirection error"),
|
||||
text2=str(errstr), modal=True)
|
||||
|
||||
def _viewer_disconnected_set_page(self, ssherr):
|
||||
def _viewer_disconnected_set_page(self, errdetails, ssherr):
|
||||
if self.vm.is_runable():
|
||||
# Exit was probably for legitimate reasons
|
||||
self._show_vm_status_unavailable()
|
||||
return
|
||||
|
||||
msg = _("Viewer was disconnected.")
|
||||
if errdetails:
|
||||
msg += "\n" + errdetails
|
||||
if ssherr:
|
||||
logging.debug("SSH tunnel error output: %s", ssherr)
|
||||
msg += "\n\n"
|
||||
@ -765,7 +767,7 @@ class vmmConsolePages(vmmGObjectUI):
|
||||
|
||||
self._activate_unavailable_page(msg)
|
||||
|
||||
def _viewer_disconnected(self, ignore, ssherr):
|
||||
def _viewer_disconnected(self, ignore, errdetails, ssherr):
|
||||
self.widget("console-pages").set_current_page(
|
||||
_CONSOLE_PAGE_UNAVAILABLE)
|
||||
self._close_viewer()
|
||||
@ -774,7 +776,7 @@ class vmmConsolePages(vmmGObjectUI):
|
||||
# Make sure modifiers are set correctly
|
||||
self._viewer_focus_changed()
|
||||
|
||||
self._viewer_disconnected_set_page(ssherr)
|
||||
self._viewer_disconnected_set_page(errdetails, ssherr)
|
||||
self._refresh_resizeguest_from_settings()
|
||||
|
||||
def _viewer_connected(self, ignore):
|
||||
|
@ -56,7 +56,7 @@ class Viewer(vmmGObject):
|
||||
"pointer-grab": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||
"pointer-ungrab": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||
"connected": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||
"disconnected": (GObject.SignalFlags.RUN_FIRST, None, [str]),
|
||||
"disconnected": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
|
||||
"auth-error": (GObject.SignalFlags.RUN_FIRST, None, [str, bool]),
|
||||
"auth-rejected": (GObject.SignalFlags.RUN_FIRST, None, [str]),
|
||||
"need-auth": (GObject.SignalFlags.RUN_FIRST, None, [bool, bool]),
|
||||
@ -165,9 +165,9 @@ class Viewer(vmmGObject):
|
||||
def _get_grab_keys(self):
|
||||
return self._display.get_grab_keys().as_string()
|
||||
|
||||
def _emit_disconnected(self):
|
||||
def _emit_disconnected(self, errdetails=None):
|
||||
ssherr = self._tunnels.get_err_output()
|
||||
self.emit("disconnected", ssherr)
|
||||
self.emit("disconnected", errdetails, ssherr)
|
||||
|
||||
|
||||
#######################################################
|
||||
@ -565,7 +565,12 @@ class SpiceViewer(Viewer):
|
||||
if channel.get_error():
|
||||
error = channel.get_error().message
|
||||
logging.debug("Spice channel event=%s message=%s", event, error)
|
||||
self._emit_disconnected()
|
||||
|
||||
msg = _("Encountered SPICE %(error-name)s") % {
|
||||
"error-name": event.value_nick}
|
||||
if error:
|
||||
msg += ": %s" % error
|
||||
self._emit_disconnected(msg)
|
||||
|
||||
def _fd_channel_event_cb(self, channel, event):
|
||||
# When we see any event from the channel, release the
|
||||
|
Loading…
Reference in New Issue
Block a user