On Tue, Feb 01, 2011 at 04:19:03PM +0000, Matthew Booth wrote:
VMware Tools can be installed by RPM or from a tarball. We were only
looking for the RPM. If it was installed by tarball, we would end up
leaving it in place. If VMware Tools detects that it is not running
on a VMware platform when it starts, it will clumsily try to
uninstall itself, leading to misconfiguration. This patch looks for
tarball-installed VMware Tools and uninstalls it.
Fixes RHBZ#623571
---
lib/Sys/VirtV2V/Converter/RedHat.pm | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/lib/Sys/VirtV2V/Converter/RedHat.pm b/lib/Sys/VirtV2V/Converter/RedHat.pm
index 762ee0e..114d876 100644
--- a/lib/Sys/VirtV2V/Converter/RedHat.pm
+++ b/lib/Sys/VirtV2V/Converter/RedHat.pm
@@ -756,6 +756,24 @@ sub _unconfigure_vmware
_remove_application($name, $g);
}
}
+
+ # VMwareTools may have been installed from tarball, in which case the above
+ # won't detect it. Look for the uninstall tool, and run it if it's present.
+ #
+ # Note that it's important we do this early in the conversion process, as
+ # this uninstallation script naively overwrites configuration files with
+ # versions it cached from prior to installation.
+ my $vmwaretools = '/usr/bin/vmware-uninstall-tools.pl';
+ if ($g->exists($vmwaretools)) {
I might use '$g->is_file' here, although that would fail if it was a
symlink.
+ eval { $g->command([$vmwaretools]) };
+ warn user_message(__x('VMware Tools was detected, but uninstallation '.
+ 'failed. The error message was: {error}',
+ error => $@)) if $@;
+
+ # Reload augeas to detect changed made by vmware tools uninstallation
s/changed/changes/
+ eval { $g->aug_load() };
+ augeas_error($g, $@) if $@;
+ }
}
ACK.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://et.redhat.com/~rjones/virt-df/