diff options
author | James Turnbull <james@lovedthanlost.net> | 2011-03-15 18:09:35 +1100 |
---|---|---|
committer | James Turnbull <james@lovedthanlost.net> | 2011-03-17 07:19:19 +1100 |
commit | e917e1a7f47b4399f5d1dd32dd5cd8ad5da86b64 (patch) | |
tree | d2c4672c4663bde7eff23e1b8376e11ae23d672c /lib | |
parent | d0f0f63f91a0eff72c1c528a6b5fb325bd9001d4 (diff) | |
download | facter-e917e1a7f47b4399f5d1dd32dd5cd8ad5da86b64.tar.gz facter-e917e1a7f47b4399f5d1dd32dd5cd8ad5da86b64.tar.xz facter-e917e1a7f47b4399f5d1dd32dd5cd8ad5da86b64.zip |
Fixed #3087 - Identify VMWare
Added support for VMWareESX and ESXi to operatingsystem and
operatingsystemrelease facts
Added appropriate tests
Diffstat (limited to 'lib')
-rw-r--r-- | lib/facter/operatingsystem.rb | 9 | ||||
-rw-r--r-- | lib/facter/operatingsystemrelease.rb | 12 |
2 files changed, 20 insertions, 1 deletions
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 @@ -63,6 +65,13 @@ Facter.add(:operatingsystem) do 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 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 @@ -84,6 +84,16 @@ Facter.add(:operatingsystemrelease) do 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 releasefile = Facter::Util::Resolution.exec('cat /etc/slamd64-version') @@ -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 |