diff -rup old/src/virtManager/details.py virt-manager-0.7.0/src/virtManager/details.py --- old/src/virtManager/details.py 2009-09-17 17:23:42.640307000 -0400 +++ virt-manager-0.7.0/src/virtManager/details.py 2009-09-17 17:24:09.098148000 -0400 @@ -960,11 +960,12 @@ class vmmDetails(gobject.GObject): curmem = self.window.get_widget("config-memory").get_adjustment() maxmem = self.window.get_widget("config-maxmem").get_adjustment() - if self.window.get_widget("config-memory-apply").get_property("sensitive"): - if curmem.value > maxmem.value: - curmem.value = maxmem.value - curmem.upper = maxmem.value + memval = self.config_get_memory() + maxval = self.config_get_maxmem() + if maxval < memval: + maxmem.value = memval + maxmem.lower = memval else: curmem.value = int(round(self.vm.get_memory()/1024.0)) maxmem.value = int(round(self.vm.maximum_memory()/1024.0)) @@ -1504,54 +1505,74 @@ class vmmDetails(gobject.GObject): self.vm.set_vcpu_count(vcpus) self.window.get_widget("config-vcpus-apply").set_sensitive(False) - def config_memory_changed(self, src): - self.window.get_widget("config-memory-apply").set_sensitive(True) + def config_get_maxmem(self): + maxadj = self.window.get_widget("config-maxmem").get_adjustment() + txtmax = self.window.get_widget("config-maxmem").get_text() + try: + maxmem = int(txtmax) + except: + maxmem = maxadj.value + return maxmem + + def config_get_memory(self): + memadj = self.window.get_widget("config-memory").get_adjustment() + txtmem = self.window.get_widget("config-memory").get_text() + try: + mem = int(txtmem) + except: + mem = memadj.value + return mem def config_maxmem_changed(self, src): self.window.get_widget("config-memory-apply").set_sensitive(True) - memory = self.window.get_widget("config-maxmem").get_adjustment().value - memadj = self.window.get_widget("config-memory").get_adjustment() - memadj.upper = memory - if memadj.value > memory: - memadj.value = memory + + def config_memory_changed(self, src): + self.window.get_widget("config-memory-apply").set_sensitive(True) + + maxadj = self.window.get_widget("config-maxmem").get_adjustment() + + mem = self.config_get_memory() + if maxadj.value < mem: + maxadj.value = mem + maxadj.lower = mem def config_memory_apply(self, src): self.refresh_config_memory() exc = None curmem = None - maxmem = self.window.get_widget("config-maxmem").get_adjustment() + maxmem = self.config_get_maxmem() if self.window.get_widget("config-memory").get_property("sensitive"): - curmem = self.window.get_widget("config-memory").get_adjustment() + curmem = self.config_get_memory() - logging.info("Setting max-memory for " + self.vm.get_name() + \ - " to " + str(maxmem.value)) + logging.info("Setting max-memory for " + self.vm.get_name() + + " to " + str(maxmem)) actual_cur = self.vm.get_memory() if curmem is not None: - logging.info("Setting memory for " + self.vm.get_name() + \ - " to " + str(curmem.value)) - if (maxmem.value * 1024) < actual_cur: + logging.info("Setting memory for " + self.vm.get_name() + + " to " + str(curmem)) + if (maxmem * 1024) < actual_cur: # Set current first to avoid error try: - self.vm.set_memory(curmem.value * 1024) - self.vm.set_max_memory(maxmem.value * 1024) + self.vm.set_memory(curmem * 1024) + self.vm.set_max_memory(maxmem * 1024) except Exception, e: exc = e else: try: - self.vm.set_max_memory(maxmem.value * 1024) - self.vm.set_memory(curmem.value * 1024) + self.vm.set_max_memory(maxmem * 1024) + self.vm.set_memory(curmem * 1024) except Exception, e: exc = e else: try: - self.vm.set_max_memory(maxmem.value * 1024) + self.vm.set_max_memory(maxmem * 1024) except Exception, e: exc = e if exc: - self.err.show_err(_("Error changing memory values: %s" % str(e)),\ + self.err.show_err(_("Error changing memory values: %s" % str(e)), "".join(traceback.format_exc())) else: self.window.get_widget("config-memory-apply").set_sensitive(False) diff -rup old/src/virtManager/details.py.orig virt-manager-0.7.0/src/virtManager/details.py.orig --- old/src/virtManager/details.py.orig 2009-09-17 17:23:42.778305000 -0400 +++ virt-manager-0.7.0/src/virtManager/details.py.orig 2009-09-17 17:24:08.925149000 -0400 @@ -501,7 +501,7 @@ class vmmDetails(gobject.GObject): self.update_scaling() def auth_login(self, ignore): - self.set_password() + self.set_credentials() self.activate_viewer_page() def toggle_toolbar(self, src): @@ -1309,23 +1309,44 @@ class vmmDetails(gobject.GObject): traceback.format_exc (stacktrace)) logging.error(details) - def set_password(self, src=None): - txt = self.window.get_widget("console-auth-password") - self.vncViewer.set_credential(gtkvnc.CREDENTIAL_PASSWORD, - txt.get_text()) + def set_credentials(self, src=None): + passwd = self.window.get_widget("console-auth-password") + if passwd.flags() & gtk.VISIBLE: + self.vncViewer.set_credential(gtkvnc.CREDENTIAL_PASSWORD, + passwd.get_text()) + username = self.window.get_widget("console-auth-username") + if username.flags() & gtk.VISIBLE: + self.vncViewer.set_credential(gtkvnc.CREDENTIAL_USERNAME, + username.get_text()) + + if self.window.get_widget("console-auth-remember").get_active(): + self.config.set_console_password(self.vm, passwd.get_text(), username.get_text()) def _vnc_auth_credential(self, src, credList): for i in range(len(credList)): + if credList[i] not in (gtkvnc.CREDENTIAL_PASSWORD, gtkvnc.CREDENTIAL_USERNAME, gtkvnc.CREDENTIAL_CLIENTNAME): + self.err.show_err(summary=_("Unable to provide requested credentials to the VNC server"), + details=_("The credential type %s is not supported") % (str(credList[i])), + title=_("Unable to authenticate"), + async=True) + self.vncViewerRetriesScheduled = 10 + self.vncViewer.close() + self.activate_unavailable_page(_("Unsupported console authentication type")) + return + + withUsername = False + withPassword = False + for i in range(len(credList)): logging.debug("Got credential request %s", str(credList[i])) if credList[i] == gtkvnc.CREDENTIAL_PASSWORD: - self.activate_auth_page() + withPassword = True + elif credList[i] == gtkvnc.CREDENTIAL_USERNAME: + withUsername = True elif credList[i] == gtkvnc.CREDENTIAL_CLIENTNAME: self.vncViewer.set_credential(credList[i], "libvirt-vnc") - else: - # Force it to stop re-trying - self.vncViewerRetriesScheduled = 10 - self.vncViewer.close() - self.activate_unavailable_page(_("Unsupported console authentication type")) + + if withUsername or withPassword: + self.activate_auth_page(withPassword, withUsername) def activate_unavailable_page(self, msg): self.window.get_widget("console-pages").set_current_page(PAGE_UNAVAILABLE) @@ -1336,20 +1357,41 @@ class vmmDetails(gobject.GObject): self.window.get_widget("console-pages").set_current_page(PAGE_SCREENSHOT) self.window.get_widget("details-menu-vm-screenshot").set_sensitive(True) - def activate_auth_page(self): - pw = self.config.get_console_password(self.vm) + def activate_auth_page(self, withPassword=True, withUsername=False): + (pw, username) = self.config.get_console_password(self.vm) self.window.get_widget("details-menu-vm-screenshot").set_sensitive(False) + + if withPassword: + self.window.get_widget("console-auth-password").show() + self.window.get_widget("label-auth-password").show() + else: + self.window.get_widget("console-auth-password").hide() + self.window.get_widget("label-auth-password").hide() + + if withUsername: + self.window.get_widget("console-auth-username").show() + self.window.get_widget("label-auth-username").show() + else: + self.window.get_widget("console-auth-username").hide() + self.window.get_widget("label-auth-username").hide() + + self.window.get_widget("console-auth-username").set_text(username) self.window.get_widget("console-auth-password").set_text(pw) - self.window.get_widget("console-auth-password").grab_focus() + if self.config.has_keyring(): self.window.get_widget("console-auth-remember").set_sensitive(True) - if pw != None and pw != "": + if pw != "" or username != "": self.window.get_widget("console-auth-remember").set_active(True) else: self.window.get_widget("console-auth-remember").set_active(False) else: self.window.get_widget("console-auth-remember").set_sensitive(False) self.window.get_widget("console-pages").set_current_page(PAGE_AUTHENTICATE) + if withUsername: + self.window.get_widget("console-auth-username").grab_focus() + else: + self.window.get_widget("console-auth-password").grab_focus() + def activate_viewer_page(self): self.window.get_widget("console-pages").set_current_page(PAGE_VNCVIEWER) diff -rup old/src/vmm-details.glade virt-manager-0.7.0/src/vmm-details.glade --- old/src/vmm-details.glade 2009-09-17 17:23:42.448302000 -0400 +++ virt-manager-0.7.0/src/vmm-details.glade 2009-09-17 17:25:42.970347000 -0400 @@ -1436,7 +1436,6 @@ I/O: 2 - True @@ -1572,8 +1571,8 @@ I/O: True True - 50 50 32000 5 10 0 - 1 + 50 50 32000 1 25 0 + 2 True GTK_UPDATE_IF_VALID @@ -1610,8 +1609,8 @@ I/O: True True - 50 50 32000 5 10 0 - 1 + 50 50 32000 1 25 0 + 2 True GTK_UPDATE_IF_VALID Only in virt-manager-0.7.0/src: vmm-details.glade.orig Only in virt-manager-0.7.0/src: vmm-details.glade.rej Only in virt-manager-0.7.0/src: .vmm-details.glade.rej.swp