summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibaut Notteboom <tib@tibux.org>2013-11-19 16:15:35 +0100
committerBryan McLellan <btm@opscode.com>2013-11-25 11:27:27 -0800
commitbed2a6a69674e99abea5d79dc312592deecc577b (patch)
tree34de8366a4bbfecd914d1d6ab317dd788b2a2929
parentf7b5d7011d4363c2eda97b4634eace4fcb01977f (diff)
downloadohai-bed2a6a69674e99abea5d79dc312592deecc577b.tar.gz
OHAI-525 : can now detect qemu/kvm according the cpu type
-rw-r--r--lib/ohai/plugins/linux/virtualization.rb2
-rw-r--r--spec/unit/plugins/linux/virtualization_spec.rb16
2 files changed, 17 insertions, 1 deletions
diff --git a/lib/ohai/plugins/linux/virtualization.rb b/lib/ohai/plugins/linux/virtualization.rb
index c6fa9492..39c1f846 100644
--- a/lib/ohai/plugins/linux/virtualization.rb
+++ b/lib/ohai/plugins/linux/virtualization.rb
@@ -65,7 +65,7 @@ Ohai.plugin(:Virtualization) do
# It would be great if we could read pv_info in the kernel
# Wait for reply to: http://article.gmane.org/gmane.comp.emulators.kvm.devel/27885
if File.exists?("/proc/cpuinfo")
- if File.read("/proc/cpuinfo") =~ /QEMU Virtual CPU/
+ if File.read("/proc/cpuinfo") =~ /QEMU Virtual CPU|Common KVM processor|Common 32-bit KVM processor/
virtualization[:system] = "kvm"
virtualization[:role] = "guest"
end
diff --git a/spec/unit/plugins/linux/virtualization_spec.rb b/spec/unit/plugins/linux/virtualization_spec.rb
index 2a8f076d..855833c9 100644
--- a/spec/unit/plugins/linux/virtualization_spec.rb
+++ b/spec/unit/plugins/linux/virtualization_spec.rb
@@ -86,6 +86,22 @@ describe Ohai::System, "Linux virtualization platform" do
@plugin[:virtualization][:role].should == "guest"
end
+ it "should set kvm guest if /proc/cpuinfo contains Common KVM processor" do
+ File.should_receive(:exists?).with("/proc/cpuinfo").and_return(true)
+ File.stub(:read).with("/proc/cpuinfo").and_return("Common KVM processor")
+ @plugin.run
+ @plugin[:virtualization][:system].should == "kvm"
+ @plugin[:virtualization][:role].should == "guest"
+ end
+
+ it "should set kvm guest if /proc/cpuinfo contains Common 32-bit KVM processor" do
+ File.should_receive(:exists?).with("/proc/cpuinfo").and_return(true)
+ File.stub(:read).with("/proc/cpuinfo").and_return("Common 32-bit KVM processor")
+ @plugin.run
+ @plugin[:virtualization][:system].should == "kvm"
+ @plugin[:virtualization][:role].should == "guest"
+ end
+
it "should not set virtualization if kvm isn't there" do
File.should_receive(:exists?).at_least(:once).and_return(false)
@plugin.run