From 8e4a68983ca7605f7fdf9ea441c26eef9ff6b42e Mon Sep 17 00:00:00 2001 From: James Turnbull Date: Sat, 2 May 2009 21:40:22 +1000 Subject: Fixes #2169 Correctly recognises dom0 and domUs --- lib/facter/virtual.rb | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/lib/facter/virtual.rb b/lib/facter/virtual.rb index 3ad6f8a..78e5485 100644 --- a/lib/facter/virtual.rb +++ b/lib/facter/virtual.rb @@ -18,17 +18,21 @@ Facter.add("virtual") do end end - Thread::exclusive do - if FileTest.exists?("/proc/xen/capabilities") && FileTest.readable?("/proc/xen/capabilities") - txt = File.read("/proc/xen/capabilities") - if txt =~ /control_d/i - result = "xen0" - else - result = "xenu" - end - end + # new Xen domains have this in dom0 not domu :( + if FileTest.exists?("/proc/sys/xen/independent_wallclock") + result = "xenu" end - + if FileTest.exists?("/sys/bus/xen") + result = "xenu" + end + + if FileTest.exists?("/proc/xen/capabilities") + txt = File.read("/proc/xen/capabilities") + if txt =~ /control_d/i + result = "xen0" + end + end + if result == "physical" output = Facter::Util::Resolution.exec('lspci') if not output.nil? -- cgit