[Libguestfs] [PATCH] Check for, and uninstall, VMware Tools installed from tarball
Richard W.M. Jones
rjones at redhat.com
Tue Feb 1 19:52:25 UTC 2011
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/
More information about the Libguestfs
mailing list