Add code to register/unregister vm-added signal to stop consoles from spontaneously popping up

This commit is contained in:
Hugh O. Brock 2006-08-21 14:00:32 -04:00
parent b346b8aa7f
commit 191d17e36a
4 changed files with 10 additions and 5 deletions

View File

@ -59,7 +59,7 @@ class vmmConnection(gobject.GObject):
def get_vm(self, uuid):
return self.vms[uuid]
def disconnect(self):
def close(self):
if self.vmm == None:
return
@ -71,12 +71,14 @@ class vmmConnection(gobject.GObject):
return self.hostinfo
def connect(self, name, callback):
gobject.GObject.connect(self, name, callback)
handle_id = gobject.GObject.connect(self, name, callback)
if name == "vm-added":
for uuid in self.vms.keys():
self.emit("vm-added", self.uri, uuid)
return handle_id
def host_memory_size(self):
return self.hostinfo[1]*1024

View File

@ -79,9 +79,9 @@ class vmmCreate(gobject.GObject):
})
self.set_initial_state()
self.connection.connect("vm-added", self.open_vm_console)
def show(self):
self.vm_added_handle = self.connection.connect("vm-added", self.open_vm_console)
self.topwin.show()
def _init_members(self):
@ -99,6 +99,7 @@ class vmmCreate(gobject.GObject):
self.startup_memory = 0
self.vcpus = 1
self.vm_uuid = None
self.vm_added_handle = None
def set_initial_state(self):
notebook = self.window.get_widget("create-pages")
@ -264,6 +265,8 @@ class vmmCreate(gobject.GObject):
self.window.get_widget("create-finish").show()
def close(self, ignore1=None,ignore2=None):
self.connection.disconnect(int(self.vm_added_handle))
self.vm_added_handle = None
self.topwin.hide()
return 1
@ -536,7 +539,6 @@ class vmmCreate(gobject.GObject):
message_box.destroy()
def open_vm_console(self,ignore,uri,uuid):
print "********* create.py: got vm-added signal. uuid = %s, self.vm_uuid = %s" % (uuid, self.vm_uuid)
if uuid == self.vm_uuid:
if (self.virt_method == VM_PARAVIRT):
self.emit("action-show-terminal", self.connection.get_uri(), self.vm_uuid)

View File

@ -210,6 +210,7 @@ class vmmEngine:
self.connections[uri]["windowManager"].show()
def show_create(self, uri):
if self.windowCreate == None:
self.windowCreate = vmmCreate(self.get_config(), self.get_connection(uri, False))
self.windowCreate.connect("action-show-console", self._do_show_console)

View File

@ -144,7 +144,7 @@ class vmmManager(gobject.GObject):
win.present()
def close(self, src=None, src2=None):
self.connection.disconnect()
self.connection.close()
win = self.window.get_widget("vmm-manager")
win.hide()
return 1