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__ = {
|
__gsignals__ = {
|
||||||
"action-exit-app": (GObject.SignalFlags.RUN_FIRST, None, []),
|
"action-exit-app": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||||
"action-view-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-clone-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
|
||||||
"details-closed": (GObject.SignalFlags.RUN_FIRST, None, []),
|
"details-closed": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||||
"details-opened": (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 .host import vmmHost
|
||||||
from .inspection import vmmInspection
|
from .inspection import vmmInspection
|
||||||
from .manager import vmmManager
|
from .manager import vmmManager
|
||||||
from .migrate import vmmMigrateDialog
|
|
||||||
from .systray import vmmSystray
|
from .systray import vmmSystray
|
||||||
|
|
||||||
DETAILS_PERF = 1
|
DETAILS_PERF = 1
|
||||||
@ -75,7 +74,6 @@ class vmmEngine(vmmGObject):
|
|||||||
self.windowConnect = None
|
self.windowConnect = None
|
||||||
self.windowCreate = None
|
self.windowCreate = None
|
||||||
self.windowManager = None
|
self.windowManager = None
|
||||||
self.windowMigrate = None
|
|
||||||
|
|
||||||
self._connstates = {}
|
self._connstates = {}
|
||||||
self.err = vmmErrorDialog()
|
self.err = vmmErrorDialog()
|
||||||
@ -181,7 +179,6 @@ class vmmEngine(vmmGObject):
|
|||||||
self._systray = vmmSystray()
|
self._systray = vmmSystray()
|
||||||
self._systray.connect("action-toggle-manager", self._do_toggle_manager)
|
self._systray.connect("action-toggle-manager", self._do_toggle_manager)
|
||||||
self._systray.connect("action-show-domain", self._do_show_vm)
|
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-clone-domain", self._do_show_clone)
|
||||||
self._systray.connect("action-exit-app", self.exit_app)
|
self._systray.connect("action-exit-app", self.exit_app)
|
||||||
|
|
||||||
@ -414,10 +411,6 @@ class vmmEngine(vmmGObject):
|
|||||||
self.windowCreate.cleanup()
|
self.windowCreate.cleanup()
|
||||||
self.windowCreate = None
|
self.windowCreate = None
|
||||||
|
|
||||||
if self.windowMigrate:
|
|
||||||
self.windowMigrate.cleanup()
|
|
||||||
self.windowMigrate = None
|
|
||||||
|
|
||||||
# Do this last, so any manually 'disconnected' signals
|
# Do this last, so any manually 'disconnected' signals
|
||||||
# take precedence over cleanup signal removal
|
# take precedence over cleanup signal removal
|
||||||
for uri in self._connstates:
|
for uri in self._connstates:
|
||||||
@ -663,7 +656,6 @@ class vmmEngine(vmmGObject):
|
|||||||
obj = vmmDetails(self._connobjs[uri].get_vm(connkey))
|
obj = vmmDetails(self._connobjs[uri].get_vm(connkey))
|
||||||
obj.connect("action-exit-app", self.exit_app)
|
obj.connect("action-exit-app", self.exit_app)
|
||||||
obj.connect("action-view-manager", self._do_show_manager)
|
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("action-clone-domain", self._do_show_clone)
|
||||||
obj.connect("details-opened", self.increment_window_counter)
|
obj.connect("details-opened", self.increment_window_counter)
|
||||||
obj.connect("details-closed", self.decrement_window_counter)
|
obj.connect("details-closed", self.decrement_window_counter)
|
||||||
@ -697,7 +689,6 @@ class vmmEngine(vmmGObject):
|
|||||||
return self.windowManager
|
return self.windowManager
|
||||||
|
|
||||||
obj = vmmManager()
|
obj = vmmManager()
|
||||||
obj.connect("action-migrate-domain", self._do_show_migrate)
|
|
||||||
obj.connect("action-clone-domain", self._do_show_clone)
|
obj.connect("action-clone-domain", self._do_show_clone)
|
||||||
obj.connect("action-show-domain", self._do_show_vm)
|
obj.connect("action-show-domain", self._do_show_vm)
|
||||||
obj.connect("action-show-create", self._do_show_create)
|
obj.connect("action-show-create", self._do_show_create)
|
||||||
@ -744,17 +735,6 @@ class vmmEngine(vmmGObject):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
src.err.show_err(_("Error launching manager: %s") % str(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):
|
def _do_show_clone(self, src, uri, connkey):
|
||||||
conn = self._connobjs[uri]
|
conn = self._connobjs[uri]
|
||||||
connstate = self._connstates[uri]
|
connstate = self._connstates[uri]
|
||||||
|
@ -95,7 +95,6 @@ class vmmManager(vmmGObjectUI):
|
|||||||
"action-show-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
|
"action-show-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
|
||||||
"action-show-host": (GObject.SignalFlags.RUN_FIRST, None, [str]),
|
"action-show-host": (GObject.SignalFlags.RUN_FIRST, None, [str]),
|
||||||
"action-show-create": (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-clone-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
|
||||||
"action-exit-app": (GObject.SignalFlags.RUN_FIRST, None, []),
|
"action-exit-app": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||||
"manager-closed": (GObject.SignalFlags.RUN_FIRST, None, []),
|
"manager-closed": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||||
|
@ -41,6 +41,18 @@ NUM_COLS = 3
|
|||||||
|
|
||||||
|
|
||||||
class vmmMigrateDialog(vmmGObjectUI):
|
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):
|
def __init__(self):
|
||||||
vmmGObjectUI.__init__(self, "migrate.ui", "vmm-migrate")
|
vmmGObjectUI.__init__(self, "migrate.ui", "vmm-migrate")
|
||||||
self.vm = None
|
self.vm = None
|
||||||
|
@ -33,7 +33,6 @@ class vmmSystray(vmmGObject):
|
|||||||
__gsignals__ = {
|
__gsignals__ = {
|
||||||
"action-toggle-manager": (GObject.SignalFlags.RUN_FIRST, None, []),
|
"action-toggle-manager": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||||
"action-view-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-clone-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
|
||||||
"action-show-host": (GObject.SignalFlags.RUN_FIRST, None, [str]),
|
"action-show-host": (GObject.SignalFlags.RUN_FIRST, None, [str]),
|
||||||
"action-show-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
|
"action-show-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
|
||||||
|
@ -131,7 +131,7 @@ class VMActionMenu(_VMMenu):
|
|||||||
self._add_action(_("Clone..."), "clone",
|
self._add_action(_("Clone..."), "clone",
|
||||||
_make_emit_cb("action-clone-domain"), iconname=None)
|
_make_emit_cb("action-clone-domain"), iconname=None)
|
||||||
self._add_action(_("Migrate..."), "migrate",
|
self._add_action(_("Migrate..."), "migrate",
|
||||||
_make_emit_cb("action-migrate-domain"), iconname=None)
|
VMActionUI.migrate, iconname=None)
|
||||||
self._add_action(_("_Delete"), "delete",
|
self._add_action(_("_Delete"), "delete",
|
||||||
VMActionUI.delete, iconname=Gtk.STOCK_DELETE)
|
VMActionUI.delete, iconname=Gtk.STOCK_DELETE)
|
||||||
|
|
||||||
@ -333,3 +333,8 @@ class VMActionUI(object):
|
|||||||
def delete(src, vm):
|
def delete(src, vm):
|
||||||
from .delete import vmmDeleteDialog
|
from .delete import vmmDeleteDialog
|
||||||
vmmDeleteDialog.show_instance(src, vm)
|
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