[Pkg-puppet-devel] [SCM] Packaging of Facter for debian branch, experimental_upstream, updated. 1.5.9-54-g5a4eeed
James Turnbull
james at lovedthanlost.net
Wed Jun 22 08:51:45 UTC 2011
The following commit has been merged in the experimental_upstream branch:
commit e42e57c1a5674d77dfa14e10ade9592f5d2052e7
Author: Michael Kincaid <michael at puppetlabs.com>
Date: Thu Mar 31 16:04:57 2011 -0700
(#3856) Add virtualbox detection via lspci (graphics card), dmidecode, and prtdiag for Solaris and corresponding tests. Darwin case is not handled yet.
diff --git a/lib/facter/virtual.rb b/lib/facter/virtual.rb
index 02802e6..7c649ba 100644
--- a/lib/facter/virtual.rb
+++ b/lib/facter/virtual.rb
@@ -104,6 +104,9 @@ Facter.add("virtual") do
# --- look for the vmware video card to determine if it is virtual => vmware.
# --- 00:0f.0 VGA compatible controller: VMware Inc [VMware SVGA II] PCI Display Adapter
result = "vmware" if p =~ /VM[wW]are/
+ # --- look for virtualbox video card to determine if it is virtual => virtualbox.
+ # --- 00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter
+ result = "virtualbox" if p =~ /VirtualBox/
# --- look for pci vendor id used by Parallels video card
# --- 01:00.0 VGA compatible controller: Unknown device 1ab8:4005
result = "parallels" if p =~ /1ab8:|[Pp]arallels/
@@ -114,6 +117,7 @@ Facter.add("virtual") do
output.each_line do |pd|
result = "parallels" if pd =~ /Parallels/
result = "vmware" if pd =~ /VMware/
+ result = "virtualbox" if pd =~ /VirtualBox/
end
else
output = Facter::Util::Resolution.exec('prtdiag')
@@ -121,6 +125,7 @@ Facter.add("virtual") do
output.each_line do |pd|
result = "parallels" if pd =~ /Parallels/
result = "vmware" if pd =~ /VMware/
+ result = "virtualbox" if pd =~ /VirtualBox/
end
end
end
diff --git a/spec/unit/virtual_spec.rb b/spec/unit/virtual_spec.rb
index 7e50847..ac0a9bb 100644
--- a/spec/unit/virtual_spec.rb
+++ b/spec/unit/virtual_spec.rb
@@ -94,6 +94,12 @@ describe "Virtual fact" do
Facter.fact(:virtual).value.should == "vmware"
end
+ it "should be virtualbox with VirtualBox vendor name from lspci" do
+ Facter.fact(:kernel).stubs(:value).returns("Linux")
+ Facter::Util::Resolution.stubs(:exec).with('lspci').returns("00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter")
+ Facter.fact(:virtual).value.should == "virtualbox"
+ end
+
it "should be vmware with VMWare vendor name from dmidecode" do
Facter.fact(:kernel).stubs(:value).returns("Linux")
Facter::Util::Resolution.stubs(:exec).with('lspci').returns(nil)
@@ -108,6 +114,13 @@ describe "Virtual fact" do
Facter.fact(:virtual).value.should == "parallels"
end
+ it "should be virtualbox with VirtualBox vendor name from dmidecode" do
+ Facter.fact(:kernel).stubs(:value).returns("Linux")
+ Facter::Util::Resolution.stubs(:exec).with('lspci').returns(nil)
+ Facter::Util::Resolution.stubs(:exec).with('dmidecode').returns("BIOS Information\nVendor: innotek GmbH\nVersion: VirtualBox\n\nSystem Information\nManufacturer: innotek GmbH\nProduct Name: VirtualBox\nFamily: Virtual Machine")
+ Facter.fact(:virtual).value.should == "virtualbox"
+ end
+
it "should be vmware with VMWare vendor name from prtdiag" do
Facter.fact(:kernel).stubs(:value).returns("Linux")
Facter::Util::Resolution.stubs(:exec).with('lspci').returns(nil)
@@ -123,6 +136,14 @@ describe "Virtual fact" do
Facter::Util::Resolution.stubs(:exec).with('prtdiag').returns("System Configuration: Parallels Virtual Platform")
Facter.fact(:virtual).value.should == "parallels"
end
+
+ it "should be virtualbox with VirtualBox vendor name from prtdiag" do
+ Facter.fact(:kernel).stubs(:value).returns("Linux")
+ Facter::Util::Resolution.stubs(:exec).with('lspci').returns(nil)
+ Facter::Util::Resolution.stubs(:exec).with('dmidecode').returns(nil)
+ Facter::Util::Resolution.stubs(:exec).with('prtdiag').returns("System Configuration: innotek GmbH VirtualBox")
+ Facter.fact(:virtual).value.should == "virtualbox"
+ end
end
end
@@ -152,6 +173,12 @@ describe "is_virtual fact" do
Facter.fact(:is_virtual).value.should == "true"
end
+ it "should be true when running on virtualbox" do
+ Facter.fact(:kernel).stubs(:value).returns("Linux")
+ Facter.fact(:virtual).stubs(:value).returns("virtualbox")
+ Facter.fact(:is_virtual).value.should == "true"
+ end
+
it "should be true when running on openvz" do
Facter.fact(:kernel).stubs(:value).returns("Linux")
Facter.fact(:virtual).stubs(:value).returns("openvzve")
--
Packaging of Facter for debian
More information about the Pkg-puppet-devel
mailing list