Cleanup ruby code via rubocop

This commit will add code cleanup as corrected
and alerted by rubocop. It also adds rules to
execute rubocop on Travis.
This commit is contained in:
Will Meek
2017-11-17 16:40:06 +00:00
parent 692b490438
commit dec5136e11
18 changed files with 714 additions and 1087 deletions

View File

@@ -1,508 +1,98 @@
require: rubocop-rspec ---
require:
- rubocop-rspec
AllCops: AllCops:
TargetRubyVersion: 1.9 TargetRubyVersion: '2.1'
Include: Include:
- ./**/*.rb - "./**/*.rb"
Exclude: Exclude:
- vendor/**/* - bin/*
- .vendor/**/* - ".vendor/**/*"
- Gemfile
- Rakefile
- pkg/**/* - pkg/**/*
- spec/fixtures/**/* - spec/fixtures/**/*
Lint/ConditionPosition: - vendor/**/*
Enabled: True inherit_from: .rubocop_todo.yml
Lint/ElseLayout:
Enabled: True
Lint/UnreachableCode:
Enabled: True
Lint/UselessComparison:
Enabled: True
Lint/EnsureReturn:
Enabled: True
Lint/HandleExceptions:
Enabled: True
Lint/LiteralInCondition:
Enabled: True
Lint/ShadowingOuterLocalVariable:
Enabled: True
Lint/LiteralInInterpolation:
Enabled: True
Style/HashSyntax:
Enabled: True
Style/RedundantReturn:
Enabled: True
Lint/AmbiguousOperator:
Enabled: True
Lint/AssignmentInCondition:
Enabled: True
Style/SpaceBeforeComment:
Enabled: True
Style/AndOr:
Enabled: True
Style/RedundantSelf:
Enabled: True
# Method length is not necessarily an indicator of code quality
Metrics/MethodLength:
Enabled: False
# Module length is not necessarily an indicator of code quality
Metrics/ModuleLength:
Enabled: False
Style/WhileUntilModifier:
Enabled: True
Lint/AmbiguousRegexpLiteral:
Enabled: True
Lint/Eval:
Enabled: True
Lint/BlockAlignment:
Enabled: True
Lint/DefEndAlignment:
Enabled: True
Lint/EndAlignment:
Enabled: True
Lint/DeprecatedClassMethods:
Enabled: True
Lint/Loop:
Enabled: True
Lint/ParenthesesAsGroupedExpression:
Enabled: True
Lint/RescueException:
Enabled: True
Lint/StringConversionInInterpolation:
Enabled: True
Lint/UnusedBlockArgument:
Enabled: True
Lint/UnusedMethodArgument:
Enabled: True
Lint/UselessAccessModifier:
Enabled: True
Lint/UselessAssignment:
Enabled: True
Lint/Void:
Enabled: True
Style/AccessModifierIndentation:
Enabled: True
Style/AccessorMethodName:
Enabled: True
Style/Alias:
Enabled: True
Style/AlignArray:
Enabled: True
Style/AlignHash:
Enabled: True
Style/AlignParameters:
Enabled: True
Metrics/BlockNesting:
Enabled: True
Style/AsciiComments:
Enabled: True
Style/Attr:
Enabled: True
Style/BracesAroundHashParameters:
Enabled: True
Style/CaseEquality:
Enabled: True
Style/CaseIndentation:
Enabled: True
Style/CharacterLiteral:
Enabled: True
Style/ClassAndModuleCamelCase:
Enabled: True
Style/ClassAndModuleChildren:
Enabled: False
Style/ClassCheck:
Enabled: True
# Class length is not necessarily an indicator of code quality
Metrics/ClassLength:
Enabled: False
Style/ClassMethods:
Enabled: True
Style/ClassVars:
Enabled: True
Style/WhenThen:
Enabled: True
Style/WordArray:
Enabled: True
Style/UnneededPercentQ:
Enabled: True
Style/Tab:
Enabled: True
Style/SpaceBeforeSemicolon:
Enabled: True
Style/TrailingBlankLines:
Enabled: True
Style/SpaceInsideBlockBraces:
Enabled: True
Style/SpaceInsideBrackets:
Enabled: True
Style/SpaceInsideHashLiteralBraces:
Enabled: True
Style/SpaceInsideParens:
Enabled: True
Style/LeadingCommentSpace:
Enabled: True
Style/SpaceBeforeFirstArg:
Enabled: True
Style/SpaceAfterColon:
Enabled: True
Style/SpaceAfterComma:
Enabled: True
Style/SpaceAfterMethodName:
Enabled: True
Style/SpaceAfterNot:
Enabled: True
Style/SpaceAfterSemicolon:
Enabled: True
Style/SpaceAroundEqualsInParameterDefault:
Enabled: True
Style/SpaceAroundOperators:
Enabled: True
Style/SpaceBeforeBlockBraces:
Enabled: True
Style/SpaceBeforeComma:
Enabled: True
Style/CollectionMethods:
Enabled: True
Style/CommentIndentation:
Enabled: True
Style/ColonMethodCall:
Enabled: True
Style/CommentAnnotation:
Enabled: True
# 'Complexity' is very relative
Metrics/CyclomaticComplexity:
Enabled: False
Style/ConstantName:
Enabled: True
Style/Documentation:
Enabled: False
Style/DefWithParentheses:
Enabled: True
Style/PreferredHashMethods:
Enabled: True
Style/DotPosition:
EnforcedStyle: trailing
Style/DoubleNegation:
Enabled: True
Style/EachWithObject:
Enabled: True
Style/EmptyLineBetweenDefs:
Enabled: True
Style/IndentArray:
Enabled: True
Style/IndentHash:
Enabled: True
Style/IndentationConsistency:
Enabled: True
Style/IndentationWidth:
Enabled: True
Style/EmptyLines:
Enabled: True
Style/EmptyLinesAroundAccessModifier:
Enabled: True
Style/EmptyLiteral:
Enabled: True
# Configuration parameters: AllowURI, URISchemes.
Metrics/LineLength: Metrics/LineLength:
Enabled: False Description: People have wide screens, use them.
Max: 200
Style/MethodCallParentheses: RSpec/BeforeAfterAll:
Enabled: True Description: Beware of using after(:all) as it may cause state to leak between tests.
A necessary evil in acceptance testing.
Style/MethodDefParentheses: Exclude:
Enabled: True - spec/acceptance/**/*.rb
RSpec/HookArgument:
Style/LineEndConcatenation: Description: Prefer explicit :each argument, matching existing module's style
Enabled: True EnforcedStyle: each
Style/TrailingWhitespace:
Enabled: True
Style/StringLiterals:
Enabled: True
Style/TrailingCommaInArguments:
Enabled: True
Style/TrailingCommaInLiteral:
Enabled: True
Style/GlobalVars:
Enabled: True
Style/GuardClause:
Enabled: True
Style/IfUnlessModifier:
Enabled: True
Style/MultilineIfThen:
Enabled: True
Style/NegatedIf:
Enabled: True
Style/NegatedWhile:
Enabled: True
Style/Next:
Enabled: True
Style/SingleLineBlockParams:
Enabled: True
Style/SingleLineMethods:
Enabled: True
Style/SpecialGlobalVars:
Enabled: True
Style/TrivialAccessors:
Enabled: True
Style/UnlessElse:
Enabled: True
Style/VariableInterpolation:
Enabled: True
Style/VariableName:
Enabled: True
Style/WhileUntilDo:
Enabled: True
Style/EvenOdd:
Enabled: True
Style/FileName:
Enabled: True
Style/For:
Enabled: True
Style/Lambda:
Enabled: True
Style/MethodName:
Enabled: True
Style/MultilineTernaryOperator:
Enabled: True
Style/NestedTernaryOperator:
Enabled: True
Style/NilComparison:
Enabled: True
Style/FormatString:
Enabled: True
Style/MultilineBlockChain:
Enabled: True
Style/Semicolon:
Enabled: True
Style/SignalException:
Enabled: True
Style/NonNilCheck:
Enabled: True
Style/Not:
Enabled: True
Style/NumericLiterals:
Enabled: True
Style/OneLineConditional:
Enabled: True
Style/OpMethod:
Enabled: True
Style/ParenthesesAroundCondition:
Enabled: True
Style/PercentLiteralDelimiters:
Enabled: True
Style/PerlBackrefs:
Enabled: True
Style/PredicateName:
Enabled: True
Style/RedundantException:
Enabled: True
Style/SelfAssignment:
Enabled: True
Style/Proc:
Enabled: True
Style/RaiseArgs:
Enabled: True
Style/RedundantBegin:
Enabled: True
Style/RescueModifier:
Enabled: True
# based on https://github.com/voxpupuli/modulesync_config/issues/168
Style/RegexpLiteral:
EnforcedStyle: percent_r
Enabled: True
Lint/UnderscorePrefixedVariableName:
Enabled: True
Metrics/ParameterLists:
Enabled: False
Lint/RequireParentheses:
Enabled: True
Style/SpaceBeforeFirstArg:
Enabled: True
Style/ModuleFunction:
Enabled: True
Lint/Debugger:
Enabled: True
Style/IfWithSemicolon:
Enabled: True
Style/Encoding:
Enabled: True
Style/BlockDelimiters: Style/BlockDelimiters:
Enabled: True Description: Prefer braces for chaining. Mostly an aesthetical choice. Better to
be consistent then.
Style/MultilineBlockLayout: EnforcedStyle: braces_for_chaining
Enabled: True Style/ClassAndModuleChildren:
Description: Compact style reduces the required amount of indentation.
# 'Complexity' is very relative EnforcedStyle: compact
Style/EmptyElse:
Description: Enforce against empty else clauses, but allow `nil` for clarity.
EnforcedStyle: empty
Style/FormatString:
Description: Following the main puppet project's style, prefer the % format format.
EnforcedStyle: percent
Style/FormatStringToken:
Description: Following the main puppet project's style, prefer the simpler template
tokens over annotated ones.
EnforcedStyle: template
Style/Lambda:
Description: Prefer the keyword for easier discoverability.
EnforcedStyle: literal
Style/RegexpLiteral:
Description: Community preference. See https://github.com/voxpupuli/modulesync_config/issues/168
EnforcedStyle: percent_r
Style/TernaryParentheses:
Description: Checks for use of parentheses around ternary conditions. Enforce parentheses
on complex expressions for better readability, but seriously consider breaking
it up.
EnforcedStyle: require_parentheses_when_complex
Style/TrailingCommaInArguments:
Description: Prefer always trailing comma on multiline argument lists. This makes
diffs, and re-ordering nicer.
EnforcedStyleForMultiline: comma
Style/TrailingCommaInLiteral:
Description: Prefer always trailing comma on multiline literals. This makes diffs,
and re-ordering nicer.
EnforcedStyleForMultiline: comma
Style/SymbolArray:
Description: Using percent style obscures symbolic intent of array's contents.
EnforcedStyle: brackets
Style/CollectionMethods:
Enabled: true
Style/MethodCalledOnDoEndBlock:
Enabled: true
Style/StringMethods:
Enabled: true
Metrics/AbcSize: Metrics/AbcSize:
Enabled: False Enabled: false
Metrics/BlockLength:
# 'Complexity' is very relative Enabled: false
Metrics/ClassLength:
Enabled: false
Metrics/CyclomaticComplexity:
Enabled: false
Metrics/MethodLength:
Enabled: false
Metrics/ModuleLength:
Enabled: false
Metrics/ParameterLists:
Enabled: false
Metrics/PerceivedComplexity: Metrics/PerceivedComplexity:
Enabled: False Enabled: false
Lint/UselessAssignment:
Enabled: True
Style/ClosingParenthesisIndentation:
Enabled: False
# RSpec
# We don't use rspec in this way
RSpec/DescribeClass: RSpec/DescribeClass:
Enabled: False Enabled: false
RSpec/MessageExpectation:
# Example length is not necessarily an indicator of code quality Enabled: false
RSpec/ExampleLength: Style/AsciiComments:
Enabled: False Enabled: false
Style/IfUnlessModifier:
RSpec/NamedSubject: Enabled: false
Enabled: False Style/SymbolProc:
Enabled: false

