Blame SOURCES/cobbler-xenpv-tap-driver.patch

1330ca
--- ./koan/xencreate.py	2010-07-28 17:48:48.000000000 +0200
1330ca
+++ ./koan/xencreate.py	2011-01-06 23:04:33.000000000 +0100
1330ca
@@ -36,11 +36,16 @@ import virtinst
1330ca
 import app as koan
1330ca
 
1330ca
 try:
1330ca
-    import virtinst.DistroManager as DistroManager
1330ca
-except:
1330ca
-    # older virtinst, this is probably ok
1330ca
-    # but we know we can't do Xen fullvirt installs
1330ca
-    pass
1330ca
+    from virtinst.DistroManager import PXEInstaller
1330ca
+    pxe_installer = PXEInstaller()
1330ca
+except ImportError:
1330ca
+    try:
1330ca
+        from virtinst import PXEInstaller
1330ca
+        pxe_installer = PXEInstaller(os_type='hvm')
1330ca
+    except:
1330ca
+        # older virtinst, this is probably ok
1330ca
+        # but we know we can't do Xen fullvirt installs
1330ca
+        pass
1330ca
 import traceback
1330ca
 
1330ca
 def random_mac():
1330ca
@@ -77,7 +82,7 @@ def start_install(name=None,
1330ca
 
1330ca
     if fullvirt:
1330ca
         # FIXME: add error handling here to explain when it's not supported
1330ca
-        guest = virtinst.FullVirtGuest(installer=DistroManager.PXEInstaller())
1330ca
+        guest = virtinst.FullVirtGuest(installer=pxe_installer)
1330ca
     else:
1330ca
         guest = virtinst.ParaVirtGuest()
1330ca
 
1330ca
@@ -123,7 +128,15 @@ def start_install(name=None,
1330ca
 
1330ca
     for d in disks:
1330ca
         if d[1] != 0 or d[0].startswith("/dev"):
1330ca
-            guest.disks.append(virtinst.XenDisk(d[0], size=d[1]))
1330ca
+            virtdisk = virtinst.XenDisk(d[0], size=d[1])
1330ca
+
1330ca
+            # Set driver_name to tap for Xen PV guests
1330ca
+            if guest.installer and guest.installer.os_type in ('xen', 'linux'):
1330ca
+                if virtdisk.type == virtinst.XenDisk.TYPE_FILE and \
1330ca
+                   virtinst._util.is_blktap_capable():
1330ca
+                    virtdisk.driver_name = virtinst.XenDisk.DRIVER_TAP
1330ca
+
1330ca
+            guest.disks.append(virtdisk)
1330ca
         else:
1330ca
             raise koan.InfoException("this virtualization type does not work without a disk image, set virt-size in Cobbler to non-zero")
1330ca