migrate: convert to singleton

This commit is contained in:
Cole Robinson 2018-03-14 17:50:22 -04:00
parent a915b089cd
commit b94a9fdffb
6 changed files with 18 additions and 24 deletions

View File

@ -341,7 +341,6 @@ class vmmDetails(vmmGObjectUI):
__gsignals__ = {
"action-exit-app": (GObject.SignalFlags.RUN_FIRST, None, []),
"action-view-manager": (GObject.SignalFlags.RUN_FIRST, None, []),
"action-migrate-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
"action-clone-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
"details-closed": (GObject.SignalFlags.RUN_FIRST, None, []),
"details-opened": (GObject.SignalFlags.RUN_FIRST, None, []),

View File

@ -39,7 +39,6 @@ from .error import vmmErrorDialog
from .host import vmmHost
from .inspection import vmmInspection
from .manager import vmmManager
from .migrate import vmmMigrateDialog
from .systray import vmmSystray
DETAILS_PERF = 1
@ -75,7 +74,6 @@ class vmmEngine(vmmGObject):
self.windowConnect = None
self.windowCreate = None
self.windowManager = None
self.windowMigrate = None
self._connstates = {}
self.err = vmmErrorDialog()
@ -181,7 +179,6 @@ class vmmEngine(vmmGObject):
self._systray = vmmSystray()
self._systray.connect("action-toggle-manager", self._do_toggle_manager)
self._systray.connect("action-show-domain", self._do_show_vm)
self._systray.connect("action-migrate-domain", self._do_show_migrate)
self._systray.connect("action-clone-domain", self._do_show_clone)
self._systray.connect("action-exit-app", self.exit_app)
@ -414,10 +411,6 @@ class vmmEngine(vmmGObject):
self.windowCreate.cleanup()
self.windowCreate = 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._connstates:
@ -663,7 +656,6 @@ class vmmEngine(vmmGObject):
obj = vmmDetails(self._connobjs[uri].get_vm(connkey))
obj.connect("action-exit-app", self.exit_app)
obj.connect("action-view-manager", self._do_show_manager)
obj.connect("action-migrate-domain", self._do_show_migrate)
obj.connect("action-clone-domain", self._do_show_clone)
obj.connect("details-opened", self.increment_window_counter)
obj.connect("details-closed", self.decrement_window_counter)
@ -697,7 +689,6 @@ class vmmEngine(vmmGObject):
return self.windowManager
obj = vmmManager()
obj.connect("action-migrate-domain", self._do_show_migrate)
obj.connect("action-clone-domain", self._do_show_clone)
obj.connect("action-show-domain", self._do_show_vm)
obj.connect("action-show-create", self._do_show_create)
@ -744,17 +735,6 @@ class vmmEngine(vmmGObject):
except Exception as e:
src.err.show_err(_("Error launching manager: %s") % str(e))
def _do_show_migrate(self, src, uri, connkey):
try:
vm = self._connobjs[uri].get_vm(connkey)
if not self.windowMigrate:
self.windowMigrate = vmmMigrateDialog()
self.windowMigrate.show(src.topwin, vm)
except Exception as e:
src.err.show_err(_("Error launching migrate dialog: %s") % str(e))
def _do_show_clone(self, src, uri, connkey):
conn = self._connobjs[uri]
connstate = self._connstates[uri]

View File

@ -95,7 +95,6 @@ class vmmManager(vmmGObjectUI):
"action-show-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
"action-show-host": (GObject.SignalFlags.RUN_FIRST, None, [str]),
"action-show-create": (GObject.SignalFlags.RUN_FIRST, None, [str]),
"action-migrate-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
"action-clone-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
"action-exit-app": (GObject.SignalFlags.RUN_FIRST, None, []),
"manager-closed": (GObject.SignalFlags.RUN_FIRST, None, []),

View File

@ -41,6 +41,18 @@ NUM_COLS = 3
class vmmMigrateDialog(vmmGObjectUI):
_instance = None
@classmethod
def show_instance(cls, parentobj, vm):
try:
if not cls._instance:
cls._instance = cls()
cls._instance.show(parentobj.topwin, vm)
except Exception as e:
parentobj.err.show_err(
_("Error launching migrate dialog: %s") % str(e))
def __init__(self):
vmmGObjectUI.__init__(self, "migrate.ui", "vmm-migrate")
self.vm = None

View File

@ -33,7 +33,6 @@ class vmmSystray(vmmGObject):
__gsignals__ = {
"action-toggle-manager": (GObject.SignalFlags.RUN_FIRST, None, []),
"action-view-manager": (GObject.SignalFlags.RUN_FIRST, None, []),
"action-migrate-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
"action-clone-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
"action-show-host": (GObject.SignalFlags.RUN_FIRST, None, [str]),
"action-show-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),

View File

@ -131,7 +131,7 @@ class VMActionMenu(_VMMenu):
self._add_action(_("Clone..."), "clone",
_make_emit_cb("action-clone-domain"), iconname=None)
self._add_action(_("Migrate..."), "migrate",
_make_emit_cb("action-migrate-domain"), iconname=None)
VMActionUI.migrate, iconname=None)
self._add_action(_("_Delete"), "delete",
VMActionUI.delete, iconname=Gtk.STOCK_DELETE)
@ -333,3 +333,8 @@ class VMActionUI(object):
def delete(src, vm):
from .delete import vmmDeleteDialog
vmmDeleteDialog.show_instance(src, vm)
@staticmethod
def migrate(src, vm):
from .migrate import vmmMigrateDialog
vmmMigrateDialog.show_instance(src, vm)