0
.rubocop_todo.yml Normal file
View File

View File

@@ -3,3 +3,6 @@ appveyor.yml:
delete: true delete: true
spec/spec_helper.rb: spec/spec_helper.rb:
allow_deprecations: true allow_deprecations: true
extras:
- rvm: 2.1.9
script: bundle exec rake rubocop

View File

@@ -28,5 +28,7 @@ matrix:
- rvm: 2.1.9 - rvm: 2.1.9
bundler_args: --without system_tests bundler_args: --without system_tests
env: PUPPET_GEM_VERSION="~> 4.0" env: PUPPET_GEM_VERSION="~> 4.0"
- rvm: 2.1.9
script: bundle exec rake rubocop
notifications: notifications:
email: false email: false

View File

@@ -11,18 +11,20 @@
# Notes: # Notes:
# None # None
Facter.add(:java_default_home) do Facter.add(:java_default_home) do
confine :kernel => [ 'Linux', 'OpenBSD' ] confine kernel: %w[Linux OpenBSD]
java_default_home = nil
setcode do setcode do
java_bin = Facter::Util::Resolution.which('java').to_s.strip java_bin = Facter::Util::Resolution.which('java').to_s.strip
if java_bin.empty? if java_bin.empty?
nil nil
else else
java_path = File.realpath(java_bin) java_path = File.realpath(java_bin)
if java_path =~ %r(/jre/) java_default_home = if java_path =~ %r{/jre/}
java_default_home = File.dirname(File.dirname(File.dirname(java_path))) File.dirname(File.dirname(File.dirname(java_path)))
else else
java_default_home = File.dirname(File.dirname(java_path)) File.dirname(File.dirname(java_path))
end end
end end
end end
java_default_home
end end

View File

@@ -11,7 +11,7 @@
# Notes: # Notes:
# None # None
Facter.add(:java_libjvm_path) do Facter.add(:java_libjvm_path) do
confine :kernel => [ "Linux", "OpenBSD" ] confine kernel: %w[Linux OpenBSD]
setcode do setcode do
java_default_home = Facter.value(:java_default_home) java_default_home = Facter.value(:java_default_home)
java_libjvm_file = Dir.glob("#{java_default_home}/jre/lib/**/libjvm.so") java_libjvm_file = Dir.glob("#{java_default_home}/jre/lib/**/libjvm.so")
@@ -22,4 +22,3 @@ Facter.add(:java_libjvm_path) do
end end
end end
end end

View File

@@ -13,8 +13,10 @@
# Notes: # Notes:
# None # None
Facter.add(:java_major_version) do Facter.add(:java_major_version) do
java_major_version = nil
setcode do setcode do
java_version = Facter.value(:java_version) java_version = Facter.value(:java_version)
java_patch_level = java_version.strip.split('_')[0].split('.')[1] unless java_version.nil? java_major_version = java_version.strip.split('_')[0].split('.')[1] unless java_version.nil?
end end
java_major_version
end end

View File

@@ -11,8 +11,10 @@
# Notes: # Notes:
# None # None
Facter.add(:java_patch_level) do Facter.add(:java_patch_level) do
java_patch_level = nil
setcode do setcode do
java_version = Facter.value(:java_version) java_version = Facter.value(:java_version)
java_patch_level = java_version.strip.split('_')[1] unless java_version.nil? java_patch_level = java_version.strip.split('_')[1] unless java_version.nil?
end end
java_patch_level
end end

View File

@@ -24,7 +24,7 @@ Facter.add(:java_version) do
unless ['darwin'].include? Facter.value(:operatingsystem).downcase unless ['darwin'].include? Facter.value(:operatingsystem).downcase
version = nil version = nil
if Facter::Util::Resolution.which('java') if Facter::Util::Resolution.which('java')
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = $~[1] if /^.+ version \"(.+)\"$/ =~ line } Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = $LAST_MATCH_INFO[1] if %r{^.+ version \"(.+)\"$} =~ line }
end end
version version
end end
@@ -32,12 +32,12 @@ Facter.add(:java_version) do
end end
Facter.add(:java_version) do Facter.add(:java_version) do
confine :operatingsystem => 'Darwin' confine operatingsystem: 'Darwin'
has_weight 100 has_weight 100
setcode do setcode do
unless /Unable to find any JVMs matching version/ =~ Facter::Util::Resolution.exec('/usr/libexec/java_home --failfast 2>&1') unless %r{Unable to find any JVMs matching version} =~ Facter::Util::Resolution.exec('/usr/libexec/java_home --failfast 2>&1')
version = nil version = nil
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = $~[1] if /^.+ version \"(.+)\"$/ =~ line } Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = $LAST_MATCH_INFO[1] if %r{^.+ version \"(.+)\"$} =~ line }
version version
end end
end end

View File

