From e917e1a7f47b4399f5d1dd32dd5cd8ad5da86b64 Mon Sep 17 00:00:00 2001 From: James Turnbull Date: Tue, 15 Mar 2011 18:09:35 +1100 Subject: Fixed #3087 - Identify VMWare Added support for VMWareESX and ESXi to operatingsystem and operatingsystemrelease facts Added appropriate tests --- lib/facter/operatingsystem.rb | 9 +++++++++ lib/facter/operatingsystemrelease.rb | 12 +++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/facter/operatingsystem.rb b/lib/facter/operatingsystem.rb index 1675909..25eeb00 100644 --- a/lib/facter/operatingsystem.rb +++ b/lib/facter/operatingsystem.rb @@ -32,6 +32,8 @@ Facter.add(:operatingsystem) do end elsif FileTest.exists?("/etc/arch-release") "Arch" + elsif FileTest.exists?("/etc/vmware-release") + "VMWareESX" elsif FileTest.exists?("/etc/redhat-release") txt = File.read("/etc/redhat-release") if txt =~ /centos/i @@ -62,6 +64,13 @@ Facter.add(:operatingsystem) do end end +Facter.add(:operatingsystem) do + confine :kernel => "VMkernel" + setcode do + "ESXi" + end +end + Facter.add(:operatingsystem) do # Default to just returning the kernel as the operating system setcode do Facter[:kernel].value end diff --git a/lib/facter/operatingsystemrelease.rb b/lib/facter/operatingsystemrelease.rb index ac9be65..da1b76a 100644 --- a/lib/facter/operatingsystemrelease.rb +++ b/lib/facter/operatingsystemrelease.rb @@ -83,6 +83,16 @@ Facter.add(:operatingsystemrelease) do end end +Facter.add(:operatingsystemrelease) do + confine :operatingsystem => %w{VMwareESX} + setcode do + release = Facter::Util::Resolution.exec('vmware -v') + if release =~ /VMware ESX .*?(\d.*)/ + $1 + end + end +end + Facter.add(:operatingsystemrelease) do confine :operatingsystem => %w{Slamd64} setcode do @@ -96,5 +106,5 @@ Facter.add(:operatingsystemrelease) do end Facter.add(:operatingsystemrelease) do - setcode do Facter[:kernelrelease].value end + setcode do Facter[:kernelrelease].value end end -- cgit