summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/facter/operatingsystem.rb9
-rw-r--r--lib/facter/operatingsystemrelease.rb12
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