@@ -26,74 +26,103 @@ require 'spec_helper_acceptance'
# C14723 Where is oracle linux 5? # C14723 Where is oracle linux 5?
# C14724 Where is oracle linux 5? # C14724 Where is oracle linux 5?
# C14771 Where is redhat 7? Centos 7? # C14771 Where is redhat 7? Centos 7?
describe "installing java", :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
describe "jre" do
it 'should install jre' do
pp = <<-EOS
class { 'java':
distribution => 'jre',
}
EOS
java_class_jre = "class { 'java':\n"\
" distribution => 'jre',\n"\
'}'
java_class = "class { 'java': }"
sources = "file_line { 'non-free source':\n"\
" path => '/etc/apt/sources.list',\n"\
" match => \"deb http://osmirror.delivery.puppetlabs.net/debian/ ${::lsbdistcodename} main\",\n"\
" line => \"deb http://osmirror.delivery.puppetlabs.net/debian/ ${::lsbdistcodename} main non-free\",\n"\
'}'
sun_jre = "class { 'java':\n"\
" distribution => 'sun-jre',\n"\
'}'
sun_jdk = "class { 'java':\n"\
" distribution => 'sun-jdk',\n"\
'}'
oracle_jre = "class { 'java':\n"\
" distribution => 'oracle-jre',\n"\
'}'
oracle_jdk = "class { 'java':\n"\
" distribution => 'oracle-jdk',\n"\
'}'
incorrect_version = "class { 'java':\n"\
" version => '14.5',\n"\
'}'
blank_version = "class { 'java':\n"\
" version => '',\n"\
'}'
incorrect_distro = "class { 'java':\n"\
" distribution => 'xyz',\n"\
'}'
blank_distro = "class { 'java':\n"\
" distribution => '',\n"\
'}'
incorrect_package = "class { 'java':\n"\
" package => 'xyz',\n"\
'}'
bogus_alternative = "class { 'java':\n"\
" java_alternative => 'whatever',\n"\
" java_alternative_path => '/whatever',\n"\
'}'
def apply_manifest_wheezy_case(pp)
# With the version of java that ships with pe on debian wheezy, update-alternatives # With the version of java that ships with pe on debian wheezy, update-alternatives
# throws an error on the first run due to missing alternative for policytool. It still # throws an error on the first run due to missing alternative for policytool. It still
# updates the alternatives for java # updates the alternatives for java
if fact('operatingsystem') == 'Debian' and fact('lsbdistcodename') == 'wheezy' if fact('operatingsystem') == 'Debian' && fact('lsbdistcodename') == 'wheezy'
apply_manifest(pp) apply_manifest(pp)
else else
apply_manifest(pp, :catch_failures => true) apply_manifest(pp, catch_failures: true)
end
apply_manifest(pp, :catch_changes => true)
end end
end end
describe "jdk" do
it 'should install jdk' do
pp = <<-EOS
class { 'java': }
EOS
apply_manifest(pp, :catch_failures => true) context 'installing java jre', unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
apply_manifest(pp, :catch_changes => true) it 'installs jre' do
apply_manifest_wheezy_case(java_class_jre)
apply_manifest(java_class_jre, catch_changes: true)
end end
end end
context 'installing java jdk', unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
it 'installs jdk' do
apply_manifest(java_class, catch_failures: true)
apply_manifest(java_class, catch_changes: true)
end end
end
# C14686 # C14686
describe 'sun', :if => (fact('operatingsystem') == 'Debian' and fact('operatingsystemrelease').match(/(5|6)/)) do context 'sun', if: (fact('operatingsystem') == 'Debian' && fact('operatingsystemrelease').match(%r{(5|6)})) do
before :all do before :all do
pp = <<-EOS apply_manifest(sources)
file_line { 'non-free source':
path => '/etc/apt/sources.list',
match => "deb http://osmirror.delivery.puppetlabs.net/debian/ ${::lsbdistcodename} main",
line => "deb http://osmirror.delivery.puppetlabs.net/debian/ ${::lsbdistcodename} main non-free",
}
EOS
apply_manifest(pp)
shell('apt-get update') shell('apt-get update')
shell('echo "sun-java6-jdk shared/accepted-sun-dlj-v1-1 select true" | debconf-set-selections') shell('echo "sun-java6-jdk shared/accepted-sun-dlj-v1-1 select true" | debconf-set-selections')
shell('echo "sun-java6-jre shared/accepted-sun-dlj-v1-1 select true" | debconf-set-selections') shell('echo "sun-java6-jre shared/accepted-sun-dlj-v1-1 select true" | debconf-set-selections')
end end
describe 'jre' do describe 'jre' do
it 'should install sun-jre' do it 'installs sun-jre' do
pp = <<-EOS apply_manifest(sun_jre, catch_failures: true)
class { 'java': apply_manifest(sun_jre, catch_changes: true)
distribution => 'sun-jre',
}
EOS
apply_manifest(pp, :catch_failures => true)
apply_manifest(pp, :catch_changes => true)
end end
end end
describe 'jdk' do describe 'jdk' do
it 'should install sun-jdk' do it 'installs sun-jdk' do
pp = <<-EOS apply_manifest(sun_jdk, catch_failures: true)
class { 'java': apply_manifest(sun_jdk, catch_changes: true)
distribution => 'sun-jdk',
}
EOS
apply_manifest(pp, :catch_failures => true)
apply_manifest(pp, :catch_changes => true)
end end
end end
end end
@@ -101,122 +130,64 @@ end
# C14704 # C14704
# C14705 # C14705
# C15006 # C15006
describe 'oracle', :if => ( context 'oracle', if: (
(fact('operatingsystem') == 'Debian') and (fact('operatingsystemrelease').match(/^7/)) or (fact('operatingsystem') == 'Debian') && fact('operatingsystemrelease').match(%r{^7}) ||
(fact('operatingsystem') == 'Ubuntu') and (fact('operatingsystemrelease').match(/^12\.04/)) or (fact('operatingsystem') == 'Ubuntu') && fact('operatingsystemrelease').match(%r{^12\.04}) ||
(fact('operatingsystem') == 'Ubuntu') and (fact('operatingsystemrelease').match(/^14\.04/)) (fact('operatingsystem') == 'Ubuntu') && fact('operatingsystemrelease').match(%r{^14\.04})
) do ) do
# not supported # not supported
# The package is not available from any sources, but if a customer # The package is not available from any sources, but if a customer
# custom-builds the package using java-package and adds it to a local # custom-builds the package using java-package and adds it to a local
# repository, that is the intention of this version ability # repository, that is the intention of this version ability
describe 'jre' do describe 'jre' do
it 'should install oracle-jre' do it 'installs oracle-jre' do
pp = <<-EOS apply_manifest(oracle_jre, expect_failures: true)
class { 'java':
distribution => 'oracle-jre',
}
EOS
apply_manifest(pp, :expect_failures => true)
end end
end end
describe 'jdk' do describe 'jdk' do
it 'should install oracle-jdk' do it 'installs oracle-jdk' do
pp = <<-EOS apply_manifest(oracle_jdk, expect_failures: true)
class { 'java':
distribution => 'oracle-jdk',
}
EOS
apply_manifest(pp, :expect_failures => true)
end end
end end
end end
describe 'failure cases' do context 'failure cases' do
# C14711 # C14711
# SLES 10 returns an exit code of 0 on zypper failure # SLES 10 returns an exit code of 0 on zypper failure
unless fact('operatingsystem') == 'SLES' and fact('operatingsystemrelease') < '11' unless fact('operatingsystem') == 'SLES' && fact('operatingsystemrelease') < '11'
it 'should fail to install java with an incorrect version' do it 'fails to install java with an incorrect version' do
pp = <<-EOS apply_manifest(incorrect_version, expect_failures: true)
class { 'java':
version => '14.5',
}
EOS
apply_manifest(pp, :expect_failures => true)
end end
end end
# C14712 # C14712
it 'should fail to install java with a blank version' do it 'fails to install java with a blank version' do
pp = <<-EOS apply_manifest(blank_version, expect_failures: true)
class { 'java':
version => '',
}
EOS
apply_manifest(pp, :expect_failures => true)
end end
# C14713 # C14713
it 'should fail to install java with an incorrect distribution' do it 'fails to install java with an incorrect distribution' do
pp = <<-EOS apply_manifest(incorrect_distro, expect_failures: true)
class { 'java':
distribution => 'xyz',
}
EOS
apply_manifest(pp, :expect_failures => true)
end end
# C14714 # C14714
it 'should fail to install java with a blank distribution' do it 'fails to install java with a blank distribution' do
pp = <<-EOS apply_manifest(blank_distro, expect_failures: true)
class { 'java':
distribution => '',
}
EOS
apply_manifest(pp, :expect_failures => true)
end end
# C14715 # C14715
it 'should fail to install java with an incorrect package' do it 'fails to install java with an incorrect package' do
pp = <<-EOS apply_manifest(incorrect_package, expect_failures: true)
class { 'java':
package => 'xyz',
}
EOS
apply_manifest(pp, :expect_failures => true)
end end
# C14715
it 'should fail to install java with an incorrect package' do
pp = <<-EOS
class { 'java':
package => 'xyz',
}
EOS
apply_manifest(pp, :expect_failures => true)
end
# C14717 # C14717
# C14719 # C14719
# C14725 # C14725
it 'should fail on debian or RHEL when passed fake java_alternative and path' do it 'fails on debian or RHEL when passed fake java_alternative and path' do
pp = <<-EOS if fact('osfamily') == 'Debian' || fact('osfamily') == 'RedHat'
class { 'java': apply_manifest(bogus_alternative, expect_failures: true)
java_alternative => 'whatever',
java_alternative_path => '/whatever',
}
EOS
if fact('osfamily') == 'Debian' or fact('osfamily') == 'RedHat'
apply_manifest(pp, :expect_failures => true)
else else
apply_manifest(pp, :catch_failures => true) apply_manifest(bogus_alternative, catch_failures: true)
end end
end end
end end

View File

