From d0870fe9caa7ce4c66e217cf8d303ae1844b4be8 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Thu, 16 Dec 2010 12:41:47 -0500 Subject: [PATCH] details: Allow viewing/removing controller devices --- src/virtManager/console.py | 2 +- src/virtManager/details.py | 19 +++++++- src/virtManager/domain.py | 3 ++ src/vmm-details.glade | 94 ++++++++++++++++++++++++++++++++------ 4 files changed, 103 insertions(+), 15 deletions(-) diff --git a/src/virtManager/console.py b/src/virtManager/console.py index 9b7480e54..bcd1070c6 100644 --- a/src/virtManager/console.py +++ b/src/virtManager/console.py @@ -600,7 +600,7 @@ class vmmConsolePages(vmmGObjectUI): except Exception, e: # We can fail here if VM is destroyed: xen is a bit racy # and can't handle domain lookups that soon after - logging.debug("Getting graphics console failed: %s" % str(e)) + logging.exception("Getting graphics console failed: %s" % str(e)) return if protocol is None: diff --git a/src/virtManager/details.py b/src/virtManager/details.py index 26f88126a..66454a3ad 100644 --- a/src/virtManager/details.py +++ b/src/virtManager/details.py @@ -59,11 +59,12 @@ HW_LIST_TYPE_CHAR = 10 HW_LIST_TYPE_HOSTDEV = 11 HW_LIST_TYPE_VIDEO = 12 HW_LIST_TYPE_WATCHDOG = 13 +HW_LIST_TYPE_CONTROLLER = 14 remove_pages = [HW_LIST_TYPE_NIC, HW_LIST_TYPE_INPUT, HW_LIST_TYPE_GRAPHICS, HW_LIST_TYPE_SOUND, HW_LIST_TYPE_CHAR, HW_LIST_TYPE_HOSTDEV, HW_LIST_TYPE_DISK, HW_LIST_TYPE_VIDEO, - HW_LIST_TYPE_WATCHDOG] + HW_LIST_TYPE_WATCHDOG, HW_LIST_TYPE_CONTROLLER] # Boot device columns BOOT_DEV_TYPE = 0 @@ -899,6 +900,8 @@ class vmmDetails(vmmGObjectUI): self.refresh_video_page() elif pagetype == HW_LIST_TYPE_WATCHDOG: self.refresh_watchdog_page() + elif pagetype == HW_LIST_TYPE_CONTROLLER: + self.refresh_controller_page() else: pagetype = -1 except Exception, e: @@ -2241,6 +2244,14 @@ class vmmDetails(vmmGObjectUI): self.set_combo_label("watchdog-model", 0, model) self.set_combo_label("watchdog-action", 0, action) + def refresh_controller_page(self): + dev = self.get_hw_selection(HW_LIST_COL_DEVICE) + if not dev: + return + + type_label = virtinst.VirtualController.pretty_type(dev.type) + self.window.get_widget("controller-type").set_text(type_label) + def refresh_boot_page(self): # Refresh autostart try: @@ -2445,6 +2456,12 @@ class vmmDetails(vmmGObjectUI): update_hwlist(HW_LIST_TYPE_WATCHDOG, watch, _("Watchdog"), "device_pci") + for cont in self.vm.get_controller_devices(): + pretty_type = virtinst.VirtualController.pretty_type(cont.type) + update_hwlist(HW_LIST_TYPE_CONTROLLER, cont, + _("Controller %s") % pretty_type, + "device_pci") + devs = range(len(hw_list_model)) devs.reverse() for i in devs: diff --git a/src/virtManager/domain.py b/src/virtManager/domain.py index c0f227e3e..79c0bfdbc 100644 --- a/src/virtManager/domain.py +++ b/src/virtManager/domain.py @@ -45,6 +45,7 @@ def compare_device(origdev, newdev, idx): "parallel" : ["char_type", "target_port"], "console" : ["char_type", "target_type", "target_port"], "graphics" : ["type", "vmmindex"], + "controller" : ["type", "index"], } if id(origdev) == id(newdev): @@ -617,6 +618,8 @@ class vmmDomainBase(vmmLibvirtObject): return self._build_device_list("graphics") def get_sound_devices(self): return self._build_device_list("sound") + def get_controller_devices(self): + return self._build_device_list("controller") def get_disk_devices(self, refresh_if_necc=True, inactive=False): devs = self._build_device_list("disk", refresh_if_necc, inactive) diff --git a/src/vmm-details.glade b/src/vmm-details.glade index bc6cd7d6f..8d50d453c 100644 --- a/src/vmm-details.glade +++ b/src/vmm-details.glade @@ -1622,7 +1622,7 @@ True - Over + over False @@ -1811,7 +1811,7 @@ I/O: True - Stats + stat 1 @@ -2243,7 +2243,7 @@ I/O: True - Proc + cpu 2 @@ -2469,7 +2469,7 @@ I/O: True - Mem + mem 3 @@ -2847,7 +2847,7 @@ I/O: True - Boot + boot 4 @@ -3312,7 +3312,7 @@ I/O: True - Disk + dsk 5 @@ -3473,7 +3473,7 @@ I/O: True - Net + net 6 @@ -3632,7 +3632,7 @@ I/O: True - Input + inp 7 @@ -3965,7 +3965,7 @@ I/O: True - Gfx + gfx 8 @@ -4065,7 +4065,7 @@ I/O: True - Sound + snd 9 @@ -4175,7 +4175,7 @@ I/O: True - Char + chr 10 @@ -4254,7 +4254,7 @@ I/O: True - Host + phy 11 @@ -4411,7 +4411,7 @@ I/O: True - Vid + vid 12 @@ -4568,6 +4568,74 @@ I/O: tab + + + True + 0 + none + + + True + 3 + 12 + + + True + 2 + 6 + 6 + + + True + Type: + + + GTK_FILL + GTK_FILL + + + + + True + foo + + + 1 + 2 + GTK_FILL + GTK_FILL + + + + + + + + + True + <b>Controller</b> + True + + + label_item + + + + + 14 + + + + + True + cntrl + + + 14 + False + tab + +