Merge pull request #92 from petems/MODULES-1570-java_version_facts
MODULES-1570 Java Version facts
This commit is contained in:
20
lib/facter/java_major_version.rb
Normal file
20
lib/facter/java_major_version.rb
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Fact: java_major_version
|
||||||
|
#
|
||||||
|
# Purpose: get Java's major version
|
||||||
|
#
|
||||||
|
# Resolution:
|
||||||
|
# Tests for presence of java, returns nil if not present
|
||||||
|
# returns output of "java -version" and splits on \n + '"'
|
||||||
|
# eg.
|
||||||
|
#
|
||||||
|
# Caveats:
|
||||||
|
# none
|
||||||
|
#
|
||||||
|
# Notes:
|
||||||
|
# None
|
||||||
|
Facter.add(:java_major_version) do
|
||||||
|
setcode do
|
||||||
|
java_version = Facter.value(:java_version)
|
||||||
|
java_patch_level = java_version.strip.split('_')[0].split('.')[1] unless java_version.nil?
|
||||||
|
end
|
||||||
|
end
|
||||||
18
lib/facter/java_patch_level.rb
Normal file
18
lib/facter/java_patch_level.rb
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Fact: java_patch_level
|
||||||
|
#
|
||||||
|
# Purpose: get Java's patch level
|
||||||
|
#
|
||||||
|
# Resolution:
|
||||||
|
# Uses java_version fact splits on the patch number (after _)
|
||||||
|
#
|
||||||
|
# Caveats:
|
||||||
|
# none
|
||||||
|
#
|
||||||
|
# Notes:
|
||||||
|
# None
|
||||||
|
Facter.add(:java_patch_level) do
|
||||||
|
setcode do
|
||||||
|
java_version = Facter.value(:java_version)
|
||||||
|
java_patch_level = java_version.strip.split('_')[1] unless java_version.nil?
|
||||||
|
end
|
||||||
|
end
|
||||||
20
lib/facter/java_version.rb
Normal file
20
lib/facter/java_version.rb
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Fact: java_version
|
||||||
|
#
|
||||||
|
# Purpose: get full java version string
|
||||||
|
#
|
||||||
|
# Resolution:
|
||||||
|
# Tests for presence of java, returns nil if not present
|
||||||
|
# returns output of "java -version" and splits on \n + '"'
|
||||||
|
#
|
||||||
|
# Caveats:
|
||||||
|
# none
|
||||||
|
#
|
||||||
|
# Notes:
|
||||||
|
# None
|
||||||
|
if Facter::Util::Resolution.which('java')
|
||||||
|
Facter.add(:java_version) do
|
||||||
|
setcode do
|
||||||
|
Facter::Util::Resolution.exec('java -version 2>&1').lines.first.split(/"/)[1].strip
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
27
spec/unit/facter/java_major_version_spec.rb
Normal file
27
spec/unit/facter/java_major_version_spec.rb
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
require "spec_helper"
|
||||||
|
|
||||||
|
describe Facter::Util::Fact do
|
||||||
|
before {
|
||||||
|
Facter.clear
|
||||||
|
}
|
||||||
|
|
||||||
|
describe "java_major_version" do
|
||||||
|
context 'returns major version when java_version fact present' do
|
||||||
|
before :each do
|
||||||
|
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
|
||||||
|
end
|
||||||
|
it do
|
||||||
|
Facter.fact(:java_major_version).value.should == "7"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'returns nil when java not present' do
|
||||||
|
before :each do
|
||||||
|
Facter.fact(:java_version).stubs(:value).returns(nil)
|
||||||
|
end
|
||||||
|
it do
|
||||||
|
Facter.fact(:java_major_version).value.should be_nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
31
spec/unit/facter/java_patch_level_spec.rb
Normal file
31
spec/unit/facter/java_patch_level_spec.rb
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
require "spec_helper"
|
||||||
|
|
||||||
|
describe Facter::Util::Fact do
|
||||||
|
before {
|
||||||
|
Facter.clear
|
||||||
|
}
|
||||||
|
|
||||||
|
describe "java_patch_level" do
|
||||||
|
context "if java is installed" do
|
||||||
|
context 'returns java patch version extracted from java_version fact' do
|
||||||
|
before :each do
|
||||||
|
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
|
||||||
|
end
|
||||||
|
it do
|
||||||
|
Facter.fact(:java_patch_level).value.should == "71"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "if java is installed" do
|
||||||
|
context 'returns java patch version extracted from java_version fact' do
|
||||||
|
before :each do
|
||||||
|
Facter.fact(:java_version).stubs(:value).returns(nil)
|
||||||
|
end
|
||||||
|
it do
|
||||||
|
Facter.fact(:java_patch_level).value.should be_nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
30
spec/unit/facter/java_version_spec.rb
Normal file
30
spec/unit/facter/java_version_spec.rb
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
require "spec_helper"
|
||||||
|
|
||||||
|
describe Facter::Util::Fact do
|
||||||
|
before {
|
||||||
|
Facter.clear
|
||||||
|
}
|
||||||
|
|
||||||
|
describe "java_version" do
|
||||||
|
context 'returns java version when java present' do
|
||||||
|
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(:which).with("java").returns(true)
|
||||||
|
Facter::Util::Resolution.expects(:exec).with("java -version 2>&1").returns(java_version_output)
|
||||||
|
Facter.fact(:java_version).value.should == "1.7.0_71"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'returns nil when java not present' do
|
||||||
|
it do
|
||||||
|
Facter::Util::Resolution.stubs(:exec)
|
||||||
|
Facter::Util::Resolution.expects(:which).with("java").returns(false)
|
||||||
|
Facter.fact(:java_version).should be_nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user