@@ -1,314 +1,353 @@
require 'spec_helper' require 'spec_helper'
describe 'java', :type => :class do describe 'java', type: :class do
context 'select openjdk for Centos 5.8' do context 'select openjdk for Centos 5.8' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '5.8', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '5.8', architecture: 'x86_64' } }
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') } it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.6.0/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.6.0/') }
end end
context 'select openjdk for Centos 6.3' do context 'select openjdk for Centos 6.3' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '6.3', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '6.3', architecture: 'x86_64' } }
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') } it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0/') }
end end
context 'select openjdk for Centos 7.1.1503' do context 'select openjdk for Centos 7.1.1503' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '7.1.1503', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '7.1.1503', architecture: 'x86_64' } }
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk-devel') } it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk-devel') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0/') }
end end
context 'select openjdk for Centos 6.2' do context 'select openjdk for Centos 6.2' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '6.2', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '6.2', architecture: 'x86_64' } }
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') } it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
it { is_expected.to_not contain_exec('update-java-alternatives') } it { is_expected.not_to contain_exec('update-java-alternatives') }
end end
context 'select Oracle JRE with alternatives for Centos 6.3' do context 'select Oracle JRE with alternatives for Centos 6.3' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '6.3', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '6.3', architecture: 'x86_64' } }
let(:params) { { 'package' => 'jre', 'java_alternative' => '/usr/bin/java', 'java_alternative_path' => '/usr/java/jre1.7.0_67/bin/java' } } let(:params) { { 'package' => 'jre', 'java_alternative' => '/usr/bin/java', 'java_alternative_path' => '/usr/java/jre1.7.0_67/bin/java' } }
it { is_expected.to contain_package('java').with_name('jre') } it { is_expected.to contain_package('java').with_name('jre') }
it { is_expected.to contain_exec('create-java-alternatives').with_command('alternatives --install /usr/bin/java java /usr/java/jre1.7.0_67/bin/java 20000') } it { is_expected.to contain_exec('create-java-alternatives').with_command('alternatives --install /usr/bin/java java /usr/java/jre1.7.0_67/bin/java 20000') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('alternatives --set java /usr/java/jre1.7.0_67/bin/java') } it { is_expected.to contain_exec('update-java-alternatives').with_command('alternatives --set java /usr/java/jre1.7.0_67/bin/java') }
end end
context 'select openjdk for Fedora 20' do context 'select openjdk for Fedora 20' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '20', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Fedora', operatingsystemrelease: '20', architecture: 'x86_64' } }
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') } it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/') }
end end
context 'select openjdk for Fedora 21' do context 'select openjdk for Fedora 21' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '21', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Fedora', operatingsystemrelease: '21', architecture: 'x86_64' } }
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk-devel') } it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk-devel') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-x86_64/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-x86_64/') }
end end
context 'select passed value for Fedora 20' do context 'select passed value for Fedora 20' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '20', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Fedora', operatingsystemrelease: '20', architecture: 'x86_64' } }
let(:params) { { 'distribution' => 'jre', 'java_home' => '/usr/local/lib/jre/' } } let(:params) { { 'distribution' => 'jre', 'java_home' => '/usr/local/lib/jre/' } }
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') } it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/local/lib/jre/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/local/lib/jre/') }
end end
context 'select passed value for Fedora 21' do context 'select passed value for Fedora 21' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '21', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Fedora', operatingsystemrelease: '21', architecture: 'x86_64' } }
let(:params) { { 'distribution' => 'jre', 'java_home' => '/usr/local/lib/jre/' } } let(:params) { { 'distribution' => 'jre', 'java_home' => '/usr/local/lib/jre/' } }
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk') } it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/local/lib/jre/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/local/lib/jre/') }
end end
context 'select passed value for Fedora 21 with yum option' do context 'select passed value for Fedora 21 with yum option' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '21', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Fedora', operatingsystemrelease: '21', architecture: 'x86_64' } }
let(:params) { { 'distribution' => 'jre' } } let(:params) { { 'distribution' => 'jre', 'package_options' => ['--skip-broken'] } }
let(:params) { { 'package_options' => ['--skip-broken'] } }
it { is_expected.to contain_package('java') } it { is_expected.to contain_package('java') }
end end
context 'select passed value for Centos 5.3' do context 'select passed value for Centos 5.3' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '5.3', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '5.3', architecture: 'x86_64' } }
let(:params) { { 'package' => 'jdk', 'java_home' => '/usr/local/lib/jre' } } let(:params) { { 'package' => 'jdk', 'java_home' => '/usr/local/lib/jre' } }
it { is_expected.to contain_package('java').with_name('jdk') } it { is_expected.to contain_package('java').with_name('jdk') }
it { is_expected.to_not contain_exec('update-java-alternatives') } it { is_expected.not_to contain_exec('update-java-alternatives') }
end end
context 'select default for Centos 5.3' do context 'select default for Centos 5.3' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '5.3', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '5.3', architecture: 'x86_64' } }
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') } it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
it { is_expected.to_not contain_exec('update-java-alternatives') } it { is_expected.not_to contain_exec('update-java-alternatives') }
end end
context 'select default for Debian Wheezy' do context 'select default for Debian Wheezy' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} } let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'wheezy', operatingsystemrelease: '7.1', architecture: 'amd64' } }
it { is_expected.to contain_package('java').with_name('openjdk-7-jdk') } it { is_expected.to contain_package('java').with_name('openjdk-7-jdk') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-1.7.0-openjdk-amd64 --jre') } it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-1.7.0-openjdk-amd64 --jre') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/') }
end end
context 'select Oracle JRE for Debian Wheezy' do context 'select Oracle JRE for Debian Wheezy' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} } let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'wheezy', operatingsystemrelease: '7.1', architecture: 'amd64' } }
let(:params) { { 'distribution' => 'oracle-jre' } } let(:params) { { 'distribution' => 'oracle-jre' } }
it { is_expected.to contain_package('java').with_name('oracle-j2re1.7') } it { is_expected.to contain_package('java').with_name('oracle-j2re1.7') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set j2re1.7-oracle --jre') } it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set j2re1.7-oracle --jre') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/j2re1.7-oracle/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/j2re1.7-oracle/') }
end end
context 'select Oracle Java 8 JRE >=u100 for Debian Wheezy' do context 'select Oracle Java 8 JRE >=u100 for Debian Wheezy' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} } let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'wheezy', operatingsystemrelease: '7.1', architecture: 'amd64' } }
let(:params) { { 'distribution' => 'oracle-java8-jre' } } let(:params) { { 'distribution' => 'oracle-java8-jre' } }
it { is_expected.to contain_package('java').with_name('oracle-java8-jre') } it { is_expected.to contain_package('java').with_name('oracle-java8-jre') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set jre-8-oracle-x64 --jre') } it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set jre-8-oracle-x64 --jre') }
end end
context 'select Oracle Java 8 JDK >=u100 for Debian Wheezy' do context 'select Oracle Java 8 JDK >=u100 for Debian Wheezy' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} } let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'wheezy', operatingsystemrelease: '7.1', architecture: 'amd64' } }
let(:params) { { 'distribution' => 'oracle-java8-jdk' } } let(:params) { { 'distribution' => 'oracle-java8-jdk' } }
it { is_expected.to contain_package('java').with_name('oracle-java8-jdk') } it { is_expected.to contain_package('java').with_name('oracle-java8-jdk') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set jdk-8-oracle-x64 --jre') } it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set jdk-8-oracle-x64 --jre') }
end end
context 'select OpenJDK JRE for Debian Wheezy' do context 'select OpenJDK JRE for Debian Wheezy' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} } let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'wheezy', operatingsystemrelease: '7.1', architecture: 'amd64' } }
let(:params) { { 'distribution' => 'jre' } } let(:params) { { 'distribution' => 'jre' } }
it { is_expected.to contain_package('java').with_name('openjdk-7-jre-headless') } it { is_expected.to contain_package('java').with_name('openjdk-7-jre-headless') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-1.7.0-openjdk-amd64 --jre-headless') } it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-1.7.0-openjdk-amd64 --jre-headless') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/') }
end end
context 'select default for Debian Squeeze' do context 'select default for Debian Squeeze' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'squeeze', :operatingsystemrelease => '6.0.5', :architecture => 'amd64',} } let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'squeeze', operatingsystemrelease: '6.0.5', architecture: 'amd64' } }
it { is_expected.to contain_package('java').with_name('openjdk-6-jdk') } it { is_expected.to contain_package('java').with_name('openjdk-6-jdk') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-openjdk-amd64 --jre') } it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-openjdk-amd64 --jre') }
end end
context 'select Oracle JRE for Debian Squeeze' do context 'select Oracle JRE for Debian Squeeze' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'squeeze', :operatingsystemrelease => '6.0.5', :architecture => 'amd64',} } let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'squeeze', operatingsystemrelease: '6.0.5', architecture: 'amd64' } }
let(:params) { { 'distribution' => 'sun-jre', } } let(:params) { { 'distribution' => 'sun-jre' } }
it { is_expected.to contain_package('java').with_name('sun-java6-jre') } it { is_expected.to contain_package('java').with_name('sun-java6-jre') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-sun --jre') } it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-sun --jre') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-6-sun/jre/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-6-sun/jre/') }
end end
context 'select OpenJDK JRE for Debian Squeeze' do context 'select OpenJDK JRE for Debian Squeeze' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'squeeze', :operatingsystemrelease => '6.0.5', :architecture => 'amd64',} } let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'squeeze', operatingsystemrelease: '6.0.5', architecture: 'amd64' } }
let(:params) { { 'distribution' => 'jre', } } let(:params) { { 'distribution' => 'jre' } }
it { is_expected.to contain_package('java').with_name('openjdk-6-jre-headless') } it { is_expected.to contain_package('java').with_name('openjdk-6-jre-headless') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-openjdk-amd64 --jre-headless') } it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-openjdk-amd64 --jre-headless') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-6-openjdk/jre/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-6-openjdk/jre/') }
end end
context 'select random alternative for Debian Wheezy' do context 'select random alternative for Debian Wheezy' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} } let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'wheezy', operatingsystemrelease: '7.1', architecture: 'amd64' } }
let(:params) { { 'java_alternative' => 'bananafish' } } let(:params) { { 'java_alternative' => 'bananafish' } }
it { is_expected.to contain_package('java').with_name('openjdk-7-jdk') } it { is_expected.to contain_package('java').with_name('openjdk-7-jdk') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set bananafish --jre') } it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set bananafish --jre') }
end end
context 'select jdk for Ubuntu Vivid (15.04)' do context 'select jdk for Ubuntu Vivid (15.04)' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Ubuntu', :lsbdistcodename => 'vivid', :operatingsystemrelease => '15.04', :architecture => 'amd64',} } let(:facts) { { osfamily: 'Debian', operatingsystem: 'Ubuntu', lsbdistcodename: 'vivid', operatingsystemrelease: '15.04', architecture: 'amd64' } }
let(:params) { { 'distribution' => 'jdk' } } let(:params) { { 'distribution' => 'jdk' } }
it { is_expected.to contain_package('java').with_name('openjdk-8-jdk') } it { is_expected.to contain_package('java').with_name('openjdk-8-jdk') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/') }
end end
context 'select jre for Ubuntu Vivid (15.04)' do context 'select jre for Ubuntu Vivid (15.04)' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Ubuntu', :lsbdistcodename => 'vivid', :operatingsystemrelease => '15.04', :architecture => 'amd64',} } let(:facts) { { osfamily: 'Debian', operatingsystem: 'Ubuntu', lsbdistcodename: 'vivid', operatingsystemrelease: '15.04', architecture: 'amd64' } }
let(:params) { { 'distribution' => 'jre' } } let(:params) { { 'distribution' => 'jre' } }
it { is_expected.to contain_package('java').with_name('openjdk-8-jre-headless') } it { is_expected.to contain_package('java').with_name('openjdk-8-jre-headless') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/') }
end end
context 'select openjdk for Amazon Linux' do context 'select openjdk for Amazon Linux' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Amazon', :operatingsystemrelease => '3.4.43-43.43.amzn1.x86_64', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Amazon', operatingsystemrelease: '3.4.43-43.43.amzn1.x86_64', architecture: 'x86_64' } }
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') } it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/') }
end end
context 'select passed value for Amazon Linux' do context 'select passed value for Amazon Linux' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Amazon', :operatingsystemrelease => '5.3.4.43-43.43.amzn1.x86_64', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Amazon', operatingsystemrelease: '5.3.4.43-43.43.amzn1.x86_64', architecture: 'x86_64' } }
let(:params) { { 'distribution' => 'jre' } } let(:params) { { 'distribution' => 'jre' } }
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') } it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
end end
context 'select openjdk for Oracle Linux' do context 'select openjdk for Oracle Linux' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'OracleLinux', :operatingsystemrelease => '6.4', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'OracleLinux', operatingsystemrelease: '6.4', architecture: 'x86_64' } }
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') } it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
end end
context 'select openjdk for Oracle Linux 6.2' do context 'select openjdk for Oracle Linux 6.2' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'OracleLinux', :operatingsystemrelease => '6.2', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'OracleLinux', operatingsystemrelease: '6.2', architecture: 'x86_64' } }
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') } it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
end end
context 'select passed value for Oracle Linux' do context 'select passed value for Oracle Linux' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'OracleLinux', :operatingsystemrelease => '6.3', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'OracleLinux', operatingsystemrelease: '6.3', architecture: 'x86_64' } }
let(:params) { { 'distribution' => 'jre' } } let(:params) { { 'distribution' => 'jre' } }
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') } it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
end end
context 'select passed value for Scientific Linux' do context 'select passed value for Scientific Linux' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Scientific', :operatingsystemrelease => '6.4', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Scientific', operatingsystemrelease: '6.4', architecture: 'x86_64' } }
let(:params) { { 'distribution' => 'jre' } } let(:params) { { 'distribution' => 'jre' } }
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') } it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0/') }
end end
context 'select passed value for Scientific Linux CERN (SLC)' do context 'select passed value for Scientific Linux CERN (SLC)' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'SLC', :operatingsystemrelease => '6.4', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'RedHat', operatingsystem: 'SLC', operatingsystemrelease: '6.4', architecture: 'x86_64' } }
let(:params) { { 'distribution' => 'jre' } } let(:params) { { 'distribution' => 'jre' } }
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') } it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0/') }
end end
context 'select default for OpenSUSE 12.3' do context 'select default for OpenSUSE 12.3' do
let(:facts) { {:osfamily => 'Suse', :operatingsystem => 'OpenSUSE', :operatingsystemrelease => '12.3', :architecture => 'x86_64'}} let(:facts) { { osfamily: 'Suse', operatingsystem: 'OpenSUSE', operatingsystemrelease: '12.3', architecture: 'x86_64' } }
it { is_expected.to contain_package('java').with_name('java-1_7_0-openjdk-devel') } it { is_expected.to contain_package('java').with_name('java-1_7_0-openjdk-devel') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/') }
end end
context 'select default for SLES 11.3' do context 'select default for SLES 11.3' do
let(:facts) { {:osfamily => 'Suse', :operatingsystem => 'SLES', :operatingsystemrelease => '11.3', :architecture => 'x86_64'}} let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '11.3', architecture: 'x86_64' } }
it { should contain_package('java').with_name('java-1_6_0-ibm-devel')}
it { is_expected.to contain_package('java').with_name('java-1_6_0-ibm-devel') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.6.0-ibm-1.6.0/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.6.0-ibm-1.6.0/') }
end end
context 'select default for SLES 11.4' do context 'select default for SLES 11.4' do
let(:facts) { {:osfamily => 'Suse', :operatingsystem => 'SLES', :operatingsystemrelease => '11.4', :architecture => 'x86_64'}} let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '11.4', architecture: 'x86_64' } }
it { should contain_package('java').with_name('java-1_7_1-ibm-devel')}
it { is_expected.to contain_package('java').with_name('java-1_7_1-ibm-devel') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-ibm-1.7.0/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-ibm-1.7.0/') }
end end
context 'select default for SLES 12.0' do context 'select default for SLES 12.0' do
let(:facts) { {:osfamily => 'Suse', :operatingsystem => 'SLES', :operatingsystemrelease => '12.0', :operatingsystemmajrelease => '12', :architecture => 'x86_64'}} let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '12.0', operatingsystemmajrelease: '12', architecture: 'x86_64' } }
it { should contain_package('java').with_name('java-1_7_0-openjdk-devel')}
it { is_expected.to contain_package('java').with_name('java-1_7_0-openjdk-devel') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/') }
end end
context 'select default for SLES 12.1' do context 'select default for SLES 12.1' do
let(:facts) { {:osfamily => 'Suse', :operatingsystem => 'SLES', :operatingsystemrelease => '12.1', :operatingsystemmajrelease => '12', :architecture => 'x86_64'}} let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '12.1', operatingsystemmajrelease: '12', architecture: 'x86_64' } }
it { should contain_package('java').with_name('java-1_8_0-openjdk-devel')}
it { is_expected.to contain_package('java').with_name('java-1_8_0-openjdk-devel') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/') }
end end
context 'select jdk for OpenBSD' do context 'select jdk for OpenBSD' do
let(:facts) { {:osfamily => 'OpenBSD', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'OpenBSD', architecture: 'x86_64' } }
it { is_expected.to contain_package('java').with_name('jdk') } it { is_expected.to contain_package('java').with_name('jdk') }
it { is_expected.to_not contain_file_line('java-home-environment') } it { is_expected.not_to contain_file_line('java-home-environment') }
end end
context 'select jre for OpenBSD' do context 'select jre for OpenBSD' do
let(:facts) { {:osfamily => 'OpenBSD', :architecture => 'x86_64'} } let(:facts) { { osfamily: 'OpenBSD', architecture: 'x86_64' } }
let(:params) { { 'distribution' => 'jre' } } let(:params) { { 'distribution' => 'jre' } }
it { is_expected.to contain_package('java').with_name('jre') } it { is_expected.to contain_package('java').with_name('jre') }
end end
describe 'custom java package' do describe 'custom java package' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'jessie', :operatingsystemrelease => '8.6', :architecture => 'amd64',} } let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'jessie', operatingsystemrelease: '8.6', architecture: 'amd64' } }
context 'all params provided' do context 'all params provided' do
let(:params) { { let(:params) do
{
'distribution' => 'custom', 'distribution' => 'custom',
'package' => 'custom_jdk', 'package' => 'custom_jdk',
'java_alternative' => 'java-custom_jdk', 'java_alternative' => 'java-custom_jdk',
'java_alternative_path' => '/opt/custom_jdk/bin/java', 'java_alternative_path' => '/opt/custom_jdk/bin/java',
'java_home' => '/opt/custom_jdk', 'java_home' => '/opt/custom_jdk',
} } }
end
it { is_expected.to contain_package('java').with_name('custom_jdk') } it { is_expected.to contain_package('java').with_name('custom_jdk') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/opt/custom_jdk') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/opt/custom_jdk') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-custom_jdk --jre') } it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-custom_jdk --jre') }
end end
context 'missing parameters' do context 'missing parameters' do
let(:params) { { let(:params) do
{
'distribution' => 'custom', 'distribution' => 'custom',
'package' => 'custom_jdk', 'package' => 'custom_jdk',
} } }
it do
expect { catalogue }.to raise_error Puppet::Error, /is not supported. Missing default values/
end
end
end end
it do
expect { catalogue }.to raise_error Puppet::Error, %r{is not supported. Missing default values}
end
end
end
describe 'incompatible OSs' do describe 'incompatible OSs' do
[ [
{ {
# C14706 # C14706
:osfamily => 'windows', osfamily: 'windows',
:operatingsystem => 'windows', operatingsystem: 'windows',
:operatingsystemrelease => '8.1', operatingsystemrelease: '8.1',
}, },
{ {
# C14707 # C14707
:osfamily => 'Darwin', osfamily: 'Darwin',
:operatingsystem => 'Darwin', operatingsystem: 'Darwin',
:operatingsystemrelease => '13.3.0', operatingsystemrelease: '13.3.0',
}, },
{ {
# C14708 # C14708
:osfamily => 'AIX', osfamily: 'AIX',
:operatingsystem => 'AIX', operatingsystem: 'AIX',
:operatingsystemrelease => '7100-02-00-000', operatingsystemrelease: '7100-02-00-000',
}, },
{ {
# C14708 # C14708
:osfamily => 'AIX', osfamily: 'AIX',
:operatingsystem => 'AIX', operatingsystem: 'AIX',
:operatingsystemrelease => '6100-07-04-1216', operatingsystemrelease: '6100-07-04-1216',
}, },
{ {
# C14708 # C14708
:osfamily => 'AIX', osfamily: 'AIX',
:operatingsystem => 'AIX', operatingsystem: 'AIX',
:operatingsystemrelease => '5300-12-01-1016', operatingsystemrelease: '5300-12-01-1016',
}, },
].each do |facts| ].each do |facts|
let(:facts) { facts } let(:facts) { facts }
it "is_expected.to fail on #{facts[:operatingsystem]} #{facts[:operatingsystemrelease]}" do it "is_expected.to fail on #{facts[:operatingsystem]} #{facts[:operatingsystemrelease]}" do
expect { catalogue }.to raise_error Puppet::Error, /unsupported platform/ expect { catalogue }.to raise_error Puppet::Error, %r{unsupported platform}
end end
end end
end end

