Merge pull request #143 from puppetlabs/master
Update 1.4.x with master changes
This commit is contained in:
@@ -12,12 +12,23 @@
|
||||
# Notes:
|
||||
# None
|
||||
Facter.add(:java_version) do
|
||||
# the OS-specific overrides need to be able to return nil,
|
||||
# to indicate "no java available". Usually returning nil
|
||||
# would mean that facter falls back to a lower priority
|
||||
# resolution, which would then trigger MODULES-2637. To
|
||||
# avoid that, we confine the "default" here to not run
|
||||
# on those OS.
|
||||
# Additionally, facter versions prior to 2.0.1 only support
|
||||
# positive matches, so this needs to be done manually in setcode.
|
||||
setcode do
|
||||
if Facter::Util::Resolution.which('java')
|
||||
Facter::Util::Resolution.exec('java -Xmx8m -version 2>&1').lines.first.split(/"/)[1].strip
|
||||
unless [ 'openbsd', 'darwin' ].include? Facter.value(:operatingsystem).downcase
|
||||
if Facter::Util::Resolution.which('java')
|
||||
Facter::Util::Resolution.exec('java -Xmx8m -version 2>&1').lines.first.split(/"/)[1].strip
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Facter.add(:java_version) do
|
||||
confine :operatingsystem => 'OpenBSD'
|
||||
has_weight 100
|
||||
@@ -29,3 +40,13 @@ Facter.add(:java_version) do
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Facter.add(:java_version) do
|
||||
confine :operatingsystem => 'Darwin'
|
||||
has_weight 100
|
||||
setcode do
|
||||
unless /Unable to find any JVMs matching version/ =~ Facter::Util::Resolution.exec('/usr/libexec/java_home --failfast 2>&1')
|
||||
Facter::Util::Resolution.exec('java -Xmx8m -version 2>&1').lines.first.split(/"/)[1].strip
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1 +1,6 @@
|
||||
require 'puppetlabs_spec_helper/module_spec_helper'
|
||||
|
||||
RSpec.configure do |c|
|
||||
# declare an exclusion filter for the tests using with_env on facter 1.6, as the function is not available on 1.6
|
||||
c.filter_run_excluding :with_env => true if Facter.version =~ /^1\.6\./
|
||||
end
|
||||
|
||||
@@ -11,7 +11,7 @@ describe Facter::Util::Fact do
|
||||
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
|
||||
end
|
||||
it do
|
||||
Facter.fact(:java_major_version).value.should == "7"
|
||||
expect(Facter.fact(:java_major_version).value).to eq("7")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -20,8 +20,8 @@ describe Facter::Util::Fact do
|
||||
Facter.fact(:java_version).stubs(:value).returns(nil)
|
||||
end
|
||||
it do
|
||||
Facter.fact(:java_major_version).value.should be_nil
|
||||
expect(Facter.fact(:java_major_version).value).to be_nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -12,7 +12,7 @@ describe Facter::Util::Fact do
|
||||
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
|
||||
end
|
||||
it do
|
||||
Facter.fact(:java_patch_level).value.should == "71"
|
||||
expect(Facter.fact(:java_patch_level).value).to eq("71")
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -23,7 +23,7 @@ describe Facter::Util::Fact do
|
||||
Facter.fact(:java_version).stubs(:value).returns(nil)
|
||||
end
|
||||
it do
|
||||
Facter.fact(:java_patch_level).value.should be_nil
|
||||
expect(Facter.fact(:java_patch_level).value).to be_nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -7,7 +7,7 @@ describe Facter::Util::Fact do
|
||||
|
||||
describe "java_version" do
|
||||
context 'returns java version when java present' do
|
||||
context 'on OpenBSD' do
|
||||
context 'on OpenBSD', :with_env => true do
|
||||
before do
|
||||
Facter.fact(:operatingsystem).stubs(:value).returns("OpenBSD")
|
||||
end
|
||||
@@ -20,6 +20,22 @@ OpenJDK 64-Bit Server VM (build 24.71-b01, mixed mode)
|
||||
EOS
|
||||
Facter::Util::Resolution.expects(:which).with("java").returns('/usr/local/jdk-1.7.0/jre/bin/java')
|
||||
Facter::Util::Resolution.expects(:exec).with("java -Xmx8m -version 2>&1").returns(java_version_output)
|
||||
expect(Facter.value(:java_version)).to eq("1.7.0_71")
|
||||
end
|
||||
end
|
||||
context 'on Darwin' do
|
||||
before do
|
||||
Facter.fact(:operatingsystem).stubs(:value).returns("Darwin")
|
||||
end
|
||||
let(:facts) { {:operatingsystem => 'Darwin'} }
|
||||
it do
|
||||
java_version_output = <<-EOS
|
||||
java version "1.7.0_71"
|
||||
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
|
||||
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
|
||||
EOS
|
||||
Facter::Util::Resolution.expects(:exec).with("/usr/libexec/java_home --failfast 2>&1").returns("/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home")
|
||||
Facter::Util::Resolution.expects(:exec).with("java -Xmx8m -version 2>&1").returns(java_version_output)
|
||||
Facter.value(:java_version).should == "1.7.0_71"
|
||||
end
|
||||
end
|
||||
@@ -35,19 +51,29 @@ Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
|
||||
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
|
||||
EOS
|
||||
Facter::Util::Resolution.expects(:exec).with("java -Xmx8m -version 2>&1").returns(java_version_output)
|
||||
Facter.value(:java_version).should == "1.7.0_71"
|
||||
expect(Facter.value(:java_version)).to eq("1.7.0_71")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'returns nil when java not present' do
|
||||
context 'on OpenBSD' do
|
||||
context 'on OpenBSD', :with_env => true do
|
||||
before do
|
||||
Facter.fact(:operatingsystem).stubs(:value).returns("OpenBSD")
|
||||
end
|
||||
let(:facts) { {:operatingsystem => 'OpenBSD'} }
|
||||
it do
|
||||
Facter::Util::Resolution.stubs(:exec)
|
||||
expect(Facter.value(:java_version)).to be_nil
|
||||
end
|
||||
end
|
||||
context 'on Darwin' do
|
||||
before do
|
||||
Facter.fact(:operatingsystem).stubs(:value).returns("Darwin")
|
||||
end
|
||||
let(:facts) { {:operatingsystem => 'Darwin'} }
|
||||
it do
|
||||
Facter::Util::Resolution.expects(:exec).at_least(1).with("/usr/libexec/java_home --failfast 2>&1").returns('Unable to find any JVMs matching version "(null)".')
|
||||
Facter.value(:java_version).should be_nil
|
||||
end
|
||||
end
|
||||
@@ -58,7 +84,7 @@ Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
|
||||
let(:facts) { {:operatingsystem => 'MyOS'} }
|
||||
it do
|
||||
Facter::Util::Resolution.expects(:which).at_least(1).with("java").returns(false)
|
||||
Facter.value(:java_version).should be_nil
|
||||
expect(Facter.value(:java_version)).to be_nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user