mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-25 18:55:27 -06:00
migrate: convert to singleton
This commit is contained in:
parent
a915b089cd
commit
b94a9fdffb
@ -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, []),
|
||||
|
@ -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]
|
||||
|
@ -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, []),
|
||||
|
@ -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
|
||||
|
@ -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]),
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user