View File

@@ -1,129 +1,152 @@
require 'spec_helper' require 'spec_helper'
describe 'java::oracle', :type => :define do oracle_url = 'http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz'
describe 'java::oracle', type: :define do
context 'On CentOS 64-bit' do context 'On CentOS 64-bit' do
let(:facts) { { :kernel => 'Linux', :os => {:family => 'RedHat', :architecture => 'x86_64', :name => 'CentOS', :release => {:full => '6.0'}}}} let(:facts) { { kernel: 'Linux', os: { family: 'RedHat', architecture: 'x86_64', name: 'CentOS', release: { full: '6.0' } } } }
context 'Oracle Java SE 6 JDK' do context 'Oracle Java SE 6 JDK' do
let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jdk'} } let(:params) { { ensure: 'present', version: '6', java_se: 'jdk' } }
let :title do 'jdk6' end let(:title) { 'jdk6' }
it { is_expected.to contain_archive('/tmp/jdk-6u45-linux-x64-rpm.bin') } it { is_expected.to contain_archive('/tmp/jdk-6u45-linux-x64-rpm.bin') }
it { is_expected.to contain_exec('Install Oracle java_se jdk 6').with_command('sh /tmp/jdk-6u45-linux-x64-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jdk*.rpm') } it { is_expected.to contain_exec('Install Oracle java_se jdk 6').with_command('sh /tmp/jdk-6u45-linux-x64-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jdk*.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jdk 6').that_requires('Archive[/tmp/jdk-6u45-linux-x64-rpm.bin]') } it { is_expected.to contain_exec('Install Oracle java_se jdk 6').that_requires('Archive[/tmp/jdk-6u45-linux-x64-rpm.bin]') }
end end
context 'Oracle Java SE 7 JDK' do context 'Oracle Java SE 7 JDK' do
let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jdk'} } let(:params) { { ensure: 'present', version: '7', java_se: 'jdk' } }
let :title do 'jdk7' end let(:title) { 'jdk7' }
it { is_expected.to contain_archive('/tmp/jdk-7u80-linux-x64.rpm') } it { is_expected.to contain_archive('/tmp/jdk-7u80-linux-x64.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jdk 7').with_command('rpm --force -iv /tmp/jdk-7u80-linux-x64.rpm') } it { is_expected.to contain_exec('Install Oracle java_se jdk 7').with_command('rpm --force -iv /tmp/jdk-7u80-linux-x64.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jdk 7').that_requires('Archive[/tmp/jdk-7u80-linux-x64.rpm]') } it { is_expected.to contain_exec('Install Oracle java_se jdk 7').that_requires('Archive[/tmp/jdk-7u80-linux-x64.rpm]') }
end end
context 'Oracle Java SE 8 JDK' do context 'Oracle Java SE 8 JDK' do
let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jdk'} } let(:params) { { ensure: 'present', version: '8', java_se: 'jdk' } }
let :title do 'jdk8' end let(:title) { 'jdk8' }
it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.rpm') } it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jdk 8').with_command('rpm --force -iv /tmp/jdk-8u131-linux-x64.rpm') } it { is_expected.to contain_exec('Install Oracle java_se jdk 8').with_command('rpm --force -iv /tmp/jdk-8u131-linux-x64.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jdk 8').that_requires('Archive[/tmp/jdk-8u131-linux-x64.rpm]') } it { is_expected.to contain_exec('Install Oracle java_se jdk 8').that_requires('Archive[/tmp/jdk-8u131-linux-x64.rpm]') }
end end
context 'Oracle Java SE 6 JRE' do context 'Oracle Java SE 6 JRE' do
let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jre'} } let(:params) { { ensure: 'present', version: '6', java_se: 'jre' } }
let :title do 'jre6' end let(:title) { 'jre6' }
it { is_expected.to contain_archive('/tmp/jre-6u45-linux-x64-rpm.bin') } it { is_expected.to contain_archive('/tmp/jre-6u45-linux-x64-rpm.bin') }
it { is_expected.to contain_exec('Install Oracle java_se jre 6').with_command('sh /tmp/jre-6u45-linux-x64-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jre*.rpm') } it { is_expected.to contain_exec('Install Oracle java_se jre 6').with_command('sh /tmp/jre-6u45-linux-x64-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jre*.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jre 6').that_requires('Archive[/tmp/jre-6u45-linux-x64-rpm.bin]') } it { is_expected.to contain_exec('Install Oracle java_se jre 6').that_requires('Archive[/tmp/jre-6u45-linux-x64-rpm.bin]') }
end end
context 'Oracle Java SE 7 JRE' do context 'Oracle Java SE 7 JRE' do
let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jre'} } let(:params) { { ensure: 'present', version: '7', java_se: 'jre' } }
let :title do 'jre7' end let(:title) { 'jre7' }
it { is_expected.to contain_archive('/tmp/jre-7u80-linux-x64.rpm') } it { is_expected.to contain_archive('/tmp/jre-7u80-linux-x64.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jre 7').with_command('rpm --force -iv /tmp/jre-7u80-linux-x64.rpm') } it { is_expected.to contain_exec('Install Oracle java_se jre 7').with_command('rpm --force -iv /tmp/jre-7u80-linux-x64.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jre 7').that_requires('Archive[/tmp/jre-7u80-linux-x64.rpm]') } it { is_expected.to contain_exec('Install Oracle java_se jre 7').that_requires('Archive[/tmp/jre-7u80-linux-x64.rpm]') }
end end
context 'select Oracle Java SE 8 JRE' do context 'select Oracle Java SE 8 JRE' do
let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jre'} } let(:params) { { ensure: 'present', version: '8', java_se: 'jre' } }
let :title do 'jre8' end let(:title) { 'jre8' }
it { is_expected.to contain_archive('/tmp/jre-8u131-linux-x64.rpm') } it { is_expected.to contain_archive('/tmp/jre-8u131-linux-x64.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jre 8').with_command('rpm --force -iv /tmp/jre-8u131-linux-x64.rpm') } it { is_expected.to contain_exec('Install Oracle java_se jre 8').with_command('rpm --force -iv /tmp/jre-8u131-linux-x64.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jre 8').that_requires('Archive[/tmp/jre-8u131-linux-x64.rpm]') } it { is_expected.to contain_exec('Install Oracle java_se jre 8').that_requires('Archive[/tmp/jre-8u131-linux-x64.rpm]') }
end end
context 'Pass URL to url parameter' do context 'Pass URL to url parameter' do
let(:params) { { let(:params) do
:ensure => 'present', {
:version_major => '8u131', ensure: 'present',
:version_minor => 'b11', version_major: '8u131',
:java_se => 'jdk', version_minor: 'b11',
:url => 'http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm', java_se: 'jdk',
:url_hash => 'ignored', url: 'http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm',
} } url_hash: 'ignored',
let :title do 'jdk8' end }
it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.rpm').with_source('http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm') } end
let(:title) { 'jdk8' }
it {
is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.rpm')
.with_source('http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm')
}
end end
context 'Pass a hash to url_hash parameter' do context 'Pass a hash to url_hash parameter' do
let(:params) { { let(:params) do
:ensure => 'present', {
:version_major => '8u131', ensure: 'present',
:version_minor => 'b11', version_major: '8u131',
:java_se => 'jdk', version_minor: 'b11',
:url_hash => 'abcdef01234567890', java_se: 'jdk',
} } url_hash: 'abcdef01234567890',
let :title do 'jdk8' end }
end
let(:title) { 'jdk8' }
it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.rpm').with_source('http://download.oracle.com/otn-pub/java/jdk//8u131-b11/abcdef01234567890/jdk-8u131-linux-x64.rpm') } it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.rpm').with_source('http://download.oracle.com/otn-pub/java/jdk//8u131-b11/abcdef01234567890/jdk-8u131-linux-x64.rpm') }
end end
end end
context 'On CentOS 32-bit' do context 'On CentOS 32-bit' do
let(:facts) { {:kernel => 'Linux', :os => { :family => 'RedHat', :architecture => 'i386', :name => 'CentOS', :release => { :full => '6.6' } } } } let(:facts) { { kernel: 'Linux', os: { family: 'RedHat', architecture: 'i386', name: 'CentOS', release: { full: '6.6' } } } }
context 'select Oracle Java SE 6 JDK on RedHat family, 32-bit' do context 'select Oracle Java SE 6 JDK on RedHat family, 32-bit' do
let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jdk'} } let(:params) { { ensure: 'present', version: '6', java_se: 'jdk' } }
let :title do 'jdk6' end let(:title) { 'jdk6' }
it { is_expected.to contain_archive('/tmp/jdk-6u45-linux-i586-rpm.bin') } it { is_expected.to contain_archive('/tmp/jdk-6u45-linux-i586-rpm.bin') }
it { is_expected.to contain_exec('Install Oracle java_se jdk 6').with_command('sh /tmp/jdk-6u45-linux-i586-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jdk*.rpm') } it { is_expected.to contain_exec('Install Oracle java_se jdk 6').with_command('sh /tmp/jdk-6u45-linux-i586-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jdk*.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jdk 6').that_requires('Archive[/tmp/jdk-6u45-linux-i586-rpm.bin]') } it { is_expected.to contain_exec('Install Oracle java_se jdk 6').that_requires('Archive[/tmp/jdk-6u45-linux-i586-rpm.bin]') }
end end
context 'select Oracle Java SE 7 JDK on RedHat family, 32-bit' do context 'select Oracle Java SE 7 JDK on RedHat family, 32-bit' do
let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jdk'} } let(:params) { { ensure: 'present', version: '7', java_se: 'jdk' } }
let :title do 'jdk7' end let(:title) { 'jdk7' }
it { is_expected.to contain_archive('/tmp/jdk-7u80-linux-i586.rpm') } it { is_expected.to contain_archive('/tmp/jdk-7u80-linux-i586.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jdk 7').with_command('rpm --force -iv /tmp/jdk-7u80-linux-i586.rpm') } it { is_expected.to contain_exec('Install Oracle java_se jdk 7').with_command('rpm --force -iv /tmp/jdk-7u80-linux-i586.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jdk 7').that_requires('Archive[/tmp/jdk-7u80-linux-i586.rpm]') } it { is_expected.to contain_exec('Install Oracle java_se jdk 7').that_requires('Archive[/tmp/jdk-7u80-linux-i586.rpm]') }
end end
context 'select Oracle Java SE 8 JDK on RedHat family, 32-bit' do context 'select Oracle Java SE 8 JDK on RedHat family, 32-bit' do
let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jdk'} } let(:params) { { ensure: 'present', version: '8', java_se: 'jdk' } }
let :title do 'jdk8' end let(:title) { 'jdk8' }
it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-i586.rpm') } it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-i586.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jdk 8').with_command('rpm --force -iv /tmp/jdk-8u131-linux-i586.rpm') } it { is_expected.to contain_exec('Install Oracle java_se jdk 8').with_command('rpm --force -iv /tmp/jdk-8u131-linux-i586.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jdk 8').that_requires('Archive[/tmp/jdk-8u131-linux-i586.rpm]') } it { is_expected.to contain_exec('Install Oracle java_se jdk 8').that_requires('Archive[/tmp/jdk-8u131-linux-i586.rpm]') }
end end
context 'select Oracle Java SE 6 JRE on RedHat family, 32-bit' do context 'select Oracle Java SE 6 JRE on RedHat family, 32-bit' do
let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jre'} } let(:params) { { ensure: 'present', version: '6', java_se: 'jre' } }
let :title do 'jdk6' end let(:title) { 'jdk6' }
it { is_expected.to contain_archive('/tmp/jre-6u45-linux-i586-rpm.bin') } it { is_expected.to contain_archive('/tmp/jre-6u45-linux-i586-rpm.bin') }
it { is_expected.to contain_exec('Install Oracle java_se jre 6').with_command('sh /tmp/jre-6u45-linux-i586-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jre*.rpm') } it { is_expected.to contain_exec('Install Oracle java_se jre 6').with_command('sh /tmp/jre-6u45-linux-i586-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jre*.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jre 6').that_requires('Archive[/tmp/jre-6u45-linux-i586-rpm.bin]') } it { is_expected.to contain_exec('Install Oracle java_se jre 6').that_requires('Archive[/tmp/jre-6u45-linux-i586-rpm.bin]') }
end end
context 'select Oracle Java SE 7 JRE on RedHat family, 32-bit' do context 'select Oracle Java SE 7 JRE on RedHat family, 32-bit' do
let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jre'} } let(:params) { { ensure: 'present', version: '7', java_se: 'jre' } }
let :title do 'jdk7' end let(:title) { 'jdk7' }
it { is_expected.to contain_archive('/tmp/jre-7u80-linux-i586.rpm') } it { is_expected.to contain_archive('/tmp/jre-7u80-linux-i586.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jre 7').with_command('rpm --force -iv /tmp/jre-7u80-linux-i586.rpm') } it { is_expected.to contain_exec('Install Oracle java_se jre 7').with_command('rpm --force -iv /tmp/jre-7u80-linux-i586.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jre 7').that_requires('Archive[/tmp/jre-7u80-linux-i586.rpm]') } it { is_expected.to contain_exec('Install Oracle java_se jre 7').that_requires('Archive[/tmp/jre-7u80-linux-i586.rpm]') }
end end
context 'select Oracle Java SE 8 JRE on RedHat family, 32-bit' do context 'select Oracle Java SE 8 JRE on RedHat family, 32-bit' do
let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jre'} } let(:params) { { ensure: 'present', version: '8', java_se: 'jre' } }
let :title do 'jdk8' end let(:title) { 'jdk8' }
it { is_expected.to contain_archive('/tmp/jre-8u131-linux-i586.rpm') } it { is_expected.to contain_archive('/tmp/jre-8u131-linux-i586.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jre 8').with_command('rpm --force -iv /tmp/jre-8u131-linux-i586.rpm') } it { is_expected.to contain_exec('Install Oracle java_se jre 8').with_command('rpm --force -iv /tmp/jre-8u131-linux-i586.rpm') }
it { is_expected.to contain_exec('Install Oracle java_se jre 8').that_requires('Archive[/tmp/jre-8u131-linux-i586.rpm]') } it { is_expected.to contain_exec('Install Oracle java_se jre 8').that_requires('Archive[/tmp/jre-8u131-linux-i586.rpm]') }
@@ -131,59 +154,66 @@ describe 'java::oracle', :type => :define do
end end
context 'On Ubuntu 64-bit' do context 'On Ubuntu 64-bit' do
let(:facts) { {:kernel => 'Linux', :os => { :family => 'Debian', :architecture => 'amd64', :name => 'Ubuntu', :release => { :full => '16.04' } } } } let(:facts) { { kernel: 'Linux', os: { family: 'Debian', architecture: 'amd64', name: 'Ubuntu', release: { full: '16.04' } } } }
context 'Oracle Java SE 6 JDK' do context 'Oracle Java SE 6 JDK' do
let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jdk'} } let(:params) { { ensure: 'present', version: '6', java_se: 'jdk' } }
let :title do 'jdk6' end let(:title) { 'jdk6' }
it { is_expected.to contain_archive('/tmp/jdk-6u45-linux-x64.tar.gz') } it { is_expected.to contain_archive('/tmp/jdk-6u45-linux-x64.tar.gz') }
it { is_expected.to contain_exec('Install Oracle java_se jdk 6').with_command('tar -zxf /tmp/jdk-6u45-linux-x64.tar.gz -C /usr/lib/jvm') } it { is_expected.to contain_exec('Install Oracle java_se jdk 6').with_command('tar -zxf /tmp/jdk-6u45-linux-x64.tar.gz -C /usr/lib/jvm') }
it { is_expected.to contain_exec('Install Oracle java_se jdk 6').that_requires('Archive[/tmp/jdk-6u45-linux-x64.tar.gz]') } it { is_expected.to contain_exec('Install Oracle java_se jdk 6').that_requires('Archive[/tmp/jdk-6u45-linux-x64.tar.gz]') }
end end
context 'Oracle Java SE 7 JDK' do context 'Oracle Java SE 7 JDK' do
let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jdk'} } let(:params) { { ensure: 'present', version: '7', java_se: 'jdk' } }
let :title do 'jdk7' end let(:title) { 'jdk7' }
it { is_expected.to contain_archive('/tmp/jdk-7u80-linux-x64.tar.gz') } it { is_expected.to contain_archive('/tmp/jdk-7u80-linux-x64.tar.gz') }
it { is_expected.to contain_exec('Install Oracle java_se jdk 7').with_command('tar -zxf /tmp/jdk-7u80-linux-x64.tar.gz -C /usr/lib/jvm') } it { is_expected.to contain_exec('Install Oracle java_se jdk 7').with_command('tar -zxf /tmp/jdk-7u80-linux-x64.tar.gz -C /usr/lib/jvm') }
it { is_expected.to contain_exec('Install Oracle java_se jdk 7').that_requires('Archive[/tmp/jdk-7u80-linux-x64.tar.gz]') } it { is_expected.to contain_exec('Install Oracle java_se jdk 7').that_requires('Archive[/tmp/jdk-7u80-linux-x64.tar.gz]') }
end end
context 'Oracle Java SE 8 JDK' do context 'Oracle Java SE 8 JDK' do
let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jdk'} } let(:params) { { ensure: 'present', version: '8', java_se: 'jdk' } }
let :title do 'jdk8' end let(:title) { 'jdk8' }
it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.tar.gz') } it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.tar.gz') }
it { is_expected.to contain_exec('Install Oracle java_se jdk 8').with_command('tar -zxf /tmp/jdk-8u131-linux-x64.tar.gz -C /usr/lib/jvm') } it { is_expected.to contain_exec('Install Oracle java_se jdk 8').with_command('tar -zxf /tmp/jdk-8u131-linux-x64.tar.gz -C /usr/lib/jvm') }
it { is_expected.to contain_exec('Install Oracle java_se jdk 8').that_requires('Archive[/tmp/jdk-8u131-linux-x64.tar.gz]') } it { is_expected.to contain_exec('Install Oracle java_se jdk 8').that_requires('Archive[/tmp/jdk-8u131-linux-x64.tar.gz]') }
end end
context 'Oracle Java SE 6 JRE' do context 'Oracle Java SE 6 JRE' do
let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jre'} } let(:params) { { ensure: 'present', version: '6', java_se: 'jre' } }
let :title do 'jre6' end let(:title) { 'jre6' }
it { is_expected.to contain_archive('/tmp/jre-6u45-linux-x64.tar.gz') } it { is_expected.to contain_archive('/tmp/jre-6u45-linux-x64.tar.gz') }
it { is_expected.to contain_exec('Install Oracle java_se jre 6').with_command('tar -zxf /tmp/jre-6u45-linux-x64.tar.gz -C /usr/lib/jvm') } it { is_expected.to contain_exec('Install Oracle java_se jre 6').with_command('tar -zxf /tmp/jre-6u45-linux-x64.tar.gz -C /usr/lib/jvm') }
it { is_expected.to contain_exec('Install Oracle java_se jre 6').that_requires('Archive[/tmp/jre-6u45-linux-x64.tar.gz]') } it { is_expected.to contain_exec('Install Oracle java_se jre 6').that_requires('Archive[/tmp/jre-6u45-linux-x64.tar.gz]') }
end end
context 'Oracle Java SE 7 JRE' do context 'Oracle Java SE 7 JRE' do
let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jre'} } let(:params) { { ensure: 'present', version: '7', java_se: 'jre' } }
let :title do 'jre7' end let(:title) { 'jre7' }
it { is_expected.to contain_archive('/tmp/jre-7u80-linux-x64.tar.gz') } it { is_expected.to contain_archive('/tmp/jre-7u80-linux-x64.tar.gz') }
it { is_expected.to contain_exec('Install Oracle java_se jre 7').with_command('tar -zxf /tmp/jre-7u80-linux-x64.tar.gz -C /usr/lib/jvm') } it { is_expected.to contain_exec('Install Oracle java_se jre 7').with_command('tar -zxf /tmp/jre-7u80-linux-x64.tar.gz -C /usr/lib/jvm') }
it { is_expected.to contain_exec('Install Oracle java_se jre 7').that_requires('Archive[/tmp/jre-7u80-linux-x64.tar.gz]') } it { is_expected.to contain_exec('Install Oracle java_se jre 7').that_requires('Archive[/tmp/jre-7u80-linux-x64.tar.gz]') }
end end
context 'select Oracle Java SE 8 JRE' do context 'select Oracle Java SE 8 JRE' do
let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jre'} } let(:params) { { ensure: 'present', version: '8', java_se: 'jre' } }
let :title do 'jre8' end let(:title) { 'jre8' }
it { is_expected.to contain_archive('/tmp/jre-8u131-linux-x64.tar.gz') } it { is_expected.to contain_archive('/tmp/jre-8u131-linux-x64.tar.gz') }
it { is_expected.to contain_exec('Install Oracle java_se jre 8').with_command('tar -zxf /tmp/jre-8u131-linux-x64.tar.gz -C /usr/lib/jvm') } it { is_expected.to contain_exec('Install Oracle java_se jre 8').with_command('tar -zxf /tmp/jre-8u131-linux-x64.tar.gz -C /usr/lib/jvm') }
it { is_expected.to contain_exec('Install Oracle java_se jre 8').that_requires('Archive[/tmp/jre-8u131-linux-x64.tar.gz]') } it { is_expected.to contain_exec('Install Oracle java_se jre 8').that_requires('Archive[/tmp/jre-8u131-linux-x64.tar.gz]') }
end end
context 'Pass URL to url parameter' do context 'Pass URL to url parameter' do
let(:params) { {:ensure => 'present', :version_major => '8u131', :version_minor => 'b11', :java_se => 'jdk', :url => 'http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz'} } let(:params) { { ensure: 'present', version_major: '8u131', version_minor: 'b11', java_se: 'jdk', url: oracle_url.to_s } }
let :title do 'jdk8' end let(:title) { 'jdk8' }
it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.tar.gz') } it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.tar.gz') }
end end
end end
@@ -191,64 +221,65 @@ describe 'java::oracle', :type => :define do
[ [
{ {
# C14706 # C14706
:kernel => 'Windows', kernel: 'Windows',
:os => { os: {
:family => 'Windows', family: 'Windows',
:name => 'Windows', name: 'Windows',
:release => { release: {
:full => '8.1' full: '8.1',
} },
}, },
}, },
{ {
# C14707 # C14707
:kernel => 'Darwin', kernel: 'Darwin',
:os => { os: {
:family => 'Darwin', family: 'Darwin',
:name => 'Darwin', name: 'Darwin',
:release => { release: {
:full => '13.3.0' full: '13.3.0',
} },
}, },
}, },
{ {
# C14708 # C14708
:kernel => 'AIX', kernel: 'AIX',
:os => { os: {
:family => 'AIX', family: 'AIX',
:name => 'AIX', name: 'AIX',
:release => { release: {
:full => '7100-02-00-000' full: '7100-02-00-000',
} },
}, },
}, },
{ {
# C14709 # C14709
:kernel => 'AIX', kernel: 'AIX',
:os => { os: {
:family => 'AIX', family: 'AIX',
:name => 'AIX', name: 'AIX',
:release => { release: {
:full => '6100-07-04-1216' full: '6100-07-04-1216',
} },
}, },
}, },
{ {
# C14710 # C14710
:kernel => 'AIX', kernel: 'AIX',
:os => { os: {
:family => 'AIX', family: 'AIX',
:name => 'AIX', name: 'AIX',
:release => { release: {
:full => '5300-12-01-1016' full: '5300-12-01-1016',
} },
},
}, },
}
].each do |facts| ].each do |facts|
let(:facts) { facts } let(:facts) { facts }
let :title do 'jdk' end let(:title) { 'jdk' }
it "is_expected.to fail on #{facts[:os][:name]} #{facts[:os][:release][:full]}" do it "is_expected.to fail on #{facts[:os][:name]} #{facts[:os][:release][:full]}" do
expect { catalogue }.to raise_error Puppet::Error, /unsupported platform/ expect { catalogue }.to raise_error Puppet::Error, %r{unsupported platform}
end end
end end
end end

