summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/facter/virtual.rb7
-rw-r--r--spec/unit/virtual_spec.rb8
2 files changed, 10 insertions, 5 deletions
diff --git a/lib/facter/virtual.rb b/lib/facter/virtual.rb
index 7c649ba..2801a43 100644
--- a/lib/facter/virtual.rb
+++ b/lib/facter/virtual.rb
@@ -119,8 +119,11 @@ Facter.add("virtual") do
result = "vmware" if pd =~ /VMware/
result = "virtualbox" if pd =~ /VirtualBox/
end
- else
- output = Facter::Util::Resolution.exec('prtdiag')
+ elsif Facter.value(:kernel) == 'SunOS'
+ res = Facter::Util::Resolution.new('prtdiag')
+ res.timeout = 6
+ res.setcode('prtdiag')
+ output = res.value
if not output.nil?
output.each_line do |pd|
result = "parallels" if pd =~ /Parallels/
diff --git a/spec/unit/virtual_spec.rb b/spec/unit/virtual_spec.rb
index ac0a9bb..d169192 100644
--- a/spec/unit/virtual_spec.rb
+++ b/spec/unit/virtual_spec.rb
@@ -121,8 +121,10 @@ describe "Virtual fact" do
Facter.fact(:virtual).value.should == "virtualbox"
end
+ end
+ describe "on Solaris" do
it "should be vmware with VMWare vendor name from prtdiag" do
- Facter.fact(:kernel).stubs(:value).returns("Linux")
+ Facter.fact(:kernel).stubs(:value).returns("SunOS")
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: VMware, Inc. VMware Virtual Platform")
@@ -130,7 +132,7 @@ describe "Virtual fact" do
end
it "should be parallels with Parallels vendor name from prtdiag" do
- Facter.fact(:kernel).stubs(:value).returns("Linux")
+ Facter.fact(:kernel).stubs(:value).returns("SunOS")
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: Parallels Virtual Platform")
@@ -138,7 +140,7 @@ describe "Virtual fact" do
end
it "should be virtualbox with VirtualBox vendor name from prtdiag" do
- Facter.fact(:kernel).stubs(:value).returns("Linux")
+ Facter.fact(:kernel).stubs(:value).returns("SunOS")
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")