Index: virt-manager-1.0.0/virtinst/distroinstaller.py =================================================================== --- virt-manager-1.0.0.orig/virtinst/distroinstaller.py +++ virt-manager-1.0.0/virtinst/distroinstaller.py @@ -421,8 +421,14 @@ class DistroInstaller(Installer): dev = None if mediatype == MEDIA_CDROM_PATH: - dev = self._prepare_local() - else: + if guest.os.is_xenpv() and guest._lookup_osdict_key('pv_cdrom_install', False): + fetcher = urlfetcher.fetcherForURI(self.location, + scratchdir, meter) + dev = self._prepare_kernel_url(guest, fetcher) + else: + dev = self._prepare_local() + + if dev is None: fetcher = urlfetcher.fetcherForURI(self.location, scratchdir, meter) try: Index: virt-manager-1.0.0/virtinst/osdict.py =================================================================== --- virt-manager-1.0.0.orig/virtinst/osdict.py +++ virt-manager-1.0.0/virtinst/osdict.py @@ -143,6 +143,8 @@ class _OSVariant(object): @xen_disable_acpi: If True, disable acpi/apic for this OS if on old xen. This corresponds with the SUPPORT_CONN_CAN_DEFAULT_ACPI check @qemu_ga: If True, this distro has qemu_ga available by default + @pv_cdrom_install: If True, this distro can be installed from an ISO or + cdrom as a para-virtualized guest. The rest of the parameters are about setting device/guest defaults based on the OS. They should be self explanatory. See guest.py for @@ -158,7 +160,7 @@ class _OSVariant(object): videomodel=_SENTINEL, virtionet=_SENTINEL, virtiodisk=_SENTINEL, virtiommio=_SENTINEL, virtioconsole=_SENTINEL, xen_disable_acpi=_SENTINEL, - qemu_ga=_SENTINEL): + qemu_ga=_SENTINEL, pv_cdrom_install=_SENTINEL): if is_type: if parent != _SENTINEL: raise RuntimeError("OS types must not specify parent") @@ -218,6 +220,7 @@ class _OSVariant(object): self.virtiommio = _get_default("virtiommio", virtiommio) self.virtioconsole = _get_default("virtioconsole", virtioconsole) self.qemu_ga = _get_default("qemu_ga", qemu_ga) + self.pv_cdrom_install = _get_default("pv_cdrom_install", pv_cdrom_install) def _add_type(*args, **kwargs): @@ -259,12 +262,12 @@ _add_var("fedora18", "Fedora 18", suppor _add_var("fedora19", "Fedora 19", virtiommio=True, parent="fedora18") _add_var("fedora20", "Fedora 20 (or later)", parent="fedora19") -_add_var("opensuse11", "openSUSE 11", urldistro="opensuse", supported=True, virtiodisk=True, virtionet=True, parent="linux") +_add_var("opensuse11", "openSUSE 11", urldistro="opensuse", supported=True, pv_cdrom_install=True, virtiodisk=True, virtionet=True, parent="linux") _add_var("opensuse12", "openSUSE 12", parent="opensuse11") _add_var("opensuse13", "openSUSE 13 (or later)", parent="opensuse12") _add_var("sles", "Suse Linux Enterprise Server", urldistro="suse", supported=True, parent="linux") -_add_var("sles10", "Suse Linux Enterprise Server 10", supported=True, virtiodisk=True, virtionet=True, parent="sles") +_add_var("sles10", "Suse Linux Enterprise Server 10", supported=True, pv_cdrom_install=True, virtiodisk=True, virtionet=True, parent="sles") _add_var("sles11", "Suse Linux Enterprise Server 11", supported=True, virtiodisk=True, virtionet=True, parent="sles10") _add_var("sles12", "Suse Linux Enterprise Server 12 (or later)", supported=True, virtiodisk=True, virtionet=True, parent="sles11")