View File

@@ -6,11 +6,11 @@ run_puppet_install_helper
install_module_on(hosts) install_module_on(hosts)
install_module_dependencies_on(hosts) install_module_dependencies_on(hosts)
UNSUPPORTED_PLATFORMS = [ "Darwin", "windows" ] UNSUPPORTED_PLATFORMS = %w[Darwin windows].freeze
unless ENV["RS_PROVISION"] == "no" or ENV["BEAKER_provision"] == "no" unless ENV['RS_PROVISION'] == 'no' || ENV['BEAKER_provision'] == 'no'
hosts.each do |host| hosts.each do |host|
install_puppet_module_via_pmt_on(host, {module_name: 'puppetlabs-apt'}) install_puppet_module_via_pmt_on(host, module_name: 'puppetlabs-apt')
end end
end end

View File

@@ -1,41 +1,44 @@
require "spec_helper" require 'spec_helper'
java_7_path = '/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java'
java_7_home = '/usr/lib/jvm/java-7-openjdk-amd64'
java_8_path = '/usr/lib/jvm/oracle-java8-jre-amd64/bin/java'
java_8_home = '/usr/lib/jvm/oracle-java8-jre-amd64'
def unlink_and_delete(filename) def unlink_and_delete(filename)
if File.symlink?(filename) if File.symlink?(filename)
File.unlink(filename) File.unlink(filename)
end end
if File.exist?(filename) return unless File.exist?(filename)
File.delete(filename) File.delete(filename)
end end
def symlink_and_test(symlink_path, java_home)
File.symlink(symlink_path, './java_test')
Facter::Util::Resolution.expects(:which).with('java').returns('./java_test')
File.expects(:realpath).with('./java_test').returns(symlink_path)
expect(Facter.value(:java_default_home)).to eql java_home
end end
describe Facter::Util::Fact do describe 'java_default_home' do
before(:each) do
describe "java_default_home" do
before(:each) {
Facter.clear Facter.clear
Facter.fact(:kernel).stubs(:value).returns('Linux') Facter.fact(:kernel).stubs(:value).returns('Linux')
} end
context 'returns java home path when java found in PATH' do context 'returns java home path when java found in PATH' do
context "when java is in /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java" do context 'when java is in /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java' do
it do it do
unlink_and_delete('./java_test') unlink_and_delete('./java_test')
File.symlink('/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java', './java_test') symlink_and_test(java_7_path, java_7_home)
Facter::Util::Resolution.expects(:which).with("java").returns("./java_test")
File.expects(:realpath).with('./java_test').returns('/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java')
expect(Facter.value(:java_default_home)).to eql '/usr/lib/jvm/java-7-openjdk-amd64'
unlink_and_delete('./java_test') unlink_and_delete('./java_test')
end end
end end
context "when java is in /usr/lib/jvm/oracle-java8-jre-amd64/bin/java" do context 'when java is in /usr/lib/jvm/oracle-java8-jre-amd64/bin/java' do
it do it do
unlink_and_delete('./java_test') unlink_and_delete('./java_test')
File.symlink('/usr/lib/jvm/oracle-java8-jre-amd64/bin/java', './java_test') symlink_and_test(java_8_path, java_8_home)
Facter::Util::Resolution.expects(:which).with("java").returns("./java_test")
File.expects(:realpath).with('./java_test').returns('/usr/lib/jvm/oracle-java8-jre-amd64/bin/java')
expect(Facter.value(:java_default_home)).to eql '/usr/lib/jvm/oracle-java8-jre-amd64'
unlink_and_delete('./java_test') unlink_and_delete('./java_test')
end end
end end
@@ -44,9 +47,8 @@ describe Facter::Util::Fact do
context 'returns nil when java not present' do context 'returns nil when java not present' do
it do it do
Facter::Util::Resolution.stubs(:exec) Facter::Util::Resolution.stubs(:exec)
Facter::Util::Resolution.expects(:which).with("java").at_least(1).returns(false) Facter::Util::Resolution.expects(:which).with('java').at_least(1).returns(false)
expect(Facter.value(:java_default_home)).to be_nil expect(Facter.value(:java_default_home)).to be_nil
end end
end end
end end
end

