[Libguestfs] [PATCH 1/2] Remove converted SCSI controllers

Matthew Booth mbooth at redhat.com
Mon Sep 27 14:03:36 UTC 2010


We never use SCSI after conversion as we always use either VirtIO or IDE. As an
unsupported SCSI controller can prevent a converted guest from starting, it's
safer to just remove SCSI controllers.

Fixes RHBZ#637775
---
 lib/Sys/VirtV2V/Target/LibVirt.pm |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/lib/Sys/VirtV2V/Target/LibVirt.pm b/lib/Sys/VirtV2V/Target/LibVirt.pm
index 279e93d..95ffad4 100644
--- a/lib/Sys/VirtV2V/Target/LibVirt.pm
+++ b/lib/Sys/VirtV2V/Target/LibVirt.pm
@@ -330,11 +330,27 @@ sub create_guest
 
     my $vmm = $self->{vmm};
 
+    _unconfigure_incompatible_devices($dom);
     _configure_capabilities($vmm, $dom, $guestcaps);
 
     $vmm->define_domain($dom->toString());
 }
 
+sub _unconfigure_incompatible_devices
+{
+    my ($dom) = @_;
+
+    foreach my $path (
+        # We have replaced the SCSI controller with either VirtIO or IDE.
+        # Additionally, attempting to start a guest converted from ESX, which
+        # has an lsilogic SCSI controller, will fail on RHEL 5.
+        $dom->findnodes("/domain/devices/controller[\@type='scsi']")
+    )
+    {
+        $path->getParentNode()->removeChild($path);
+    }
+}
+
 # Configure guest according to target hypervisor's capabilities
 sub _configure_capabilities
 {
-- 
1.7.2.3




More information about the Libguestfs mailing list