Set the 'launch terminal' button sensitivity according ot whether we can access the /dev/pts/* device

This commit is contained in:
Daniel P. Berrange 2006-08-15 14:04:41 -04:00
parent fb7968a3bc
commit 916a8ab43b
2 changed files with 78 additions and 65 deletions

View File

@ -218,7 +218,6 @@ class vmmConsole(gobject.GObject):
def update_widget_states(self, vm, status):
self.ignorePause = True
try:
if status in [ libvirt.VIR_DOMAIN_SHUTOFF, libvirt.VIR_DOMAIN_CRASHED ]:
self.window.get_widget("control-run").set_sensitive(True)
self.window.get_widget("menu-vm-run").set_sensitive(True)
@ -226,23 +225,28 @@ class vmmConsole(gobject.GObject):
self.window.get_widget("control-run").set_sensitive(False)
self.window.get_widget("menu-vm-run").set_sensitive(False)
if vm.is_serial_console_tty_accessible():
print "Access"
self.window.get_widget("control-terminal").set_sensitive(True)
self.window.get_widget("menu-vm-terminal").set_sensitive(True)
else:
print "Denied"
self.window.get_widget("control-terminal").set_sensitive(False)
self.window.get_widget("menu-vm-terminal").set_sensitive(False)
if status in [ libvirt.VIR_DOMAIN_SHUTDOWN, libvirt.VIR_DOMAIN_SHUTOFF ,libvirt.VIR_DOMAIN_CRASHED ] or vm.is_read_only():
self.window.get_widget("control-pause").set_sensitive(False)
self.window.get_widget("control-shutdown").set_sensitive(False)
self.window.get_widget("control-terminal").set_sensitive(False)
self.window.get_widget("control-save").set_sensitive(False)
self.window.get_widget("menu-vm-pause").set_sensitive(False)
self.window.get_widget("menu-vm-shutdown").set_sensitive(False)
self.window.get_widget("menu-vm-terminal").set_sensitive(False)
self.window.get_widget("menu-vm-save").set_sensitive(False)
else:
self.window.get_widget("control-pause").set_sensitive(True)
self.window.get_widget("control-shutdown").set_sensitive(True)
self.window.get_widget("control-terminal").set_sensitive(True)
self.window.get_widget("control-save").set_sensitive(True)
self.window.get_widget("menu-vm-pause").set_sensitive(True)
self.window.get_widget("menu-vm-shutdown").set_sensitive(True)
self.window.get_widget("menu-vm-terminal").set_sensitive(True)
self.window.get_widget("menu-vm-save").set_sensitive(True)
if status == libvirt.VIR_DOMAIN_PAUSED:
self.window.get_widget("control-pause").set_active(True)
@ -283,6 +287,7 @@ class vmmConsole(gobject.GObject):
else:
self.activate_unavailable_page()
else:
try:
self.try_login()
except:
print _("Couldn't open console: ") + str(sys.exc_info()[0]) + " " + str(sys.exc_info()[1])

View File

@ -20,6 +20,7 @@
import gobject
import libvirt
import libxml2
import os
class vmmDomain(gobject.GObject):
__gsignals__ = {
@ -288,6 +289,12 @@ class vmmDomain(gobject.GObject):
def get_serial_console_tty(self):
return self.get_xml_string("/domain/devices/console/@tty")
def is_serial_console_tty_accessible(self):
tty = self.get_serial_console_tty()
if tty == None:
return False
return os.access(tty, os.R_OK | os.W_OK)
def get_graphics_console(self):
type = self.get_xml_string("/domain/devices/graphics/@type")
port = None
@ -300,7 +307,8 @@ class vmmDomain(gobject.GObject):
return [type, "localhost", port]
def set_vcpu_count(self, vcpus):
print "If this was implemented, it would set this domain to have " + `vcpus` + " virtual cpus."
vcpus = int(vcpus)
self.vm.setVcpus(vcpus)
def set_memory(self, memory):
memory = int(memory)