View File

@@ -1,21 +1,17 @@
require "spec_helper" require 'spec_helper'
describe Facter::Util::Fact do describe 'java_libjvm_path' do
before { before(:each) do
Facter.clear Facter.clear
Facter.fact(:kernel).stubs(:value).returns('Linux') Facter.fact(:kernel).stubs(:value).returns('Linux')
java_default_home = '/usr/lib/jvm/java-8-openjdk-amd64' java_default_home = '/usr/lib/jvm/java-8-openjdk-amd64'
Facter.fact(:java_default_home).stubs(:value).returns(java_default_home) Facter.fact(:java_default_home).stubs(:value).returns(java_default_home)
Dir.stubs(:glob).with("#{java_default_home}/jre/lib/**/libjvm.so").returns(['/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so']) Dir.stubs(:glob).with("#{java_default_home}/jre/lib/**/libjvm.so").returns(['/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so'])
} end
describe "java_libjvm_path" do context 'returns libjvm path on Linux' do
context 'returns libjvm path' do
context 'on Linux' do
it do it do
expect(Facter.value(:java_libjvm_path)).to eql "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server" expect(Facter.value(:java_libjvm_path)).to eql '/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server'
end
end
end end
end end
end end

View File

@@ -1,17 +1,16 @@
require "spec_helper" require 'spec_helper'
describe Facter::Util::Fact do describe 'java_major_version' do
before { before(:each) do
Facter.clear Facter.clear
} end
describe "java_major_version" do
context 'returns major version when java_version fact present' do context 'returns major version when java_version fact present' do
before :each do before :each do
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71') Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
end end
it do it do
expect(Facter.fact(:java_major_version).value).to eq("7") expect(Facter.fact(:java_major_version).value).to eq('7')
end end
end end
@@ -24,4 +23,3 @@ describe Facter::Util::Fact do
end end
end end
end end
end

