diff options
author | Paul Nasrat <pnasrat@googlemail.com> | 2009-05-28 08:15:01 +0100 |
---|---|---|
committer | Paul Nasrat <pnasrat@googlemail.com> | 2009-07-16 14:17:18 +0100 |
commit | c02d3b66eb2878968befea64c3a3ab69dc9e5de8 (patch) | |
tree | 3127d620164a612a64e754c5a4ce0b0f49733fa1 /lib/facter/virtual.rb | |
parent | 545f3c1405451afecb1e79bd34e15640322162e2 (diff) | |
download | facter-c02d3b66eb2878968befea64c3a3ab69dc9e5de8.tar.gz facter-c02d3b66eb2878968befea64c3a3ab69dc9e5de8.tar.xz facter-c02d3b66eb2878968befea64c3a3ab69dc9e5de8.zip |
Issue #2292 Add tests for virtual facts
Add tests and utility for virtual fact detection
Diffstat (limited to 'lib/facter/virtual.rb')
-rw-r--r-- | lib/facter/virtual.rb | 35 |
1 files changed, 11 insertions, 24 deletions
diff --git a/lib/facter/virtual.rb b/lib/facter/virtual.rb index 72bfe51..299ebb4 100644 --- a/lib/facter/virtual.rb +++ b/lib/facter/virtual.rb @@ -1,32 +1,19 @@ +require 'facter/util/virtual' + Facter.add("virtual") do confine :kernel => %w{Linux FreeBSD OpenBSD SunOS} result = "physical" setcode do - require 'thread' - if FileTest.exists?("/sbin/zonename") - z = %x{"/sbin/zonename"}.chomp - if z != 'global' - result = 'zone' - end - end + result = "zone" if Facter::Util::Virtual.zone? - if FileTest.exists?("/proc/vz/veinfo") - if FileTest.exists?("/proc/vz/version") - result = "openvzhn" - else - result = "openvzve" - end + if Facter::Util::Virtual.openvz? + result = Facter::Util::Virtual.openvz_type() end - if FileTest.exists?("/proc/self/status") - txt = File.read("/proc/self/status") - if txt =~ /^(s_context|VxID):[[:blank:]]*[1-9]/ - result = "vserver" - end - end + result = "vserver" if Facter::Util::Virtual.vserver? if FileTest.exists?("/proc/virtual") result = "vserver_host" @@ -34,19 +21,19 @@ Facter.add("virtual") do # new Xen domains have this in dom0 not domu :( if FileTest.exists?("/proc/sys/xen/independent_wallclock") - result = "xenu" + result = "xenu" end if FileTest.exists?("/sys/bus/xen") - result = "xenu" + result = "xenu" end if FileTest.exists?("/proc/xen/capabilities") txt = File.read("/proc/xen/capabilities") if txt =~ /control_d/i - result = "xen0" + result = "xen0" end end - + if result == "physical" output = Facter::Util::Resolution.exec('lspci') if not output.nil? @@ -86,7 +73,7 @@ Facter.add("is_virtual") do setcode do case Facter.value(:virtual) - when "xenu", "openvzve", "vmware" + when "xenu", "openvzve", "vmware" true else false |