Patch modified from Hector Rivas
Signed-off-by: James Turnbull <[email protected]>
---
Local-branch: tickets/master/5699
lib/facter/util/virtual.rb | 3 +++
lib/facter/virtual.rb | 4 ++++
spec/unit/virtual_spec.rb | 20 ++++++++++++++++++--
3 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/lib/facter/util/virtual.rb b/lib/facter/util/virtual.rb
index 06b1b6d..4355451 100644
--- a/lib/facter/util/virtual.rb
+++ b/lib/facter/util/virtual.rb
@@ -70,4 +70,7 @@ module Facter::Util::Virtual
Facter::Util::Resolution.exec("/usr/bin/getconf MACHINE_MODEL").chomp
=~ /Virtual Machine/
end
+ def self.zlinux?
+ "zlinux"
+ end
end
diff --git a/lib/facter/virtual.rb b/lib/facter/virtual.rb
index 47c9504..a5954cd 100644
--- a/lib/facter/virtual.rb
+++ b/lib/facter/virtual.rb
@@ -31,6 +31,10 @@ Facter.add("virtual") do
result = "hpvm" if Facter::Util::Virtual.hpvm?
end
+ if Facter.value(:architecture)=="s390x"
+ result = "zlinux" if Facter::Util::Virtual.zlinux?
+ end
+
if Facter::Util::Virtual.openvz?
result = Facter::Util::Virtual.openvz_type()
end
diff --git a/spec/unit/virtual_spec.rb b/spec/unit/virtual_spec.rb
index 5f63dab..f5a5c3c 100644
--- a/spec/unit/virtual_spec.rb
+++ b/spec/unit/virtual_spec.rb
@@ -5,7 +5,6 @@ require 'facter/util/virtual'
require 'facter/util/macosx'
describe "Virtual fact" do
-
before do
Facter::Util::Virtual.stubs(:zone?).returns(false)
Facter::Util::Virtual.stubs(:openvz?).returns(false)
@@ -13,6 +12,7 @@ describe "Virtual fact" do
Facter::Util::Virtual.stubs(:xen?).returns(false)
Facter::Util::Virtual.stubs(:kvm?).returns(false)
Facter::Util::Virtual.stubs(:hpvm?).returns(false)
+ Facter::Util::Virtual.stubs(:zlinux?).returns(false)
end
it "should be zone on Solaris when a zone" do
@@ -36,6 +36,13 @@ describe "Virtual fact" do
Facter.fact(:virtual).value.should == "hpvm"
end
+ it "should be zlinux on s390x" do
+ Facter.fact(:kernel).stubs(:value).returns("Linux")
+ Facter.fact(:architecture).stubs(:value).returns("s390x")
+ Facter::Util::Virtual.stubs(:zlinux?).returns(true)
+ Facter.fact(:virtual).value.should == "zlinux"
+ end
+
describe "on Darwin" do
it "should be parallels with Parallels vendor id" do
Facter.fact(:kernel).stubs(:value).returns("Darwin")
@@ -63,7 +70,10 @@ describe "Virtual fact" do
end
describe "on Linux" do
-
+ before do
+ Facter.fact(:architecture).stubs(:value).returns(true)
+ end
+
it "should be parallels with Parallels vendor id from lspci" do
Facter.fact(:kernel).stubs(:value).returns("Linux")
Facter::Util::Resolution.stubs(:exec).with('lspci').returns("01:00.0
VGA compatible controller: Unknown device 1ab8:4005")
@@ -170,6 +180,12 @@ describe "is_virtual fact" do
Facter.fact(:is_virtual).value.should == "true"
end
+ it "should be true when running on S390" do
+ Facter.fact(:architecture).stubs(:value).returns("s390x")
+ Facter.fact(:virtual).stubs(:value).returns("zlinux")
+ Facter.fact(:is_virtual).value.should == "true"
+ end
+
it "should be true when running on parallels" do
Facter.fact(:kernel).stubs(:value).returns("Darwin")
Facter.fact(:virtual).stubs(:value).returns("parallels")
--
1.7.1
--
You received this message because you are subscribed to the Google Groups
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-dev?hl=en.