View File

@@ -1,24 +1,20 @@
require "spec_helper" require 'spec_helper'
describe Facter::Util::Fact do describe 'java_patch_level' do
before { before(:each) do
Facter.clear Facter.clear
} end
describe "java_patch_level" do context 'if java is installed returns java patch version extracted from java_version fact' do
context "if java is installed" do
context 'returns java patch version extracted from java_version fact' do
before :each do before :each do
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71') Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
end end
it do it do
expect(Facter.fact(:java_patch_level).value).to eq("71") expect(Facter.fact(:java_patch_level).value).to eq('71')
end
end end
end end
context "if java is not installed" do context 'if java is not installed returns nil' do
context 'returns nil' do
before :each do before :each do
Facter.fact(:java_version).stubs(:value).returns(nil) Facter.fact(:java_version).stubs(:value).returns(nil)
end end
@@ -27,5 +23,3 @@ describe Facter::Util::Fact do
end end
end end
end end
end
end

View File

@@ -1,96 +1,92 @@
require "spec_helper" require 'spec_helper'
describe Facter::Util::Fact do openjdk_7_output = "Picked up JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true\n"\
before { "openjdk version \"1.7.0_71\"\n"\
"OpenJDK Runtime Environment (build 1.7.0_71-b14)\n"\
"OpenJDK 64-Bit Server VM (build 24.71-b01, mixed mode)\n"
jdk_7_hotspot_output = "Picked up JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true\n"\
"java version \"1.7.0_71\"\n"\
"Java(TM) SE Runtime Environment (build 1.7.0_71-b14)\n"\
"Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)\n"
describe 'java_version' do
before(:each) do
Facter.clear Facter.clear
}
describe "java_version" do
context 'returns java version when java present' do
context 'on OpenBSD' do
before do
Facter.fact(:operatingsystem).stubs(:value).returns("OpenBSD")
end end
let(:facts) { {:operatingsystem => 'OpenBSD'} }
context 'returns java version when java present' do
context 'on OpenBSD', with_env: true do
before(:each) do
Facter.fact(:operatingsystem).stubs(:value).returns('OpenBSD')
end
let(:facts) { { operatingsystem: 'OpenBSD' } }
it do it do
java_version_output = <<-EOS Facter::Util::Resolution.expects(:which).with('java').returns('/usr/local/jdk-1.7.0/jre/bin/java')
Picked up JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true Facter::Util::Resolution.expects(:exec).with('java -Xmx12m -version 2>&1').returns(openjdk_7_output)
openjdk version "1.7.0_71" expect(Facter.value(:java_version)).to eq('1.7.0_71')
OpenJDK Runtime Environment (build 1.7.0_71-b14)
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 -Xmx12m -version 2>&1").returns(java_version_output)
expect(Facter.value(:java_version)).to eq("1.7.0_71")
end end
end end
context 'on Darwin' do context 'on Darwin' do
before do before(:each) do
Facter.fact(:operatingsystem).stubs(:value).returns("Darwin") Facter.fact(:operatingsystem).stubs(:value).returns('Darwin')
end end
let(:facts) { {:operatingsystem => 'Darwin'} } let(:facts) { { operatingsystem: 'Darwin' } }
it do it do
java_version_output = <<-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')
Picked up JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true Facter::Util::Resolution.expects(:exec).with('java -Xmx12m -version 2>&1').returns(jdk_7_hotspot_output)
java version "1.7.0_71" expect(Facter.value(:java_version)).to eql '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 -Xmx12m -version 2>&1").returns(java_version_output)
expect(Facter.value(:java_version)).to eql "1.7.0_71"
end end
end end
context 'on other systems' do context 'on other systems' do
before do before(:each) do
Facter.fact(:operatingsystem).stubs(:value).returns("MyOS") Facter.fact(:operatingsystem).stubs(:value).returns('MyOS')
end end
let(:facts) { {:operatingsystem => 'MyOS'} } let(:facts) { { operatingsystem: 'MyOS' } }
it do it do
java_version_output = <<-EOS Facter::Util::Resolution.expects(:which).with('java').returns('/path/to/java')
Picked up JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true Facter::Util::Resolution.expects(:exec).with('java -Xmx12m -version 2>&1').returns(jdk_7_hotspot_output)
java version "1.7.0_71" expect(Facter.value(:java_version)).to eq('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('/path/to/java')
Facter::Util::Resolution.expects(:exec).with("java -Xmx12m -version 2>&1").returns(java_version_output)
expect(Facter.value(:java_version)).to eq("1.7.0_71")
end end
end end
end end
context 'returns nil when java not present' do context 'returns nil when java not present' do
context 'on OpenBSD' do context 'on OpenBSD', with_env: true do
before do before(:each) do
Facter.fact(:operatingsystem).stubs(:value).returns("OpenBSD") Facter.fact(:operatingsystem).stubs(:value).returns('OpenBSD')
end end
let(:facts) { {:operatingsystem => 'OpenBSD'} } let(:facts) { { operatingsystem: 'OpenBSD' } }
it do it do
Facter::Util::Resolution.stubs(:exec) Facter::Util::Resolution.stubs(:exec)
expect(Facter.value(:java_version)).to be_nil expect(Facter.value(:java_version)).to be_nil
end end
end end
context 'on Darwin' do context 'on Darwin' do
before do before(:each) do
Facter.fact(:operatingsystem).stubs(:value).returns("Darwin") Facter.fact(:operatingsystem).stubs(:value).returns('Darwin')
end end
let(:facts) { {:operatingsystem => 'Darwin'} } let(:facts) { { operatingsystem: 'Darwin' } }
it do 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::Util::Resolution.expects(:exec).at_least(1).with('/usr/libexec/java_home --failfast 2>&1').returns('Unable to find any JVMs matching version "(null)".')
expect(Facter.value(:java_version)).to be_nil expect(Facter.value(:java_version)).to be_nil
end end
end end
context 'on other systems' do context 'on other systems' do
before do before(:each) do
Facter.fact(:operatingsystem).stubs(:value).returns("MyOS") Facter.fact(:operatingsystem).stubs(:value).returns('MyOS')
end end
let(:facts) { {:operatingsystem => 'MyOS'} } let(:facts) { { operatingsystem: 'MyOS' } }
it do it do
Facter::Util::Resolution.expects(:which).at_least(1).with("java").returns(false) Facter::Util::Resolution.expects(:which).at_least(1).with('java').returns(false)
expect(Facter.value(:java_version)).to be_nil expect(Facter.value(:java_version)).to be_nil
end end
end end
end end
end end
end