Removing VMwareTools will delete some modprobe entries entirely, which caused an error when calling update_kernel_module. This change handles that gracefully. --- lib/Sys/VirtV2V/GuestOS/RedHat.pm | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/Sys/VirtV2V/GuestOS/RedHat.pm b/lib/Sys/VirtV2V/GuestOS/RedHat.pm index 380dacb..97bb32d 100644 --- a/lib/Sys/VirtV2V/GuestOS/RedHat.pm +++ b/lib/Sys/VirtV2V/GuestOS/RedHat.pm @@ -293,6 +293,9 @@ sub update_kernel_module my $g = $self->{g}; $augeas = $self->_check_augeas_device($augeas, $device); + # If the module has mysteriously disappeared, just add a new one + return $self->enable_kernel_module($device, $module) if (!defined($augeas)); + eval { $g->aug_set($augeas."/modulename", $module); $g->aug_save(); @@ -323,6 +326,10 @@ sub disable_kernel_module my $g = $self->{g}; $augeas = $self->_check_augeas_device($augeas, $device); + + # Nothing to do if the module has gone away + return if (!defined($augeas)); + eval { $g->aug_rm($augeas); }; @@ -388,8 +395,7 @@ sub _check_augeas_device # Propagate augeas errors die($@) if($@); - return $augeas if(defined($augeas)); - die("Unable to find augeas path similar to $path for $device"); + return $augeas; } =item get_default_kernel() -- 1.6.6