diff --git a/tests/utils.py b/tests/utils.py index a608e6cdd..977b9137f 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -24,6 +24,7 @@ import virtinst import virtinst.cli from virtinst import VirtualAudio from virtinst import VirtualDisk +from virtinst import VirtualGraphics from virtinst import VirtualVideoDevice # pylint: disable=W0212 @@ -149,7 +150,7 @@ def get_basic_paravirt_guest(installer=None): g.maxmemory = int(400) g.uuid = "12345678-1234-1234-1234-123456789012" g.boot = ["/boot/vmlinuz", "/boot/initrd"] - g.graphics = (True, "vnc", None, "ja") + g.add_device(VirtualGraphics("vnc", keymap="ja")) g.vcpus = 5 if installer: @@ -165,7 +166,7 @@ def get_basic_fullyvirt_guest(typ="xen", installer=None): g.maxmemory = int(400) g.uuid = "12345678-1234-1234-1234-123456789012" g.cdrom = "/dev/loop0" - g.graphics = (True, "sdl") + g.add_device(VirtualGraphics("sdl")) g.features['pae'] = 0 g.vcpus = 5 if installer: diff --git a/tests/validation.py b/tests/validation.py index d746f2428..c40d40331 100644 --- a/tests/validation.py +++ b/tests/validation.py @@ -82,12 +82,6 @@ args = { 'vcpus' : { 'invalid' : [-1, 0, 1000, ''], 'valid' : [ 1, 32 ] }, - 'graphics' : { - 'invalid' : ['', True, 'unknown', {}, ('', '', '', 0), - ('', '', '', 'longerthan16chars'), - ('', '', '', 'invalid!!ch@r')], - 'valid' : [False, 'sdl', 'vnc', (True, 'sdl', '', 'key_map-2'), - {'enabled' : True, 'type':'vnc', 'opts':5900} ]}, 'type' : { 'invalid' : [], 'valid' : ['sometype'] }, diff --git a/virt-install b/virt-install index 88eaf0606..3ebbb1ac3 100755 --- a/virt-install +++ b/virt-install @@ -590,21 +590,22 @@ def txt_console(dom, uri): def start_install(guest, continue_inst, options): def show_console(dom): - if guest.graphics_dev: - gtype = guest.graphics_dev.type - if gtype in [virtinst.VirtualGraphics.TYPE_VNC, - virtinst.VirtualGraphics.TYPE_SPICE]: - logging.debug("Launching virt-viewer for graphics type '%s'", - gtype) - return vnc_console(dom, guest.get_uri()) - else: - logging.debug("No viewer to launch for graphics type '%s'", - gtype) - return None # SDL needs no viewer app - else: + gdev = guest.get_devices("graphics") + if not gdev: logging.debug("Connecting to text console") return txt_console(dom, guest.get_uri()) + gtype = gdev[0].type + if gtype in [virtinst.VirtualGraphics.TYPE_VNC, + virtinst.VirtualGraphics.TYPE_SPICE]: + logging.debug("Launching virt-viewer for graphics type '%s'", + gtype) + return vnc_console(dom, guest.get_uri()) + else: + logging.debug("No viewer to launch for graphics type '%s'", + gtype) + return None # SDL needs no viewer app + # There are two main cases we care about: # # Scripts: these should specify --wait always, maintaining the diff --git a/virtinst/Guest.py b/virtinst/Guest.py index 4ef406841..935dff0b8 100644 --- a/virtinst/Guest.py +++ b/virtinst/Guest.py @@ -411,17 +411,6 @@ class Guest(XMLBuilderDomain.XMLBuilderDomain): cpuset = _xml_property(get_cpuset, set_cpuset, xpath="./vcpu/@cpuset") - def get_graphics_dev(self): - gdevs = self.get_devices(VirtualDevice.VIRTUAL_DEV_GRAPHICS) - return (gdevs and gdevs[0] or None) - def set_graphics_dev(self, val): - gdev = self.graphics_dev - if val: - self.add_device(val) - if gdev: - self.remove_device(gdev) - graphics_dev = property(get_graphics_dev, set_graphics_dev) - # GAH! - installer.os_type = "hvm" or "xen" (aka xen paravirt) # guest.os_type = "Solaris", "Windows", "Linux" # FIXME: We should really rename this property to something else, @@ -519,74 +508,6 @@ class Guest(XMLBuilderDomain.XMLBuilderDomain): # DEPRECATED PROPERTIES # ######################### - # Deprecated: Should set graphics_dev.keymap directly - def get_keymap(self): - if self.graphics_dev is None: - return None - return self.graphics_dev.keymap - def set_keymap(self, val): - if self.graphics_dev is not None: - self.graphics_dev.keymap = val - keymap = property(get_keymap, set_keymap) - - # Deprecated: Should set guest.graphics_dev = VirtualGraphics(...) - def get_graphics(self): - if self.graphics_dev is None: - return { "enabled" : False } - return { "enabled" : True, "type" : self.graphics_dev, \ - "keymap" : self.graphics_dev.keymap} - def set_graphics(self, val): - - # val can be: - # a dictionary with keys: enabled, type, port, keymap - # a tuple of the form : (enabled, type, port, keymap) - # last 2 optional - # : "vnc", "sdl", or false - port = None - gtype = None - enabled = False - keymap = None - gdev = None - if type(val) == dict: - if "enabled" not in val: - raise ValueError(_("Must specify whether graphics are enabled")) - - enabled = val["enabled"] - if "type" in val: - gtype = val["type"] - if "opts" in val: - port = val["opts"] - - elif type(val) == tuple: - if len(val) >= 1: - enabled = val[0] - if len(val) >= 2: - gtype = val[1] - if len(val) >= 3: - port = val[2] - if len(val) >= 4: - keymap = val[3] - - else: - if val in ("vnc", "sdl"): - gtype = val - enabled = True - else: - enabled = val - - if enabled not in (True, False): - raise ValueError(_("Graphics enabled must be True or False")) - - if enabled: - gdev = virtinst.VirtualGraphics(type=gtype) - if port: - gdev.port = port - if keymap: - gdev.keymap = keymap - self.graphics_dev = gdev - - graphics = property(get_graphics, set_graphics) - # Hypervisor name (qemu, xen, kvm, etc.) # Deprecated: should be pulled directly from the installer def get_type(self):