diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/facter/util/virtual.rb | 17 | ||||
-rw-r--r-- | lib/facter/virtual.rb | 6 |
2 files changed, 22 insertions, 1 deletions
diff --git a/lib/facter/util/virtual.rb b/lib/facter/util/virtual.rb index 0c3fb73..ca7c367 100644 --- a/lib/facter/util/virtual.rb +++ b/lib/facter/util/virtual.rb @@ -40,4 +40,21 @@ module Facter::Util::Virtual FileTest.exists?(f) end end + + def self.kvm? + if FileTest.exists?("/proc/cpuinfo") + txt = File.read("/proc/cpuinfo") + return true if txt =~ /QEMU Virtual CPU/ + end + return false + end + + def self.kvm_type + # TODO Tell the difference between kvm and qemu + # Can't work out a way to do this at the moment that doesn't + # require a special binary + "kvm" + end + + end diff --git a/lib/facter/virtual.rb b/lib/facter/virtual.rb index 78413a9..3f02003 100644 --- a/lib/facter/virtual.rb +++ b/lib/facter/virtual.rb @@ -34,6 +34,10 @@ Facter.add("virtual") do end end + if Facter::Util::Virtual.kvm? + result = Facter::Util::Virtual.kvm_type() + end + if result == "physical" output = Facter::Util::Resolution.exec('lspci') if not output.nil? @@ -72,7 +76,7 @@ Facter.add("is_virtual") do setcode do case Facter.value(:virtual) - when "xenu", "openvzve", "vmware" + when "xenu", "openvzve", "vmware", "kvm" true else false |