diff --git a/virtManager/engine.py b/virtManager/engine.py index cef3d20ed..0e5e15d61 100644 --- a/virtManager/engine.py +++ b/virtManager/engine.py @@ -344,30 +344,39 @@ class vmmEngine(vmmGObject): return 1 def _tick_single_conn(self, conn, kwargs): + e = None try: conn.tick(**kwargs) except KeyboardInterrupt: raise - except libvirt.libvirtError, e: - from_remote = getattr(libvirt, "VIR_FROM_REMOTE", None) - from_rpc = getattr(libvirt, "VIR_FROM_RPC", None) - sys_error = getattr(libvirt, "VIR_ERR_SYSTEM_ERROR", None) + except Exception, e: + pass + if e is None: + return + + from_remote = getattr(libvirt, "VIR_FROM_REMOTE", None) + from_rpc = getattr(libvirt, "VIR_FROM_RPC", None) + sys_error = getattr(libvirt, "VIR_ERR_SYSTEM_ERROR", None) + + dom = -1 + code = -1 + if isinstance(e, libvirt.libvirtError): dom = e.get_error_domain() code = e.get_error_code() - if (dom in [from_remote, from_rpc] and - code in [sys_error]): - logging.exception("Could not refresh connection %s", - conn.get_uri()) - logging.debug("Closing connection since libvirtd " - "appears to have stopped") - else: - error_msg = _("Error polling connection '%s': %s") \ - % (conn.get_uri(), e) - self.idle_add(lambda: self.err.show_err(error_msg)) + if (dom in [from_remote, from_rpc] and + code in [sys_error]): + logging.exception("Could not refresh connection %s", + conn.get_uri()) + logging.debug("Closing connection since libvirtd " + "appears to have stopped") + else: + error_msg = _("Error polling connection '%s': %s") \ + % (conn.get_uri(), e) + self.idle_add(lambda: self.err.show_err(error_msg)) - self.idle_add(conn.close) + self.idle_add(conn.close) def increment_window_counter(self, src):