[virt-manager] Fix open connection->lxc Fix issues creating ppc64 guests Fix generating disk targets from customize
Cole Robinson
crobinso at fedoraproject.org
Tue Feb 18 22:47:46 UTC 2014
commit 192ee79c50d602bde4921de734c0326b282e57bf
Author: Cole Robinson <crobinso at redhat.com>
Date: Tue Feb 18 17:48:30 2014 -0500
Fix open connection->lxc
Fix issues creating ppc64 guests
Fix generating disk targets from customize->addhw
0001-connect-Fix-connecting-to-lxc-URI.patch | 23 +
...reate-Fix-non-x86-qemu-kvm-guest-creation.patch | 24 +
0003-caps-Simplify-guest-lookup-routines.patch | 497 ++++++++++++++++++++
0004-create-Don-t-alter-caps-machine-list.patch | 23 +
virt-manager.spec | 23 +-
5 files changed, 589 insertions(+), 1 deletions(-)
---
diff --git a/0001-connect-Fix-connecting-to-lxc-URI.patch b/0001-connect-Fix-connecting-to-lxc-URI.patch
new file mode 100644
index 0000000..a330eb2
--- /dev/null
+++ b/0001-connect-Fix-connecting-to-lxc-URI.patch
@@ -0,0 +1,23 @@
+From 3aef95607e3462f6f738a1bad24c4ccfb615997c Mon Sep 17 00:00:00 2001
+From: Cole Robinson <crobinso at redhat.com>
+Date: Mon, 17 Feb 2014 10:22:24 -0500
+Subject: [PATCH] connect: Fix connecting to lxc:/// URI
+
+(cherry picked from commit 0169042c1ee45fed779fc106476fc98265236651)
+---
+ virtManager/connect.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/virtManager/connect.py b/virtManager/connect.py
+index 7cd4da7..1247d75 100644
+--- a/virtManager/connect.py
++++ b/virtManager/connect.py
+@@ -364,7 +364,7 @@ class vmmConnect(vmmGObjectUI):
+ hvstr = ""
+ if hv == HV_XEN:
+ hvstr = "xen"
+- elif hv == HV_QEMU or HV_QEMU_SESSION:
++ elif hv == HV_QEMU or hv == HV_QEMU_SESSION:
+ hvstr = "qemu"
+ else:
+ hvstr = "lxc"
diff --git a/0002-create-Fix-non-x86-qemu-kvm-guest-creation.patch b/0002-create-Fix-non-x86-qemu-kvm-guest-creation.patch
new file mode 100644
index 0000000..42bfb18
--- /dev/null
+++ b/0002-create-Fix-non-x86-qemu-kvm-guest-creation.patch
@@ -0,0 +1,24 @@
+From f52e2a1d383121e71791f72a7172b98016bb5884 Mon Sep 17 00:00:00 2001
+From: Cole Robinson <crobinso at redhat.com>
+Date: Mon, 17 Feb 2014 10:24:41 -0500
+Subject: [PATCH] create: Fix non-x86 qemu/kvm guest creation
+
+(cherry picked from commit a37b200f69347922800d58342968307b74ec9ded)
+---
+ virtManager/create.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/virtManager/create.py b/virtManager/create.py
+index d8e68c3..f1c57b7 100644
+--- a/virtManager/create.py
++++ b/virtManager/create.py
+@@ -1376,7 +1376,8 @@ class vmmCreate(vmmGObjectUI):
+
+ guest.add_default_devices()
+
+- if self.conn.check_support(self.conn.SUPPORT_CONN_PM_DISABLE):
++ if (guest.os.is_x86() and
++ self.conn.check_support(self.conn.SUPPORT_CONN_PM_DISABLE)):
+ guest.pm.suspend_to_mem = False
+ guest.pm.suspend_to_disk = False
+
diff --git a/0003-caps-Simplify-guest-lookup-routines.patch b/0003-caps-Simplify-guest-lookup-routines.patch
new file mode 100644
index 0000000..e965a5e
--- /dev/null
+++ b/0003-caps-Simplify-guest-lookup-routines.patch
@@ -0,0 +1,497 @@
+From 12c4a54a92f935abceb358a8d7ba8f391597f014 Mon Sep 17 00:00:00 2001
+From: Cole Robinson <crobinso at redhat.com>
+Date: Mon, 17 Feb 2014 11:43:53 -0500
+Subject: [PATCH] caps: Simplify guest lookup routines
+
+Checking for acceleration should always be done, API users can opt out
+by requesting a specific domain type.
+
+(cherry picked from commit 63b27ceae1e5a1521b968deb7e04d1a5ebd3de39)
+---
+ .../compare/virt-convert-ovf-compare.xml | 7 +++-
+ .../compare/virt-convert-vmx-compare.xml | 7 +++-
+ .../ovf2libvirt_ovf_directory.libvirt | 7 +++-
+ .../libvirt_output/ovf2libvirt_test1.libvirt | 7 +++-
+ .../ovf2libvirt_test1.libvirt.disk_qcow2 | 7 +++-
+ .../libvirt_output/ovf2libvirt_test2.libvirt | 7 +++-
+ .../vmx2libvirt_test-vmx-zip.libvirt | 7 +++-
+ .../libvirt_output/vmx2libvirt_test1.libvirt | 7 +++-
+ .../vmx2libvirt_test1.libvirt.disk_raw | 7 +++-
+ .../libvirt_output/vmx2libvirt_vmx-dir.libvirt | 7 +++-
+ virt-install | 3 --
+ virtManager/create.py | 4 +-
+ virtinst/capabilities.py | 49 +++++-----------------
+ virtinst/virtimage.py | 9 +---
+ 14 files changed, 63 insertions(+), 72 deletions(-)
+
+diff --git a/tests/cli-test-xml/compare/virt-convert-ovf-compare.xml b/tests/cli-test-xml/compare/virt-convert-ovf-compare.xml
+index c073ffc..a1d2f75 100644
+--- a/tests/cli-test-xml/compare/virt-convert-ovf-compare.xml
++++ b/tests/cli-test-xml/compare/virt-convert-ovf-compare.xml
+@@ -1,6 +1,6 @@
+ Copying test.ovf-disk1.vmdk to /tmp/test.ovf-disk1
+ Copying testfile to /tmp/testfile
+-<domain type="qemu">
++<domain type="kvm">
+ <name>test.ovf</name>
+ <uuid>00000000-1111-2222-3333-444444444444</uuid>
+ <description>This is the description, created by RWMJ.</description>
+@@ -16,6 +16,9 @@ Copying testfile to /tmp/testfile
+ <apic/>
+ <pae/>
+ </features>
++ <cpu mode="custom" match="exact">
++ <model>core2duo</model>
++ </cpu>
+ <clock offset="utc">
+ <timer name="rtc" tickpolicy="catchup"/>
+ <timer name="pit" tickpolicy="delay"/>
+@@ -25,7 +28,7 @@ Copying testfile to /tmp/testfile
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+- <emulator>/usr/bin/qemu-system-x86_64</emulator>
++ <emulator>/usr/bin/qemu-kvm</emulator>
+ <disk type="file" device="disk">
+ <driver name="qemu"/>
+ <source file="/tmp/test.ovf-disk1"/>
+diff --git a/tests/cli-test-xml/compare/virt-convert-vmx-compare.xml b/tests/cli-test-xml/compare/virt-convert-vmx-compare.xml
+index 20f046d..ffe7b59 100644
+--- a/tests/cli-test-xml/compare/virt-convert-vmx-compare.xml
++++ b/tests/cli-test-xml/compare/virt-convert-vmx-compare.xml
+@@ -1,5 +1,5 @@
+ Running /usr/bin/qemu-img convert -O qcow2 fedora.vmdk /var/lib/libvirt/images/fedora.qcow2
+-<domain type="qemu">
++<domain type="kvm">
+ <name>fedora</name>
+ <uuid>00000000-1111-2222-3333-444444444444</uuid>
+ <memory>524288</memory>
+@@ -14,6 +14,9 @@ Running /usr/bin/qemu-img convert -O qcow2 fedora.vmdk /var/lib/libvirt/images/f
+ <apic/>
+ <pae/>
+ </features>
++ <cpu mode="custom" match="exact">
++ <model>core2duo</model>
++ </cpu>
+ <clock offset="utc">
+ <timer name="rtc" tickpolicy="catchup"/>
+ <timer name="pit" tickpolicy="delay"/>
+@@ -23,7 +26,7 @@ Running /usr/bin/qemu-img convert -O qcow2 fedora.vmdk /var/lib/libvirt/images/f
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+- <emulator>/usr/bin/qemu-system-x86_64</emulator>
++ <emulator>/usr/bin/qemu-kvm</emulator>
+ <disk type="file" device="disk">
+ <driver name="qemu" type="qcow2"/>
+ <source file="/var/lib/libvirt/images/fedora.qcow2"/>
+diff --git a/tests/virtconv-files/libvirt_output/ovf2libvirt_ovf_directory.libvirt b/tests/virtconv-files/libvirt_output/ovf2libvirt_ovf_directory.libvirt
+index c88c140..597a0c5 100644
+--- a/tests/virtconv-files/libvirt_output/ovf2libvirt_ovf_directory.libvirt
++++ b/tests/virtconv-files/libvirt_output/ovf2libvirt_ovf_directory.libvirt
+@@ -1,4 +1,4 @@
+-<domain type="qemu">
++<domain type="kvm">
+ <name>CentOS-6.4-i386-Gnome.ovf</name>
+ <uuid>00000000-1111-2222-3333-444444444444</uuid>
+ <memory>524288</memory>
+@@ -13,6 +13,9 @@
+ <apic/>
+ <pae/>
+ </features>
++ <cpu mode="custom" match="exact">
++ <model>core2duo</model>
++ </cpu>
+ <clock offset="utc">
+ <timer name="rtc" tickpolicy="catchup"/>
+ <timer name="pit" tickpolicy="delay"/>
+@@ -22,7 +25,7 @@
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+- <emulator>/usr/bin/qemu-system-x86_64</emulator>
++ <emulator>/usr/bin/qemu-kvm</emulator>
+ <disk type="file" device="disk">
+ <driver name="qemu"/>
+ <source file="/var/lib/libvirt/images/CentOS-6.4-i386-Gnome-disk1"/>
+diff --git a/tests/virtconv-files/libvirt_output/ovf2libvirt_test1.libvirt b/tests/virtconv-files/libvirt_output/ovf2libvirt_test1.libvirt
+index 22978ca..83c3f90 100644
+--- a/tests/virtconv-files/libvirt_output/ovf2libvirt_test1.libvirt
++++ b/tests/virtconv-files/libvirt_output/ovf2libvirt_test1.libvirt
+@@ -1,4 +1,4 @@
+-<domain type="qemu">
++<domain type="kvm">
+ <name>test.ovf</name>
+ <uuid>00000000-1111-2222-3333-444444444444</uuid>
+ <description>This is the description, created by RWMJ.</description>
+@@ -14,6 +14,9 @@
+ <apic/>
+ <pae/>
+ </features>
++ <cpu mode="custom" match="exact">
++ <model>core2duo</model>
++ </cpu>
+ <clock offset="utc">
+ <timer name="rtc" tickpolicy="catchup"/>
+ <timer name="pit" tickpolicy="delay"/>
+@@ -23,7 +26,7 @@
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+- <emulator>/usr/bin/qemu-system-x86_64</emulator>
++ <emulator>/usr/bin/qemu-kvm</emulator>
+ <disk type="file" device="disk">
+ <driver name="qemu"/>
+ <source file="/var/lib/libvirt/images/test.ovf-disk1"/>
+diff --git a/tests/virtconv-files/libvirt_output/ovf2libvirt_test1.libvirt.disk_qcow2 b/tests/virtconv-files/libvirt_output/ovf2libvirt_test1.libvirt.disk_qcow2
+index d86ced0..1b50422 100644
+--- a/tests/virtconv-files/libvirt_output/ovf2libvirt_test1.libvirt.disk_qcow2
++++ b/tests/virtconv-files/libvirt_output/ovf2libvirt_test1.libvirt.disk_qcow2
+@@ -1,4 +1,4 @@
+-<domain type="qemu">
++<domain type="kvm">
+ <name>test.ovf</name>
+ <uuid>00000000-1111-2222-3333-444444444444</uuid>
+ <description>This is the description, created by RWMJ.</description>
+@@ -14,6 +14,9 @@
+ <apic/>
+ <pae/>
+ </features>
++ <cpu mode="custom" match="exact">
++ <model>core2duo</model>
++ </cpu>
+ <clock offset="utc">
+ <timer name="rtc" tickpolicy="catchup"/>
+ <timer name="pit" tickpolicy="delay"/>
+@@ -23,7 +26,7 @@
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+- <emulator>/usr/bin/qemu-system-x86_64</emulator>
++ <emulator>/usr/bin/qemu-kvm</emulator>
+ <disk type="file" device="disk">
+ <driver name="qemu" type="qcow2"/>
+ <source file="/var/lib/libvirt/images/test.ovf-disk1.qcow2"/>
+diff --git a/tests/virtconv-files/libvirt_output/ovf2libvirt_test2.libvirt b/tests/virtconv-files/libvirt_output/ovf2libvirt_test2.libvirt
+index aa0303e..9d28269 100644
+--- a/tests/virtconv-files/libvirt_output/ovf2libvirt_test2.libvirt
++++ b/tests/virtconv-files/libvirt_output/ovf2libvirt_test2.libvirt
+@@ -1,4 +1,4 @@
+-<domain type="qemu">
++<domain type="kvm">
+ <name>w2k3_32bit</name>
+ <uuid>00000000-1111-2222-3333-444444444444</uuid>
+ <description>Description added by RWMJ.</description>
+@@ -14,6 +14,9 @@
+ <apic/>
+ <pae/>
+ </features>
++ <cpu mode="custom" match="exact">
++ <model>core2duo</model>
++ </cpu>
+ <clock offset="utc">
+ <timer name="rtc" tickpolicy="catchup"/>
+ <timer name="pit" tickpolicy="delay"/>
+@@ -23,7 +26,7 @@
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+- <emulator>/usr/bin/qemu-system-x86_64</emulator>
++ <emulator>/usr/bin/qemu-kvm</emulator>
+ <disk type="file" device="disk">
+ <driver name="qemu"/>
+ <source file="/var/lib/libvirt/images/w2k3_32bit-disk1"/>
+diff --git a/tests/virtconv-files/libvirt_output/vmx2libvirt_test-vmx-zip.libvirt b/tests/virtconv-files/libvirt_output/vmx2libvirt_test-vmx-zip.libvirt
+index 179978b..9e2058f 100644
+--- a/tests/virtconv-files/libvirt_output/vmx2libvirt_test-vmx-zip.libvirt
++++ b/tests/virtconv-files/libvirt_output/vmx2libvirt_test-vmx-zip.libvirt
+@@ -1,4 +1,4 @@
+-<domain type="qemu">
++<domain type="kvm">
+ <name>minix</name>
+ <uuid>00000000-1111-2222-3333-444444444444</uuid>
+ <memory>204800</memory>
+@@ -14,6 +14,9 @@
+ <apic/>
+ <pae/>
+ </features>
++ <cpu mode="custom" match="exact">
++ <model>core2duo</model>
++ </cpu>
+ <clock offset="utc">
+ <timer name="rtc" tickpolicy="catchup"/>
+ <timer name="pit" tickpolicy="delay"/>
+@@ -23,7 +26,7 @@
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+- <emulator>/usr/bin/qemu-system-x86_64</emulator>
++ <emulator>/usr/bin/qemu-kvm</emulator>
+ <disk type="block" device="cdrom">
+ <driver type="raw"/>
+ <target dev="hda" bus="ide"/>
+diff --git a/tests/virtconv-files/libvirt_output/vmx2libvirt_test1.libvirt b/tests/virtconv-files/libvirt_output/vmx2libvirt_test1.libvirt
+index 1ff4eec..a6fc259 100644
+--- a/tests/virtconv-files/libvirt_output/vmx2libvirt_test1.libvirt
++++ b/tests/virtconv-files/libvirt_output/vmx2libvirt_test1.libvirt
+@@ -1,4 +1,4 @@
+-<domain type="qemu">
++<domain type="kvm">
+ <name>fedora</name>
+ <uuid>00000000-1111-2222-3333-444444444444</uuid>
+ <memory>524288</memory>
+@@ -13,6 +13,9 @@
+ <apic/>
+ <pae/>
+ </features>
++ <cpu mode="custom" match="exact">
++ <model>core2duo</model>
++ </cpu>
+ <clock offset="utc">
+ <timer name="rtc" tickpolicy="catchup"/>
+ <timer name="pit" tickpolicy="delay"/>
+@@ -22,7 +25,7 @@
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+- <emulator>/usr/bin/qemu-system-x86_64</emulator>
++ <emulator>/usr/bin/qemu-kvm</emulator>
+ <disk type="file" device="disk">
+ <driver name="qemu"/>
+ <source file="/var/lib/libvirt/images/fedora"/>
+diff --git a/tests/virtconv-files/libvirt_output/vmx2libvirt_test1.libvirt.disk_raw b/tests/virtconv-files/libvirt_output/vmx2libvirt_test1.libvirt.disk_raw
+index 2abd1e2..9c3d6e2 100644
+--- a/tests/virtconv-files/libvirt_output/vmx2libvirt_test1.libvirt.disk_raw
++++ b/tests/virtconv-files/libvirt_output/vmx2libvirt_test1.libvirt.disk_raw
+@@ -1,4 +1,4 @@
+-<domain type="qemu">
++<domain type="kvm">
+ <name>fedora</name>
+ <uuid>00000000-1111-2222-3333-444444444444</uuid>
+ <memory>524288</memory>
+@@ -13,6 +13,9 @@
+ <apic/>
+ <pae/>
+ </features>
++ <cpu mode="custom" match="exact">
++ <model>core2duo</model>
++ </cpu>
+ <clock offset="utc">
+ <timer name="rtc" tickpolicy="catchup"/>
+ <timer name="pit" tickpolicy="delay"/>
+@@ -22,7 +25,7 @@
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+- <emulator>/usr/bin/qemu-system-x86_64</emulator>
++ <emulator>/usr/bin/qemu-kvm</emulator>
+ <disk type="file" device="disk">
+ <driver name="qemu" type="raw"/>
+ <source file="/var/lib/libvirt/images/fedora.raw"/>
+diff --git a/tests/virtconv-files/libvirt_output/vmx2libvirt_vmx-dir.libvirt b/tests/virtconv-files/libvirt_output/vmx2libvirt_vmx-dir.libvirt
+index 7887f36..74f3541 100644
+--- a/tests/virtconv-files/libvirt_output/vmx2libvirt_vmx-dir.libvirt
++++ b/tests/virtconv-files/libvirt_output/vmx2libvirt_vmx-dir.libvirt
+@@ -1,4 +1,4 @@
+-<domain type="qemu">
++<domain type="kvm">
+ <name>esx4.0-rhel4.8-i386</name>
+ <uuid>00000000-1111-2222-3333-444444444444</uuid>
+ <memory>524288</memory>
+@@ -14,6 +14,9 @@
+ <apic/>
+ <pae/>
+ </features>
++ <cpu mode="custom" match="exact">
++ <model>core2duo</model>
++ </cpu>
+ <clock offset="utc">
+ <timer name="rtc" tickpolicy="catchup"/>
+ <timer name="pit" tickpolicy="delay"/>
+@@ -23,7 +26,7 @@
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+- <emulator>/usr/bin/qemu-system-x86_64</emulator>
++ <emulator>/usr/bin/qemu-kvm</emulator>
+ <disk type="block" device="cdrom">
+ <target dev="hda" bus="ide"/>
+ <readonly/>
+diff --git a/virt-install b/virt-install
+index 6453f77..a801952 100755
+--- a/virt-install
++++ b/virt-install
+@@ -177,7 +177,6 @@ def get_guest(conn, options):
+ options.container]]) > 1:
+ fail(_("Can't do more than one of --hvm, --paravirt, or --container"))
+
+- req_accel = True
+ req_hv_type = options.hv_type and options.hv_type.lower() or None
+ if options.fullvirt:
+ req_virt_type = "hvm"
+@@ -203,7 +202,6 @@ def get_guest(conn, options):
+ os_type=req_virt_type,
+ arch=arch,
+ typ=req_hv_type,
+- accelerated=req_accel,
+ machine=options.machine)
+ guest = conn.caps.build_virtinst_guest(conn, capsguest, capsdomain)
+ guest.os.machine = options.machine
+@@ -212,7 +210,6 @@ def get_guest(conn, options):
+
+ if (not req_virt_type and
+ not req_hv_type and
+- req_accel and
+ conn.is_qemu() and
+ capsguest.arch in ["i686", "x86_64"] and
+ not capsdomain.is_accelerated()):
+diff --git a/virtManager/create.py b/virtManager/create.py
+index f1c57b7..2af62c4 100644
+--- a/virtManager/create.py
++++ b/virtManager/create.py
+@@ -858,9 +858,7 @@ class vmmCreate(vmmGObjectUI):
+ gtype = "hvm"
+ break
+
+- (newg, newdom) = self.caps.guest_lookup(os_type=gtype,
+- accelerated=True,
+- arch=arch)
++ (newg, newdom) = self.caps.guest_lookup(os_type=gtype, arch=arch)
+
+ if (self.capsguest and self.capsdomain and
+ (newg.arch == self.capsguest.arch and
+diff --git a/virtinst/capabilities.py b/virtinst/capabilities.py
+index c55f67d..b8d3330 100644
+--- a/virtinst/capabilities.py
++++ b/virtinst/capabilities.py
+@@ -345,18 +345,15 @@ class Guest(object):
+
+ child = child.next
+
+- def _favoredDomain(self, accelerated, domains):
++ def _favoredDomain(self, domains):
+ """
+ Return the recommended domain for use if the user does not explicitly
+ request one.
+ """
+- if accelerated is None:
+- # Picking last in list so we favour KVM/KQEMU over QEMU
+- return domains[-1]
++ if not domains:
++ return None
+
+ priority = ["kvm", "xen", "kqemu", "qemu"]
+- if not accelerated:
+- priority.reverse()
+
+ for t in priority:
+ for d in domains:
+@@ -366,7 +363,7 @@ class Guest(object):
+ # Fallback, just return last item in list
+ return domains[-1]
+
+- def bestDomainType(self, accelerated=None, dtype=None, machine=None):
++ def bestDomainType(self, dtype=None, machine=None):
+ domains = []
+ for d in self.domains:
+ if dtype and d.hypervisor_type != dtype.lower():
+@@ -375,22 +372,7 @@ class Guest(object):
+ continue
+ domains.append(d)
+
+- if len(domains) == 0:
+- domainerr = ""
+- machineerr = ""
+- if dtype:
+- domainerr = _(", domain type '%s'") % dtype
+- if machine:
+- machineerr = _(", machine type '%s'") % machine
+-
+- error = (_("No domains available for virt type '%(type)s', "
+- "arch '%(arch)s'") %
+- {'type': self.os_type, 'arch': self.arch})
+- error += domainerr
+- error += machineerr
+- raise RuntimeError(error)
+-
+- return self._favoredDomain(accelerated, domains)
++ return self._favoredDomain(domains)
+
+
+ class Domain(object):
+@@ -621,7 +603,7 @@ class Capabilities(object):
+ return True
+ return False
+
+- def guestForOSType(self, typ=None, arch=None):
++ def _guestForOSType(self, typ=None, arch=None):
+ if self.host is None:
+ return None
+
+@@ -652,8 +634,7 @@ class Capabilities(object):
+ return self._cpu_values.get_arch(arch)
+
+
+- def guest_lookup(self, os_type=None, arch=None, typ=None,
+- accelerated=False, machine=None):
++ def guest_lookup(self, os_type=None, arch=None, typ=None, machine=None):
+ """
+ Simple virtualization availability lookup
+
+@@ -671,20 +652,13 @@ class Capabilities(object):
+ not found.
+
+ @param typ: Virtualization type ('hvm', 'xen', ...)
+- @type typ: C{str}
+ @param arch: Guest architecture ('x86_64', 'i686' ...)
+- @type arch: C{str}
+ @param os_type: Hypervisor name ('qemu', 'kvm', 'xen', ...)
+- @type os_type: C{str}
+- @param accelerated: Whether to look for accelerated domain if none is
+- specifically requested
+- @type accelerated: C{bool}
+ @param machine: Optional machine type to emulate
+- @type machine: C{str}
+
+ @returns: A (Capabilities Guest, Capabilities Domain) tuple
+ """
+- guest = self.guestForOSType(os_type, arch)
++ guest = self._guestForOSType(os_type, arch)
+ if not guest:
+ archstr = _("for arch '%s'") % arch
+ if not arch:
+@@ -697,12 +671,9 @@ class Capabilities(object):
+ raise ValueError(_("Host does not support %(virttype)s %(arch)s") %
+ {'virttype' : osstr, 'arch' : archstr})
+
+- domain = guest.bestDomainType(accelerated=accelerated,
+- dtype=typ,
+- machine=machine)
+-
++ domain = guest.bestDomainType(dtype=typ, machine=machine)
+ if domain is None:
+- machinestr = "with machine '%s'" % machine
++ machinestr = " with machine '%s'" % machine
+ if not machine:
+ machinestr = ""
+ raise ValueError(_("Host does not support domain type %(domain)s"
+diff --git a/virtinst/virtimage.py b/virtinst/virtimage.py
+index 44c5640..c09428b 100644
+--- a/virtinst/virtimage.py
++++ b/virtinst/virtimage.py
+@@ -348,13 +348,8 @@ class ImageInstaller(Installer):
+ self._boot_caps = image.domain.boots[boot_index]
+
+ # Set up internal caps.guest object
+- self._guest = self.conn.caps.guestForOSType(self.boot_caps.type,
+- self.boot_caps.arch)
+- if self._guest is None:
+- raise RuntimeError(_("Unsupported virtualization type: %s %s" %
+- (self.boot_caps.type, self.boot_caps.arch)))
+- self._domain = self._guest.bestDomainType()
+-
++ self._guest, self._domain = self.conn.caps.guest_lookup(
++ os_type=self.boot_caps.type, arch=self.boot_caps.arch)
+
+
+ # Custom ImageInstaller methods
diff --git a/0004-create-Don-t-alter-caps-machine-list.patch b/0004-create-Don-t-alter-caps-machine-list.patch
new file mode 100644
index 0000000..0e8755e
--- /dev/null
+++ b/0004-create-Don-t-alter-caps-machine-list.patch
@@ -0,0 +1,23 @@
+From 5cfcaad802ec9ab0024297b1e94ce1058e5b629b Mon Sep 17 00:00:00 2001
+From: Cole Robinson <crobinso at redhat.com>
+Date: Mon, 17 Feb 2014 11:56:54 -0500
+Subject: [PATCH] create: Don't alter caps machine list
+
+(cherry picked from commit 7c516b382cbb94c2ecafb07baedae19b8d1a2b67)
+---
+ virtManager/create.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/virtManager/create.py b/virtManager/create.py
+index 2af62c4..b4b1dfe 100644
+--- a/virtManager/create.py
++++ b/virtManager/create.py
+@@ -689,7 +689,7 @@ class vmmCreate(vmmGObjectUI):
+ model = lst.get_model()
+ model.clear()
+
+- machines = self.capsdomain.machines
++ machines = self.capsdomain.machines[:]
+ if self.capsguest.arch in ["i686", "x86_64"]:
+ machines = []
+ machines.sort()
diff --git a/virt-manager.spec b/virt-manager.spec
index ced336d..f4ca564 100644
--- a/virt-manager.spec
+++ b/virt-manager.spec
@@ -20,7 +20,7 @@
%define _version 1.0.0
-%define _release 1
+%define _release 2
# This macro is used for the continuous automated builds. It just
@@ -39,6 +39,14 @@ Group: Applications/Emulators
License: GPLv2+
URL: http://virt-manager.org/
Source0: http://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar.gz
+
+# Fix open connection->lxc
+Patch0001: 0001-connect-Fix-connecting-to-lxc-URI.patch
+# Fix issues creating ppc64 guests
+Patch0002: 0002-create-Fix-non-x86-qemu-kvm-guest-creation.patch
+Patch0003: 0003-caps-Simplify-guest-lookup-routines.patch
+# Fix generating disk targets from customize->addhw
+Patch0004: 0004-create-Don-t-alter-caps-machine-list.patch
BuildArch: noarch
@@ -105,6 +113,14 @@ machine).
%prep
%setup -q
+# Fix open connection->lxc
+%patch0001 -p1
+# Fix issues creating ppc64 guests
+%patch0002 -p1
+%patch0003 -p1
+# Fix generating disk targets from customize->addhw
+%patch0004 -p1
+
%build
%if %{qemu_user}
%define _qemu_user --qemu-user=%{qemu_user}
@@ -213,6 +229,11 @@ fi
%changelog
+* Tue Feb 18 2014 Cole Robinson <crobinso at redhat.com> - 1.0.0-2
+- Fix open connection->lxc
+- Fix issues creating ppc64 guests
+- Fix generating disk targets from customize->addhw
+
* Fri Feb 14 2014 Cole Robinson <crobinso at redhat.com> - 1.0.0-1
- Rebased to version 1.0.0
- New tool virt-xml: Edit libvirt XML in one shot from the command line
More information about the scm-commits
mailing list