mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-25 18:55:27 -06:00
baseclass: Centralize exception reporting
Also add some checks to make sure subclasses always specify a proper cleanup method
This commit is contained in:
parent
d5a59426ba
commit
5f22897f94
@ -51,4 +51,7 @@ class vmmAbout(vmmGObjectUI):
|
||||
self.topwin.hide()
|
||||
return 1
|
||||
|
||||
def _cleanup(self):
|
||||
pass
|
||||
|
||||
vmmGObjectUI.type_register(vmmAbout)
|
||||
|
@ -154,20 +154,16 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
|
||||
return 1
|
||||
|
||||
def cleanup(self):
|
||||
def _cleanup(self):
|
||||
self.close()
|
||||
vmmGObjectUI.cleanup(self)
|
||||
|
||||
try:
|
||||
self.vm = None
|
||||
self.conn = None
|
||||
self._dev = None
|
||||
self.vm = None
|
||||
self.conn = None
|
||||
self._dev = None
|
||||
|
||||
if self.storage_browser:
|
||||
self.storage_browser.cleanup()
|
||||
self.storage_browser = None
|
||||
except:
|
||||
logging.exception("Error cleaning up addhw")
|
||||
if self.storage_browser:
|
||||
self.storage_browser.cleanup()
|
||||
self.storage_browser = None
|
||||
|
||||
def remove_timers(self):
|
||||
try:
|
||||
|
@ -163,8 +163,7 @@ class vmmAsyncJob(vmmGObjectUI):
|
||||
self.cleanup()
|
||||
return self._get_error()
|
||||
|
||||
def cleanup(self):
|
||||
vmmGObjectUI.cleanup(self)
|
||||
def _cleanup(self):
|
||||
self.bg_thread = None
|
||||
self.cancel_job = None
|
||||
self.cancel_args = None
|
||||
|
@ -82,9 +82,14 @@ class vmmGObject(GObject):
|
||||
self.disconnect(h)
|
||||
for h in self._gobject_timeouts[:]:
|
||||
self.remove_gobject_timeout(h)
|
||||
|
||||
self._cleanup()
|
||||
except:
|
||||
logging.exception("Error cleaning up %s" % self)
|
||||
|
||||
def _cleanup(self):
|
||||
raise NotImplementedError("_cleanup must be implemented in subclass")
|
||||
|
||||
# Custom signal implementations
|
||||
# These functions duplicate gobject signal behavior since it's
|
||||
# needed for some TUI functionality
|
||||
@ -254,6 +259,9 @@ class vmmGObjectUI(vmmGObject):
|
||||
self.gladefile = None
|
||||
self.err = None
|
||||
|
||||
def _cleanup(self):
|
||||
raise NotImplementedError("_cleanup must be implemented in subclass")
|
||||
|
||||
def close(self, ignore1=None, ignore2=None):
|
||||
pass
|
||||
|
||||
|
@ -18,8 +18,6 @@
|
||||
# MA 02110-1301 USA.
|
||||
#
|
||||
|
||||
import logging
|
||||
|
||||
import virtManager.uihelpers as uihelpers
|
||||
import virtManager.util as util
|
||||
from virtManager.baseclass import vmmGObjectUI
|
||||
@ -62,21 +60,16 @@ class vmmChooseCD(vmmGObjectUI):
|
||||
self.topwin.set_transient_for(parent)
|
||||
self.topwin.show()
|
||||
|
||||
def cleanup(self):
|
||||
def _cleanup(self):
|
||||
self.close()
|
||||
|
||||
try:
|
||||
self.vm = None
|
||||
self.conn = None
|
||||
self.disk = None
|
||||
self.vm = None
|
||||
self.conn = None
|
||||
self.disk = None
|
||||
|
||||
if self.storage_browser:
|
||||
self.storage_browser.cleanup()
|
||||
self.storage_browser = None
|
||||
except:
|
||||
logging.exception("Error cleaning up choosecd")
|
||||
|
||||
vmmGObjectUI.cleanup(self)
|
||||
if self.storage_browser:
|
||||
self.storage_browser.cleanup()
|
||||
self.storage_browser = None
|
||||
|
||||
def reset_state(self):
|
||||
cd_path = self.widget("cd-path")
|
||||
|
@ -196,7 +196,7 @@ class vmmCloneVM(vmmGObjectUI):
|
||||
|
||||
return 1
|
||||
|
||||
def cleanup(self):
|
||||
def _cleanup(self):
|
||||
self.close()
|
||||
|
||||
self.conn = None
|
||||
@ -211,8 +211,6 @@ class vmmCloneVM(vmmGObjectUI):
|
||||
self.storage_browser.cleanup()
|
||||
self.storage_browser = None
|
||||
|
||||
vmmGObjectUI.cleanup(self)
|
||||
|
||||
def change_mac_close(self, ignore1=None, ignore2=None):
|
||||
self.change_mac.hide()
|
||||
return 1
|
||||
|
@ -107,6 +107,9 @@ class vmmConnect(vmmGObjectUI):
|
||||
self.topwin.set_transient_for(parent)
|
||||
self.topwin.present()
|
||||
|
||||
def _cleanup(self):
|
||||
pass
|
||||
|
||||
def set_initial_state(self):
|
||||
stock_img = gtk.image_new_from_stock(gtk.STOCK_CONNECT,
|
||||
gtk.ICON_SIZE_BUTTON)
|
||||
|
@ -914,9 +914,7 @@ class vmmConnection(vmmGObject):
|
||||
|
||||
self._change_state(self.STATE_DISCONNECTED)
|
||||
|
||||
def cleanup(self):
|
||||
# Do this first, so signals are unregistered before we change state
|
||||
vmmGObject.cleanup(self)
|
||||
def _cleanup(self):
|
||||
self.close()
|
||||
self.connectError = None
|
||||
|
||||
|
@ -210,11 +210,9 @@ class Viewer(vmmGObject):
|
||||
def close(self):
|
||||
raise NotImplementedError()
|
||||
|
||||
def cleanup(self):
|
||||
def _cleanup(self):
|
||||
self.close()
|
||||
|
||||
vmmGObject.cleanup(self)
|
||||
|
||||
if self.display:
|
||||
self.display.destroy()
|
||||
self.display = None
|
||||
@ -590,8 +588,7 @@ class vmmConsolePages(vmmGObjectUI):
|
||||
return 1
|
||||
return 0
|
||||
|
||||
def cleanup(self):
|
||||
vmmGObjectUI.cleanup(self)
|
||||
def _cleanup(self):
|
||||
self.vm = None
|
||||
|
||||
if self.viewer:
|
||||
|
@ -157,7 +157,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
|
||||
return 1
|
||||
|
||||
def cleanup(self):
|
||||
def _cleanup(self):
|
||||
self.close()
|
||||
self.remove_conn()
|
||||
|
||||
@ -170,14 +170,9 @@ class vmmCreate(vmmGObjectUI):
|
||||
self.disk = None
|
||||
self.nic = None
|
||||
|
||||
try:
|
||||
if self.storage_browser:
|
||||
self.storage_browser.cleanup()
|
||||
self.storage_browser = None
|
||||
except:
|
||||
logging.exception("Error cleaning up create")
|
||||
|
||||
vmmGObjectUI.cleanup(self)
|
||||
if self.storage_browser:
|
||||
self.storage_browser.cleanup()
|
||||
self.storage_browser = None
|
||||
|
||||
def remove_timers(self):
|
||||
try:
|
||||
|
@ -151,25 +151,20 @@ class vmmCreateInterface(vmmGObjectUI):
|
||||
|
||||
return 1
|
||||
|
||||
def cleanup(self):
|
||||
def _cleanup(self):
|
||||
self.close()
|
||||
|
||||
try:
|
||||
self.conn = None
|
||||
self.interface = None
|
||||
self.conn = None
|
||||
self.interface = None
|
||||
|
||||
self.ip_config.destroy()
|
||||
self.ip_config = None
|
||||
self.ip_config.destroy()
|
||||
self.ip_config = None
|
||||
|
||||
self.bridge_config.destroy()
|
||||
self.bridge_config = None
|
||||
self.bridge_config.destroy()
|
||||
self.bridge_config = None
|
||||
|
||||
self.bond_config.destroy()
|
||||
self.bond_config = None
|
||||
except:
|
||||
logging.exception("Error cleaning up addiface")
|
||||
|
||||
vmmGObjectUI.cleanup(self)
|
||||
self.bond_config.destroy()
|
||||
self.bond_config = None
|
||||
|
||||
###########################
|
||||
# Initialization routines #
|
||||
|
@ -80,12 +80,10 @@ class vmmCreateNetwork(vmmGObjectUI):
|
||||
self.topwin.hide()
|
||||
return 1
|
||||
|
||||
def cleanup(self):
|
||||
def _cleanup(self):
|
||||
self.close()
|
||||
self.conn = None
|
||||
|
||||
vmmGObjectUI.cleanup(self)
|
||||
|
||||
def set_initial_state(self):
|
||||
notebook = self.widget("create-pages")
|
||||
notebook.set_show_tabs(False)
|
||||
|
@ -113,14 +113,12 @@ class vmmCreatePool(vmmGObjectUI):
|
||||
self.topwin.hide()
|
||||
return 1
|
||||
|
||||
def cleanup(self):
|
||||
def _cleanup(self):
|
||||
self.close()
|
||||
|
||||
self.conn = None
|
||||
self._pool = None
|
||||
|
||||
vmmGObjectUI.cleanup(self)
|
||||
|
||||
def set_initial_state(self):
|
||||
self.widget("pool-pages").set_show_tabs(False)
|
||||
|
||||
|
@ -80,15 +80,11 @@ class vmmCreateVolume(vmmGObjectUI):
|
||||
self.set_modal(False)
|
||||
return 1
|
||||
|
||||
def cleanup(self):
|
||||
def _cleanup(self):
|
||||
self.close()
|
||||
vmmGObjectUI.cleanup(self)
|
||||
|
||||
try:
|
||||
self.conn = None
|
||||
self.parent_pool = None
|
||||
except:
|
||||
logging.exception("Error cleaning up addvol")
|
||||
self.conn = None
|
||||
self.parent_pool = None
|
||||
|
||||
def set_name_hint(self, hint):
|
||||
self.name_hint = hint
|
||||
|
@ -81,14 +81,12 @@ class vmmDeleteDialog(vmmGObjectUI):
|
||||
self.conn = None
|
||||
return 1
|
||||
|
||||
def cleanup(self):
|
||||
def _cleanup(self):
|
||||
self.close()
|
||||
|
||||
self.vm = None
|
||||
self.conn = None
|
||||
|
||||
vmmGObjectUI.cleanup(self)
|
||||
|
||||
def reset_state(self):
|
||||
|
||||
# Set VM name in title'
|
||||
|
@ -476,38 +476,33 @@ class vmmDetails(vmmGObjectUI):
|
||||
self.hw_selected()
|
||||
self.refresh_vm_state()
|
||||
|
||||
def cleanup(self):
|
||||
def _cleanup(self):
|
||||
self.close()
|
||||
|
||||
try:
|
||||
self.oldhwrow = None
|
||||
self.oldhwrow = None
|
||||
|
||||
if self.addhw:
|
||||
self.addhw.cleanup()
|
||||
self.addhw = None
|
||||
if self.addhw:
|
||||
self.addhw.cleanup()
|
||||
self.addhw = None
|
||||
|
||||
if self.storage_browser:
|
||||
self.storage_browser.cleanup()
|
||||
self.storage_browser = None
|
||||
if self.storage_browser:
|
||||
self.storage_browser.cleanup()
|
||||
self.storage_browser = None
|
||||
|
||||
for key in self.media_choosers:
|
||||
if self.media_choosers[key]:
|
||||
self.media_choosers[key].cleanup()
|
||||
self.media_choosers = {}
|
||||
for key in self.media_choosers:
|
||||
if self.media_choosers[key]:
|
||||
self.media_choosers[key].cleanup()
|
||||
self.media_choosers = {}
|
||||
|
||||
for serial in self.serial_tabs:
|
||||
self._close_serial_tab(serial)
|
||||
for serial in self.serial_tabs:
|
||||
self._close_serial_tab(serial)
|
||||
|
||||
self.console.cleanup()
|
||||
self.console = None
|
||||
self.console.cleanup()
|
||||
self.console = None
|
||||
|
||||
self.vm = None
|
||||
self.conn = None
|
||||
self.addhwmenu = None
|
||||
except:
|
||||
logging.exception("Error cleaning up details")
|
||||
|
||||
vmmGObjectUI.cleanup(self)
|
||||
self.vm = None
|
||||
self.conn = None
|
||||
self.addhwmenu = None
|
||||
|
||||
def show(self):
|
||||
vis = self.is_visible()
|
||||
|
@ -174,7 +174,6 @@ class vmmDomain(vmmLibvirtObject):
|
||||
|
||||
self._libvirt_init()
|
||||
|
||||
|
||||
def _libvirt_init(self):
|
||||
"""
|
||||
Initialization to do if backed by a libvirt virDomain
|
||||
|
@ -465,56 +465,52 @@ class vmmEngine(vmmGObject):
|
||||
not self.systray.is_visible()):
|
||||
self.exit_app(src)
|
||||
|
||||
def cleanup(self):
|
||||
try:
|
||||
vmmGObject.cleanup(self)
|
||||
uihelpers.cleanup()
|
||||
halhelper.cleanup()
|
||||
self.err = None
|
||||
def _cleanup(self):
|
||||
uihelpers.cleanup()
|
||||
halhelper.cleanup()
|
||||
self.err = None
|
||||
|
||||
if self.inspection:
|
||||
self.inspection.cleanup()
|
||||
self.inspection = None
|
||||
if self.inspection:
|
||||
self.inspection.cleanup()
|
||||
self.inspection = None
|
||||
|
||||
if self.timer != None:
|
||||
gobject.source_remove(self.timer)
|
||||
if self.timer != None:
|
||||
gobject.source_remove(self.timer)
|
||||
|
||||
if self.systray:
|
||||
self.systray.cleanup()
|
||||
self.systray = None
|
||||
if self.systray:
|
||||
self.systray.cleanup()
|
||||
self.systray = None
|
||||
|
||||
self.get_manager()
|
||||
if self.windowManager:
|
||||
self.windowManager.cleanup()
|
||||
self.windowManager = None
|
||||
self.get_manager()
|
||||
if self.windowManager:
|
||||
self.windowManager.cleanup()
|
||||
self.windowManager = None
|
||||
|
||||
if self.windowPreferences:
|
||||
self.windowPreferences.cleanup()
|
||||
self.windowPreferences = None
|
||||
if self.windowPreferences:
|
||||
self.windowPreferences.cleanup()
|
||||
self.windowPreferences = None
|
||||
|
||||
if self.windowAbout:
|
||||
self.windowAbout.cleanup()
|
||||
self.windowAbout = None
|
||||
if self.windowAbout:
|
||||
self.windowAbout.cleanup()
|
||||
self.windowAbout = None
|
||||
|
||||
if self.windowConnect:
|
||||
self.windowConnect.cleanup()
|
||||
self.windowConnect = None
|
||||
if self.windowConnect:
|
||||
self.windowConnect.cleanup()
|
||||
self.windowConnect = None
|
||||
|
||||
if self.windowCreate:
|
||||
self.windowCreate.cleanup()
|
||||
self.windowCreate = None
|
||||
if self.windowCreate:
|
||||
self.windowCreate.cleanup()
|
||||
self.windowCreate = None
|
||||
|
||||
if self.windowMigrate:
|
||||
self.windowMigrate.cleanup()
|
||||
self.windowMigrate = None
|
||||
if self.windowMigrate:
|
||||
self.windowMigrate.cleanup()
|
||||
self.windowMigrate = None
|
||||
|
||||
# Do this last, so any manually 'disconnected' signals
|
||||
# take precedence over cleanup signal removal
|
||||
for uri in self.conns:
|
||||
self.cleanup_conn(uri)
|
||||
self.conns = {}
|
||||
except:
|
||||
logging.exception("Error cleaning up engine")
|
||||
# Do this last, so any manually 'disconnected' signals
|
||||
# take precedence over cleanup signal removal
|
||||
for uri in self.conns:
|
||||
self.cleanup_conn(uri)
|
||||
self.conns = {}
|
||||
|
||||
def exit_app(self, src):
|
||||
if self.err is None:
|
||||
|
@ -55,6 +55,9 @@ class vmmErrorDialog(vmmGObject):
|
||||
self._parent = parent
|
||||
self._simple = None
|
||||
|
||||
def _cleanup(self):
|
||||
pass
|
||||
|
||||
def set_parent(self, parent):
|
||||
self._parent = parent
|
||||
def get_parent(self):
|
||||
|
@ -98,8 +98,7 @@ class vmmHalHelper(vmmGObject):
|
||||
|
||||
self._dbus_connect()
|
||||
|
||||
def cleanup(self):
|
||||
vmmGObject.cleanup(self)
|
||||
def _cleanup(self):
|
||||
self.bus = None
|
||||
self.hal_iface = None
|
||||
|
||||
|
@ -305,40 +305,35 @@ class vmmHost(vmmGObjectUI):
|
||||
|
||||
return 1
|
||||
|
||||
def cleanup(self):
|
||||
def _cleanup(self):
|
||||
self.close()
|
||||
|
||||
try:
|
||||
self.conn = None
|
||||
self.conn = None
|
||||
|
||||
if self.addnet:
|
||||
self.addnet.cleanup()
|
||||
self.addnet = None
|
||||
if self.addnet:
|
||||
self.addnet.cleanup()
|
||||
self.addnet = None
|
||||
|
||||
if self.addpool:
|
||||
self.addpool.cleanup()
|
||||
self.addpool = None
|
||||
if self.addpool:
|
||||
self.addpool.cleanup()
|
||||
self.addpool = None
|
||||
|
||||
if self.addvol:
|
||||
self.addvol.cleanup()
|
||||
self.addvol = None
|
||||
if self.addvol:
|
||||
self.addvol.cleanup()
|
||||
self.addvol = None
|
||||
|
||||
if self.addinterface:
|
||||
self.addinterface.cleanup()
|
||||
self.addinterface = None
|
||||
if self.addinterface:
|
||||
self.addinterface.cleanup()
|
||||
self.addinterface = None
|
||||
|
||||
self.volmenu.destroy()
|
||||
self.volmenu = None
|
||||
self.volmenu.destroy()
|
||||
self.volmenu = None
|
||||
|
||||
self.cpu_usage_graph.destroy()
|
||||
self.cpu_usage_graph = None
|
||||
self.cpu_usage_graph.destroy()
|
||||
self.cpu_usage_graph = None
|
||||
|
||||
self.memory_usage_graph.destroy()
|
||||
self.memory_usage_graph = None
|
||||
except:
|
||||
logging.exception("Error cleaning up host dialog")
|
||||
|
||||
vmmGObjectUI.cleanup(self)
|
||||
self.memory_usage_graph.destroy()
|
||||
self.memory_usage_graph = None
|
||||
|
||||
def show_help(self, src_ignore):
|
||||
self.emit("action-show-help", "virt-manager-host-window")
|
||||
|
@ -43,16 +43,11 @@ class vmmInspection(vmmGObject):
|
||||
self._conns = dict()
|
||||
self._vmseen = dict()
|
||||
|
||||
def cleanup(self):
|
||||
try:
|
||||
vmmGObject.cleanup(self)
|
||||
|
||||
self._thread = None
|
||||
self._q = Queue()
|
||||
self._conns = {}
|
||||
self._vmseen = {}
|
||||
except:
|
||||
pass
|
||||
def _cleanup(self):
|
||||
self._thread = None
|
||||
self._q = Queue()
|
||||
self._conns = {}
|
||||
self._vmseen = {}
|
||||
|
||||
# Called by the main thread whenever a connection is added or
|
||||
# removed. We tell the inspection thread, so it can track
|
||||
|
@ -46,6 +46,9 @@ class vmmLibvirtObject(vmmGObject):
|
||||
self._inactive_xml_flags = 0
|
||||
self._active_xml_flags = 0
|
||||
|
||||
def _cleanup(self):
|
||||
pass
|
||||
|
||||
def _get_conn(self):
|
||||
return self._conn
|
||||
conn = property(_get_conn)
|
||||
|
@ -18,8 +18,6 @@
|
||||
# MA 02110-1301 USA.
|
||||
#
|
||||
|
||||
import logging
|
||||
|
||||
import gtk
|
||||
|
||||
import virtManager.uihelpers as uihelpers
|
||||
@ -186,36 +184,29 @@ class vmmManager(vmmGObjectUI):
|
||||
return 1
|
||||
|
||||
|
||||
def cleanup(self):
|
||||
def _cleanup(self):
|
||||
self.close()
|
||||
|
||||
try:
|
||||
self.rows = None
|
||||
self.rows = None
|
||||
|
||||
self.diskcol = None
|
||||
self.guestcpucol = None
|
||||
self.hostcpucol = None
|
||||
self.netcol = None
|
||||
self.diskcol = None
|
||||
self.guestcpucol = None
|
||||
self.hostcpucol = None
|
||||
self.netcol = None
|
||||
|
||||
if self.delete_dialog:
|
||||
self.delete_dialog.cleanup()
|
||||
self.delete_dialog = None
|
||||
|
||||
self.vmmenu.destroy()
|
||||
self.vmmenu = None
|
||||
self.vmmenu_items = None
|
||||
self.vmmenushutdown.destroy()
|
||||
self.vmmenushutdown = None
|
||||
self.vmmenushutdown_items = None
|
||||
self.connmenu.destroy()
|
||||
self.connmenu = None
|
||||
self.connmenu_items = None
|
||||
|
||||
except:
|
||||
logging.exception("Error cleaning up manager")
|
||||
|
||||
vmmGObjectUI.cleanup(self)
|
||||
if self.delete_dialog:
|
||||
self.delete_dialog.cleanup()
|
||||
self.delete_dialog = None
|
||||
|
||||
self.vmmenu.destroy()
|
||||
self.vmmenu = None
|
||||
self.vmmenu_items = None
|
||||
self.vmmenushutdown.destroy()
|
||||
self.vmmenushutdown = None
|
||||
self.vmmenushutdown_items = None
|
||||
self.connmenu.destroy()
|
||||
self.connmenu = None
|
||||
self.connmenu_items = None
|
||||
|
||||
def is_visible(self):
|
||||
return bool(self.topwin.flags() & gtk.VISIBLE)
|
||||
|
@ -67,6 +67,9 @@ class vmmMediaDevice(vmmGObject):
|
||||
self.nodedev_obj = nodedev_obj
|
||||
self.poll_signal = None
|
||||
|
||||
def _cleanup(self):
|
||||
pass
|
||||
|
||||
def get_path(self):
|
||||
return self.path
|
||||
|
||||
|
@ -92,7 +92,7 @@ class vmmMigrateDialog(vmmGObjectUI):
|
||||
self.widget("migrate-advanced-expander").set_expanded(False)
|
||||
return 1
|
||||
|
||||
def cleanup(self):
|
||||
def _cleanup(self):
|
||||
self.close()
|
||||
|
||||
self.vm = None
|
||||
@ -103,8 +103,6 @@ class vmmMigrateDialog(vmmGObjectUI):
|
||||
# Not sure why we need to do this manually, but it matters
|
||||
self.widget("migrate-dest").get_model().clear()
|
||||
|
||||
vmmGObjectUI.cleanup(self)
|
||||
|
||||
def init_state(self):
|
||||
# [hostname, conn, can_migrate, tooltip]
|
||||
dest_model = gtk.ListStore(str, object, bool, str)
|
||||
|
@ -31,6 +31,9 @@ class vmmNetDevice(vmmGObject):
|
||||
# Used for HAL backend population
|
||||
self.hal_path = hal_path
|
||||
|
||||
def _cleanup(self):
|
||||
pass
|
||||
|
||||
def get_name(self):
|
||||
return self.name
|
||||
|
||||
|
@ -101,6 +101,9 @@ class vmmPreferences(vmmGObjectUI):
|
||||
self.topwin.set_transient_for(parent)
|
||||
self.topwin.present()
|
||||
|
||||
def _cleanup(self):
|
||||
pass
|
||||
|
||||
#########################
|
||||
# Config Change Options #
|
||||
#########################
|
||||
|
@ -41,8 +41,7 @@ class ConsoleConnection(vmmGObject):
|
||||
self.vm = vm
|
||||
self.conn = vm.conn
|
||||
|
||||
def cleanup(self):
|
||||
vmmGObject.cleanup(self)
|
||||
def _cleanup(self):
|
||||
self.close()
|
||||
|
||||
self.vm = None
|
||||
@ -67,9 +66,6 @@ class LocalConsoleConnection(ConsoleConnection):
|
||||
self.source = None
|
||||
self.origtermios = None
|
||||
|
||||
def cleanup(self):
|
||||
ConsoleConnection.cleanup(self)
|
||||
|
||||
def open(self, dev, terminal):
|
||||
if self.fd != None:
|
||||
self.close()
|
||||
@ -138,10 +134,6 @@ class LibvirtConsoleConnection(ConsoleConnection):
|
||||
self.streamToTerminal = ""
|
||||
self.terminalToStream = ""
|
||||
|
||||
def cleanup(self):
|
||||
ConsoleConnection.cleanup(self)
|
||||
self.close()
|
||||
|
||||
def _event_on_stream(self, stream, events, opaque):
|
||||
ignore = stream
|
||||
terminal = opaque
|
||||
@ -357,9 +349,7 @@ class vmmSerialConsole(vmmGObject):
|
||||
self.box.append_page(self.error_label)
|
||||
self.box.show_all()
|
||||
|
||||
def cleanup(self):
|
||||
vmmGObject.cleanup(self)
|
||||
|
||||
def _cleanup(self):
|
||||
self.console.cleanup()
|
||||
self.console = None
|
||||
|
||||
|
@ -81,19 +81,15 @@ class vmmStorageBrowser(vmmGObjectUI):
|
||||
self.addvol.close()
|
||||
return 1
|
||||
|
||||
def cleanup(self):
|
||||
def _cleanup(self):
|
||||
self.close()
|
||||
vmmGObjectUI.cleanup(self)
|
||||
|
||||
try:
|
||||
self.remove_conn()
|
||||
self.conn = None
|
||||
self.remove_conn()
|
||||
self.conn = None
|
||||
|
||||
if self.addvol:
|
||||
self.addvol.cleanup()
|
||||
self.addvol = None
|
||||
except:
|
||||
logging.exception("Error cleaning up storagebrowse")
|
||||
if self.addvol:
|
||||
self.addvol.cleanup()
|
||||
self.addvol = None
|
||||
|
||||
def remove_conn(self):
|
||||
if not self.conn:
|
||||
|
@ -18,8 +18,6 @@
|
||||
# MA 02110-1301 USA.
|
||||
#
|
||||
|
||||
import logging
|
||||
|
||||
import gtk
|
||||
|
||||
from virtManager.baseclass import vmmGObject
|
||||
@ -78,19 +76,14 @@ class vmmSystray(vmmGObject):
|
||||
self.systray_icon and
|
||||
self.systray_icon.is_embedded())
|
||||
|
||||
def cleanup(self):
|
||||
vmmGObject.cleanup(self)
|
||||
def _cleanup(self):
|
||||
self.err = None
|
||||
|
||||
try:
|
||||
self.err = None
|
||||
if self.systray_menu:
|
||||
self.systray_menu.destroy()
|
||||
self.systray_menu = None
|
||||
|
||||
if self.systray_menu:
|
||||
self.systray_menu.destroy()
|
||||
self.systray_menu = None
|
||||
|
||||
self.systray_icon = None
|
||||
except:
|
||||
logging.exception("Error cleaning up systray")
|
||||
self.systray_icon = None
|
||||
|
||||
# Initialization routines
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user