Compare commits
55 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6db8715496 | ||
|
|
4911fe8c77 | ||
|
|
fb3e4c4151 | ||
|
|
9596929938 | ||
|
|
e0ce74e1a0 | ||
|
|
f80686908c | ||
|
|
74d70dae04 | ||
|
|
5ad9e400a2 | ||
|
|
078307484f | ||
|
|
dec5136e11 | ||
|
|
71554f3067 | ||
|
|
692b490438 | ||
|
|
7a271eef3e | ||
|
|
39113d885a | ||
|
|
d0c9b41d9d | ||
|
|
d336d79c04 | ||
|
|
e1df6498c7 | ||
|
|
e50eb64614 | ||
|
|
bdfc567c18 | ||
|
|
db30eb9e2d | ||
|
|
d49c1f0e29 | ||
|
|
336a0e2e1a | ||
|
|
6592edd454 | ||
|
|
e6e961e7fc | ||
|
|
2b2e639531 | ||
|
|
5f820fe8bd | ||
|
|
b7bdf96252 | ||
|
|
231db77fe7 | ||
|
|
cb7105f4a2 | ||
|
|
c40b061d97 | ||
|
|
18bd3fcb86 | ||
|
|
578eb951ea | ||
|
|
318f8864fd | ||
|
|
62f054649a | ||
|
|
d89532435d | ||
|
|
6397c0870b | ||
|
|
e4888a507e | ||
|
|
525016ec02 | ||
|
|
c5005d9cc1 | ||
|
|
7f8bb518f0 | ||
|
|
771a3a6702 | ||
|
|
c74f533e0b | ||
|
|
43aa9af1b2 | ||
|
|
cceb78b7fe | ||
|
|
b50e762f1c | ||
|
|
e9c50332bd | ||
|
|
795b92a81d | ||
|
|
31799ce4e7 | ||
|
|
2829b75e83 | ||
|
|
0ea0b663fa | ||
|
|
6bbaacdb39 | ||
|
|
6951263d4c | ||
|
|
0bcdd2bc2f | ||
|
|
8763d0b388 | ||
|
|
184c745e82 |
590
.rubocop.yml
590
.rubocop.yml
@@ -1,508 +1,98 @@
|
||||
require: rubocop-rspec
|
||||
---
|
||||
require:
|
||||
- rubocop-rspec
|
||||
AllCops:
|
||||
TargetRubyVersion: 1.9
|
||||
TargetRubyVersion: '2.1'
|
||||
Include:
|
||||
- ./**/*.rb
|
||||
- "./**/*.rb"
|
||||
Exclude:
|
||||
- vendor/**/*
|
||||
- .vendor/**/*
|
||||
- pkg/**/*
|
||||
- spec/fixtures/**/*
|
||||
Lint/ConditionPosition:
|
||||
Enabled: True
|
||||
|
||||
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.
|
||||
- bin/*
|
||||
- ".vendor/**/*"
|
||||
- Gemfile
|
||||
- Rakefile
|
||||
- pkg/**/*
|
||||
- spec/fixtures/**/*
|
||||
- vendor/**/*
|
||||
inherit_from: .rubocop_todo.yml
|
||||
Metrics/LineLength:
|
||||
Enabled: False
|
||||
|
||||
Style/MethodCallParentheses:
|
||||
Enabled: True
|
||||
|
||||
Style/MethodDefParentheses:
|
||||
Enabled: True
|
||||
|
||||
Style/LineEndConcatenation:
|
||||
Enabled: True
|
||||
|
||||
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
|
||||
|
||||
Description: People have wide screens, use them.
|
||||
Max: 200
|
||||
RSpec/BeforeAfterAll:
|
||||
Description: Beware of using after(:all) as it may cause state to leak between tests.
|
||||
A necessary evil in acceptance testing.
|
||||
Exclude:
|
||||
- spec/acceptance/**/*.rb
|
||||
RSpec/HookArgument:
|
||||
Description: Prefer explicit :each argument, matching existing module's style
|
||||
EnforcedStyle: each
|
||||
Style/BlockDelimiters:
|
||||
Enabled: True
|
||||
|
||||
Style/MultilineBlockLayout:
|
||||
Enabled: True
|
||||
|
||||
# 'Complexity' is very relative
|
||||
Description: Prefer braces for chaining. Mostly an aesthetical choice. Better to
|
||||
be consistent then.
|
||||
EnforcedStyle: braces_for_chaining
|
||||
Style/ClassAndModuleChildren:
|
||||
Description: Compact style reduces the required amount of indentation.
|
||||
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:
|
||||
Enabled: False
|
||||
|
||||
# 'Complexity' is very relative
|
||||
Enabled: false
|
||||
Metrics/BlockLength:
|
||||
Enabled: false
|
||||
Metrics/ClassLength:
|
||||
Enabled: false
|
||||
Metrics/CyclomaticComplexity:
|
||||
Enabled: false
|
||||
Metrics/MethodLength:
|
||||
Enabled: false
|
||||
Metrics/ModuleLength:
|
||||
Enabled: false
|
||||
Metrics/ParameterLists:
|
||||
Enabled: false
|
||||
Metrics/PerceivedComplexity:
|
||||
Enabled: False
|
||||
|
||||
Lint/UselessAssignment:
|
||||
Enabled: True
|
||||
|
||||
Style/ClosingParenthesisIndentation:
|
||||
Enabled: False
|
||||
|
||||
# RSpec
|
||||
|
||||
# We don't use rspec in this way
|
||||
Enabled: false
|
||||
RSpec/DescribeClass:
|
||||
Enabled: False
|
||||
|
||||
# Example length is not necessarily an indicator of code quality
|
||||
RSpec/ExampleLength:
|
||||
Enabled: False
|
||||
|
||||
RSpec/NamedSubject:
|
||||
Enabled: False
|
||||
Enabled: false
|
||||
RSpec/MessageExpectation:
|
||||
Enabled: false
|
||||
Style/AsciiComments:
|
||||
Enabled: false
|
||||
Style/IfUnlessModifier:
|
||||
Enabled: false
|
||||
Style/SymbolProc:
|
||||
Enabled: false
|
||||
|
||||
0
.rubocop_todo.yml
Normal file
0
.rubocop_todo.yml
Normal file
@@ -3,3 +3,7 @@ appveyor.yml:
|
||||
delete: true
|
||||
spec/spec_helper.rb:
|
||||
allow_deprecations: true
|
||||
.travis.yml:
|
||||
extras:
|
||||
- rvm: 2.1.9
|
||||
script: bundle exec rake rubocop
|
||||
|
||||
10
.travis.yml
10
.travis.yml
@@ -22,11 +22,13 @@ matrix:
|
||||
script: bundle exec rake beaker
|
||||
services: docker
|
||||
sudo: required
|
||||
- rvm: 2.3.1
|
||||
bundler_args: --without system_tests
|
||||
env: PUPPET_GEM_VERSION="~> 4.0"
|
||||
- rvm: 2.1.7
|
||||
- rvm: 2.4.1
|
||||
bundler_args: --without system_tests
|
||||
env: PUPPET_GEM_VERSION="~> 5.0"
|
||||
- rvm: 2.1.9
|
||||
bundler_args: --without system_tests
|
||||
env: PUPPET_GEM_VERSION="~> 4.0"
|
||||
- rvm: 2.1.9
|
||||
script: bundle exec rake rubocop
|
||||
notifications:
|
||||
email: false
|
||||
|
||||
60
CHANGELOG.md
60
CHANGELOG.md
@@ -1,14 +1,53 @@
|
||||
## Supported Release [2.3.0]
|
||||
### Summary
|
||||
This release is in order to implement Rubocop changes into the module.
|
||||
|
||||
#### Added
|
||||
- Several Modulesync changes have been made.
|
||||
- Rubocop has been implemented in the module.
|
||||
- CentOS 7 is now supported.
|
||||
- Red Hat Enterprise Linux (RHEL) 7 is now supported.
|
||||
- Ubuntu artful 1710 now supported.
|
||||
- Bionic 1804 now supported.
|
||||
|
||||
## Supported Release [2.2.0]
|
||||
### Summary
|
||||
This release is a maintenance release that includes a roll up of minor changes.
|
||||
|
||||
#### Added
|
||||
- Addition of Ubuntu for Oracle Java.
|
||||
- Addition of Debian 9 in supported versions.
|
||||
- Addition of OpenBSD case and use `realpath` rather than `readlink` in Java Default Home Facter fact.
|
||||
|
||||
#### Removed
|
||||
- Removal of OpenBSD as a special case and deprecated `with_env` in Java Version Facter Facter fact.
|
||||
|
||||
## Supported Release 2.1.1
|
||||
### Summary
|
||||
This release is a maintenance release that includes a roll up of minor changes.
|
||||
|
||||
#### Added
|
||||
- Basic Arch Linux, Cloud Linux and Ubuntu 17.04 compatibility.
|
||||
- Metadata bump for Puppet 5.
|
||||
- Search for matching line with java version.
|
||||
- ([MODULES-4069](https://tickets.puppet.com/browse/MODULES-4069)) Fail when required params are not available in params.
|
||||
- A test for java version when java not installed.
|
||||
- Allow latest archive version as dependency.
|
||||
|
||||
#### Changed
|
||||
- CONTRIBUTING.md document includes updates.
|
||||
- Removal of Ubuntu 10.04 ad 12.04, Debian 6 in supported versions.
|
||||
|
||||
## Supported Release 2.1.0
|
||||
### Summary
|
||||
This release adds fixes to restore the ability to install Oracle Java. It also
|
||||
fixes the paths for the latest RHEL 7 1.7.0 and 1.8.0 OpenJDKs.
|
||||
This release adds fixes to restore the ability to install Oracle Java. It also fixes the paths for the latest RHEL 7 1.7.0 and 1.8.0 OpenJDKs.
|
||||
|
||||
### Added
|
||||
- java::oracle parameter `url`
|
||||
- java::oracle parameter `url_hash`
|
||||
|
||||
### Fixed
|
||||
- Let `java_default_home` fact work when /usr/bin/java doesn't exist
|
||||
- Let `java_default_home` fact work when /usr/bin/java does not exist
|
||||
- Add puppet 4 parameter types
|
||||
- Use `/usr/lib/jvm/java-1.x.0` symlinks for `java_home` defaults.
|
||||
|
||||
@@ -127,7 +166,7 @@ This release adds 3 new facts for determining Java version, adds RHEL alternativ
|
||||
|
||||
## 2014-11-11 - Supported Version 1.2.0
|
||||
|
||||
### Summary:
|
||||
### Summary:
|
||||
This release adds SLES 12 support and is tested for Future Parser Support
|
||||
|
||||
#### Bugfixes:
|
||||
@@ -141,7 +180,7 @@ This release adds SLES 12 support and is tested for Future Parser Support
|
||||
|
||||
## 2014-08-25 - Supported Version 1.1.2
|
||||
|
||||
### Summary:
|
||||
### Summary:
|
||||
This release begins the support coverage of the puppetlabs-java module.
|
||||
|
||||
### Bugfixes:
|
||||
@@ -214,11 +253,11 @@ Scott Schneider <sschneider@puppetlabs.com>
|
||||
* Add Solaris support
|
||||
|
||||
## 2011-06-16 - Version 0.1.5
|
||||
Jeff McCune <jeff@puppetlabs.com>
|
||||
Jeff McCune <jeff@puppetlabs.com>
|
||||
* Add Debian based distro (Lucid) support
|
||||
|
||||
## 2011-06-02 - Version 0.1.4
|
||||
Jeff McCune <jeff@puppetlabs.com>
|
||||
Jeff McCune <jeff@puppetlabs.com>
|
||||
* Fix class composition ordering problems
|
||||
|
||||
## 2011-05-28 - Version 0.1.3
|
||||
@@ -235,9 +274,12 @@ Jeff McCune <jeff@puppetlabs.com>
|
||||
* Add validation of class parameters
|
||||
|
||||
## 2011-05-24 - Version 0.1.0
|
||||
Jeff McCune <jeff@puppetlabs.com>
|
||||
Jeff McCune <jeff@puppetlabs.com>
|
||||
* Default to JDK version 6u25
|
||||
|
||||
## 2011-05-24 - Version 0.0.1
|
||||
Jeff McCune <jeff@puppetlabs.com>
|
||||
Jeff McCune <jeff@puppetlabs.com>
|
||||
* Initial release
|
||||
|
||||
[2.3.0]:https://github.com/puppetlabs/puppetlabs-java/compare/2.2.0...2.3.0
|
||||
[2.2.0]:https://github.com/puppetlabs/puppetlabs-java/compare/2.1.1...2.2.0
|
||||
|
||||
222
CONTRIBUTING.md
222
CONTRIBUTING.md
@@ -1,63 +1,75 @@
|
||||
Checklist (and a short version for the impatient)
|
||||
=================================================
|
||||
# Contributing to Puppet modules
|
||||
|
||||
* Commits:
|
||||
So you want to contribute to a Puppet module: Great! Below are some instructions to get you started doing
|
||||
that very thing while setting expectations around code quality as well as a few tips for making the
|
||||
process as easy as possible.
|
||||
|
||||
- Make commits of logical units.
|
||||
### Table of Contents
|
||||
|
||||
- Check for unnecessary whitespace with "git diff --check" before
|
||||
committing.
|
||||
1. [Getting Started](#getting-started)
|
||||
1. [Commit Checklist](#commit-checklist)
|
||||
1. [Submission](#submission)
|
||||
1. [More about commits](#more-about-commits)
|
||||
1. [Testing](#testing)
|
||||
- [Running Tests](#running-tests)
|
||||
- [Writing Tests](#writing-tests)
|
||||
1. [Get Help](#get-help)
|
||||
|
||||
- Commit using Unix line endings (check the settings around "crlf" in
|
||||
git-config(1)).
|
||||
## Getting Started
|
||||
|
||||
- Do not check in commented out code or unneeded files.
|
||||
- Fork the module repository on GitHub and clone to your workspace
|
||||
|
||||
- The first line of the commit message should be a short
|
||||
description (50 characters is the soft limit, excluding ticket
|
||||
number(s)), and should skip the full stop.
|
||||
- Make your changes!
|
||||
|
||||
- Associate the issue in the message. The first line should include
|
||||
the issue number in the form "(#XXXX) Rest of message".
|
||||
## Commit Checklist
|
||||
|
||||
- The body should provide a meaningful commit message, which:
|
||||
### The Basics
|
||||
|
||||
- uses the imperative, present tense: "change", not "changed" or
|
||||
"changes".
|
||||
- [x] my commit is a single logical unit of work
|
||||
|
||||
- includes motivation for the change, and contrasts its
|
||||
implementation with the previous behavior.
|
||||
- [x] I have checked for unnecessary whitespace with "git diff --check"
|
||||
|
||||
- Make sure that you have tests for the bug you are fixing, or
|
||||
feature you are adding.
|
||||
- [x] my commit does not include commented out code or unneeded files
|
||||
|
||||
- Make sure the test suites passes after your commit:
|
||||
`bundle exec rspec spec/acceptance` More information on [testing](#Testing) below
|
||||
### The Content
|
||||
|
||||
- When introducing a new feature, make sure it is properly
|
||||
documented in the README.md
|
||||
- [x] my commit includes tests for the bug I fixed or feature I added
|
||||
|
||||
* Submission:
|
||||
- [x] my commit includes appropriate documentation changes if it is introducing a new feature or changing existing functionality
|
||||
|
||||
- [x] my code passes existing test suites
|
||||
|
||||
* Pre-requisites:
|
||||
### The Commit Message
|
||||
|
||||
- Make sure you have a [GitHub account](https://github.com/join)
|
||||
- [x] the first line of my commit message includes:
|
||||
|
||||
- [Create a ticket](https://tickets.puppet.com/secure/CreateIssue!default.jspa), or [watch the ticket](https://tickets.puppet.com/browse/) you are patching for.
|
||||
- [x] an issue number (if applicable), e.g. "(MODULES-xxxx) This is the first line"
|
||||
|
||||
- [x] a short description (50 characters is the soft limit, excluding ticket number(s))
|
||||
|
||||
* Preferred method:
|
||||
- [x] the body of my commit message:
|
||||
|
||||
- Fork the repository on GitHub.
|
||||
- [x] is meaningful
|
||||
|
||||
- Push your changes to a topic branch in your fork of the
|
||||
repository. (the format ticket/1234-short_description_of_change is
|
||||
usually preferred for this project).
|
||||
- [x] uses the imperative, present tense: "change", not "changed" or "changes"
|
||||
|
||||
- Submit a pull request to the repository in the puppetlabs
|
||||
organization.
|
||||
- [x] includes motivation for the change, and contrasts its implementation with the previous behavior
|
||||
|
||||
The long version
|
||||
================
|
||||
## Submission
|
||||
|
||||
### Pre-requisites
|
||||
|
||||
- Make sure you have a [GitHub account](https://github.com/join)
|
||||
|
||||
- [Create a ticket](https://tickets.puppet.com/secure/CreateIssue!default.jspa), or [watch the ticket](https://tickets.puppet.com/browse/) you are patching for.
|
||||
|
||||
### Push and PR
|
||||
|
||||
- Push your changes to your fork
|
||||
|
||||
- [Open a Pull Request](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) against the repository in the puppetlabs organization
|
||||
|
||||
## More about commits
|
||||
|
||||
1. Make separate commits for logically separate changes.
|
||||
|
||||
@@ -104,37 +116,32 @@ The long version
|
||||
GitHub has some pretty good
|
||||
[general documentation](http://help.github.com/) on using
|
||||
their site. They also have documentation on
|
||||
[creating pull requests](http://help.github.com/send-pull-requests/).
|
||||
[creating pull requests](https://help.github.com/articles/creating-a-pull-request-from-a-fork/).
|
||||
|
||||
In general, after pushing your topic branch up to your
|
||||
repository on GitHub, you can switch to the branch in the
|
||||
GitHub UI and click "Pull Request" towards the top of the page
|
||||
in order to open a pull request.
|
||||
|
||||
3. Update the related JIRA issue.
|
||||
|
||||
3. Update the related GitHub issue.
|
||||
|
||||
If there is a GitHub issue associated with the change you
|
||||
If there is a JIRA issue associated with the change you
|
||||
submitted, then you should update the ticket to include the
|
||||
location of your branch, along with any other commentary you
|
||||
may wish to make.
|
||||
|
||||
Testing
|
||||
=======
|
||||
# Testing
|
||||
|
||||
Getting Started
|
||||
---------------
|
||||
## Getting Started
|
||||
|
||||
Our puppet modules provide [`Gemfile`](./Gemfile)s which can tell a ruby
|
||||
package manager such as [bundler](http://bundler.io/) what Ruby packages,
|
||||
Our Puppet modules provide [`Gemfile`](./Gemfile)s, which can tell a Ruby package manager such as [bundler](http://bundler.io/) what Ruby packages,
|
||||
or Gems, are required to build, develop, and test this software.
|
||||
|
||||
Please make sure you have [bundler installed](http://bundler.io/#getting-started)
|
||||
on your system, then use it to install all dependencies needed for this project,
|
||||
by running
|
||||
Please make sure you have [bundler installed](http://bundler.io/#getting-started) on your system, and then use it to
|
||||
install all dependencies needed for this project in the project root by running
|
||||
|
||||
```shell
|
||||
% bundle install
|
||||
% bundle install --path .bundle/gems
|
||||
Fetching gem metadata from https://rubygems.org/........
|
||||
Fetching gem metadata from https://rubygems.org/..
|
||||
Using rake (10.1.0)
|
||||
@@ -148,7 +155,7 @@ Your bundle is complete!
|
||||
Use `bundle show [gemname]` to see where a bundled gem is installed.
|
||||
```
|
||||
|
||||
NOTE some systems may require you to run this command with sudo.
|
||||
NOTE: some systems may require you to run this command with sudo.
|
||||
|
||||
If you already have those gems installed, make sure they are up-to-date:
|
||||
|
||||
@@ -156,26 +163,27 @@ If you already have those gems installed, make sure they are up-to-date:
|
||||
% bundle update
|
||||
```
|
||||
|
||||
With all dependencies in place and up-to-date we can now run the tests:
|
||||
## Running Tests
|
||||
|
||||
With all dependencies in place and up-to-date, run the tests:
|
||||
|
||||
### Unit Tests
|
||||
|
||||
```shell
|
||||
% bundle exec rake spec
|
||||
```
|
||||
|
||||
This will execute all the [rspec tests](http://rspec-puppet.com/) tests
|
||||
under [spec/defines](./spec/defines), [spec/classes](./spec/classes),
|
||||
and so on. rspec tests may have the same kind of dependencies as the
|
||||
module they are testing. While the module defines in its [Modulefile](./Modulefile),
|
||||
This executes all the [rspec tests](http://rspec-puppet.com/) in the directories defined [here](https://github.com/puppetlabs/puppetlabs_spec_helper/blob/699d9fbca1d2489bff1736bb254bb7b7edb32c74/lib/puppetlabs_spec_helper/rake_tasks.rb#L17) and so on.
|
||||
rspec tests may have the same kind of dependencies as the module they are testing. Although the module defines these dependencies in its [metadata.json](./metadata.json),
|
||||
rspec tests define them in [.fixtures.yml](./fixtures.yml).
|
||||
|
||||
Some puppet modules also come with [beaker](https://github.com/puppetlabs/beaker)
|
||||
tests. These tests spin up a virtual machine under
|
||||
[VirtualBox](https://www.virtualbox.org/)) with, controlling it with
|
||||
[Vagrant](http://www.vagrantup.com/) to actually simulate scripted test
|
||||
scenarios. In order to run these, you will need both of those tools
|
||||
installed on your system.
|
||||
### Acceptance Tests
|
||||
|
||||
You can run them by issuing the following command
|
||||
Some Puppet modules also come with acceptance tests, which use [beaker][]. These tests spin up a virtual machine under
|
||||
[VirtualBox](https://www.virtualbox.org/), controlled with [Vagrant](http://www.vagrantup.com/), to simulate scripted test
|
||||
scenarios. In order to run these, you need both Virtualbox and Vagrant installed on your system.
|
||||
|
||||
Run the tests by issuing the following command
|
||||
|
||||
```shell
|
||||
% bundle exec rake spec_clean
|
||||
@@ -183,35 +191,81 @@ You can run them by issuing the following command
|
||||
```
|
||||
|
||||
This will now download a pre-fabricated image configured in the [default node-set](./spec/acceptance/nodesets/default.yml),
|
||||
install puppet, copy this module and install its dependencies per [spec/spec_helper_acceptance.rb](./spec/spec_helper_acceptance.rb)
|
||||
install Puppet, copy this module, and install its dependencies per [spec/spec_helper_acceptance.rb](./spec/spec_helper_acceptance.rb)
|
||||
and then run all the tests under [spec/acceptance](./spec/acceptance).
|
||||
|
||||
Writing Tests
|
||||
-------------
|
||||
## Writing Tests
|
||||
|
||||
XXX getting started writing tests.
|
||||
### Unit Tests
|
||||
|
||||
If you have commit access to the repository
|
||||
===========================================
|
||||
When writing unit tests for Puppet, [rspec-puppet][] is your best friend. It provides tons of helper methods for testing your manifests against a
|
||||
catalog (e.g. contain_file, contain_package, with_params, etc). It would be ridiculous to try and top rspec-puppet's [documentation][rspec-puppet_docs]
|
||||
but here's a tiny sample:
|
||||
|
||||
Even if you have commit access to the repository, you will still need to
|
||||
go through the process above, and have someone else review and merge
|
||||
in your changes. The rule is that all changes must be reviewed by a
|
||||
developer on the project (that did not write the code) to ensure that
|
||||
all changes go through a code review process.
|
||||
Sample manifest:
|
||||
|
||||
Having someone other than the author of the topic branch recorded as
|
||||
performing the merge is the record that they performed the code
|
||||
review.
|
||||
```puppet
|
||||
file { "a test file":
|
||||
ensure => present,
|
||||
path => "/etc/sample",
|
||||
}
|
||||
```
|
||||
|
||||
Sample test:
|
||||
|
||||
Additional Resources
|
||||
====================
|
||||
```ruby
|
||||
it 'does a thing' do
|
||||
expect(subject).to contain_file("a test file").with({:path => "/etc/sample"})
|
||||
end
|
||||
```
|
||||
|
||||
* [Getting additional help](http://puppet.com/community/get-help)
|
||||
### Acceptance Tests
|
||||
|
||||
Writing acceptance tests for Puppet involves [beaker][] and its cousin [beaker-rspec][]. A common pattern for acceptance tests is to create a test manifest, apply it
|
||||
twice to check for idempotency or errors, then run expectations.
|
||||
|
||||
```ruby
|
||||
it 'does an end-to-end thing' do
|
||||
pp = <<-EOF
|
||||
file { 'a test file':
|
||||
ensure => present,
|
||||
path => "/etc/sample",
|
||||
content => "test string",
|
||||
}
|
||||
|
||||
apply_manifest(pp, :catch_failures => true)
|
||||
apply_manifest(pp, :catch_changes => true)
|
||||
|
||||
end
|
||||
|
||||
describe file("/etc/sample") do
|
||||
it { is_expected.to contain "test string" }
|
||||
end
|
||||
|
||||
```
|
||||
|
||||
# If you have commit access to the repository
|
||||
|
||||
Even if you have commit access to the repository, you still need to go through the process above, and have someone else review and merge
|
||||
in your changes. The rule is that **all changes must be reviewed by a project developer that did not write the code to ensure that
|
||||
all changes go through a code review process.**
|
||||
|
||||
The record of someone performing the merge is the record that they performed the code review. Again, this should be someone other than the author of the topic branch.
|
||||
|
||||
# Get Help
|
||||
|
||||
### On the web
|
||||
* [Puppet help messageboard](http://puppet.com/community/get-help)
|
||||
* [Writing tests](https://docs.puppet.com/guides/module_guides/bgtm.html#step-three-module-testing)
|
||||
|
||||
* [General GitHub documentation](http://help.github.com/)
|
||||
|
||||
* [GitHub pull request documentation](http://help.github.com/send-pull-requests/)
|
||||
|
||||
### On chat
|
||||
* Slack (slack.puppet.com) #forge-modules, #puppet-dev, #windows, #voxpupuli
|
||||
* IRC (freenode) #puppet-dev, #voxpupuli
|
||||
|
||||
|
||||
[rspec-puppet]: http://rspec-puppet.com/
|
||||
[rspec-puppet_docs]: http://rspec-puppet.com/documentation/
|
||||
[beaker]: https://github.com/puppetlabs/beaker
|
||||
[beaker-rspec]: https://github.com/puppetlabs/beaker-rspec
|
||||
|
||||
15
Gemfile
15
Gemfile
@@ -33,13 +33,13 @@ ruby_version_segments = Gem::Version.new(RUBY_VERSION.dup).segments
|
||||
minor_version = "#{ruby_version_segments[0]}.#{ruby_version_segments[1]}"
|
||||
|
||||
group :development do
|
||||
gem "puppet-module-posix-default-r#{minor_version}", :require => false, :platforms => "ruby"
|
||||
gem "puppet-module-win-default-r#{minor_version}", :require => false, :platforms => ["mswin", "mingw", "x64_mingw"]
|
||||
gem "puppet-module-posix-dev-r#{minor_version}", :require => false, :platforms => "ruby"
|
||||
gem "puppet-module-win-dev-r#{minor_version}", :require => false, :platforms => ["mswin", "mingw", "x64_mingw"]
|
||||
gem "json_pure", '<= 2.0.1', :require => false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.0.0')
|
||||
gem "fast_gettext", '1.1.0', :require => false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.1.0')
|
||||
gem "fast_gettext", :require => false if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.1.0')
|
||||
gem "puppet-module-posix-default-r#{minor_version}", :require => false, :platforms => "ruby"
|
||||
gem "puppet-module-win-default-r#{minor_version}", :require => false, :platforms => ["mswin", "mingw", "x64_mingw"]
|
||||
gem "puppet-module-posix-dev-r#{minor_version}", :require => false, :platforms => "ruby"
|
||||
gem "puppet-module-win-dev-r#{minor_version}", '0.0.7', :require => false, :platforms => ["mswin", "mingw", "x64_mingw"]
|
||||
gem "json_pure", '<= 2.0.1', :require => false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.0.0')
|
||||
gem "fast_gettext", '1.1.0', :require => false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.1.0')
|
||||
gem "fast_gettext", :require => false if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.1.0')
|
||||
end
|
||||
|
||||
group :system_tests do
|
||||
@@ -50,6 +50,7 @@ group :system_tests do
|
||||
gem "beaker-rspec", *location_for(ENV['BEAKER_RSPEC_VERSION'])
|
||||
gem "beaker-hostgenerator", *location_for(ENV['BEAKER_HOSTGENERATOR_VERSION'])
|
||||
gem "beaker-abs", *location_for(ENV['BEAKER_ABS_VERSION'] || '~> 0.1')
|
||||
gem "puppet-blacksmith", '~> 3.4', :require => false
|
||||
end
|
||||
|
||||
gem 'puppet', *location_for(ENV['PUPPET_GEM_VERSION'])
|
||||
|
||||
@@ -202,6 +202,8 @@ Sun Java is supported on:
|
||||
Oracle Java is supported on:
|
||||
|
||||
* CentOS 6
|
||||
* CentOS 7
|
||||
* Red Hat Enterprise Linux (RHEL) 7
|
||||
|
||||
### Known issues
|
||||
|
||||
|
||||
@@ -3,25 +3,28 @@
|
||||
# Purpose: get absolute path of java system home
|
||||
#
|
||||
# Resolution:
|
||||
# Uses `readlink` to resolve the path of `/usr/bin/java` then returns subsubdir
|
||||
# Find the real java binary, and return the subsubdir
|
||||
#
|
||||
# Caveats:
|
||||
# Requires readlink
|
||||
# java binary has to be found in $PATH
|
||||
#
|
||||
# Notes:
|
||||
# None
|
||||
Facter.add(:java_default_home) do
|
||||
confine :kernel => 'Linux'
|
||||
confine kernel: %w[Linux OpenBSD]
|
||||
java_default_home = nil
|
||||
setcode do
|
||||
if Facter::Util::Resolution.which('readlink')
|
||||
java_bin = Facter::Util::Resolution.exec('readlink -e /usr/bin/java').strip
|
||||
if java_bin.empty?
|
||||
nil
|
||||
elsif java_bin =~ %r(/jre/)
|
||||
java_default_home = File.dirname(File.dirname(File.dirname(java_bin)))
|
||||
else
|
||||
java_default_home = File.dirname(File.dirname(java_bin))
|
||||
end
|
||||
java_bin = Facter::Util::Resolution.which('java').to_s.strip
|
||||
if java_bin.empty?
|
||||
nil
|
||||
else
|
||||
java_path = File.realpath(java_bin)
|
||||
java_default_home = if java_path =~ %r{/jre/}
|
||||
File.dirname(File.dirname(File.dirname(java_path)))
|
||||
else
|
||||
File.dirname(File.dirname(java_path))
|
||||
end
|
||||
end
|
||||
end
|
||||
java_default_home
|
||||
end
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
# Notes:
|
||||
# None
|
||||
Facter.add(:java_libjvm_path) do
|
||||
confine :kernel => "Linux"
|
||||
confine kernel: %w[Linux OpenBSD]
|
||||
setcode do
|
||||
java_default_home = Facter.value(:java_default_home)
|
||||
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
|
||||
|
||||
|
||||
@@ -13,8 +13,10 @@
|
||||
# Notes:
|
||||
# None
|
||||
Facter.add(:java_major_version) do
|
||||
java_major_version = nil
|
||||
setcode do
|
||||
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
|
||||
|
||||
@@ -11,8 +11,10 @@
|
||||
# Notes:
|
||||
# None
|
||||
Facter.add(:java_patch_level) do
|
||||
java_patch_level = nil
|
||||
setcode do
|
||||
java_version = Facter.value(:java_version)
|
||||
java_patch_level = java_version.strip.split('_')[1] unless java_version.nil?
|
||||
end
|
||||
end
|
||||
java_patch_level
|
||||
end
|
||||
|
||||
@@ -21,32 +21,24 @@ Facter.add(:java_version) do
|
||||
# Additionally, facter versions prior to 2.0.1 only support
|
||||
# positive matches, so this needs to be done manually in setcode.
|
||||
setcode do
|
||||
unless [ 'openbsd', 'darwin' ].include? Facter.value(:operatingsystem).downcase
|
||||
unless ['darwin'].include? Facter.value(:operatingsystem).downcase
|
||||
version = nil
|
||||
if Facter::Util::Resolution.which('java')
|
||||
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.first.split(/"/)[1].strip
|
||||
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = $LAST_MATCH_INFO[1] if %r{^.+ version \"(.+)\"$} =~ line }
|
||||
end
|
||||
version
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Facter.add(:java_version) do
|
||||
confine :operatingsystem => 'OpenBSD'
|
||||
confine operatingsystem: 'Darwin'
|
||||
has_weight 100
|
||||
setcode do
|
||||
Facter::Util::Resolution.with_env("PATH" => '/usr/local/jdk-1.7.0/jre/bin:/usr/local/jre-1.7.0/bin') do
|
||||
if Facter::Util::Resolution.which('java')
|
||||
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.first.split(/"/)[1].strip
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Facter.add(:java_version) do
|
||||
confine :operatingsystem => 'Darwin'
|
||||
has_weight 100
|
||||
setcode do
|
||||
unless /Unable to find any JVMs matching version/ =~ Facter::Util::Resolution.exec('/usr/libexec/java_home --failfast 2>&1')
|
||||
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.first.split(/"/)[1].strip
|
||||
unless %r{Unable to find any JVMs matching version} =~ Facter::Util::Resolution.exec('/usr/libexec/java_home --failfast 2>&1')
|
||||
version = nil
|
||||
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = $LAST_MATCH_INFO[1] if %r{^.+ version \"(.+)\"$} =~ line }
|
||||
version
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -22,4 +22,5 @@ gettext:
|
||||
# Patterns for +Dir.glob+ used to find all files that might contain
|
||||
# translatable content, relative to the project root directory
|
||||
source_files:
|
||||
- './lib/**/*.rb'
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ class java::config ( ) {
|
||||
}
|
||||
}
|
||||
}
|
||||
'OpenBSD', 'FreeBSD', 'Suse': {
|
||||
'FreeBSD', 'Suse': {
|
||||
if $java::use_java_home != undef {
|
||||
file_line { 'java-home-environment':
|
||||
path => '/etc/environment',
|
||||
@@ -62,6 +62,15 @@ class java::config ( ) {
|
||||
}
|
||||
}
|
||||
}
|
||||
'Archlinux': {
|
||||
if $java::use_java_home != undef {
|
||||
file_line { 'java-home-environment':
|
||||
path => '/etc/profile',
|
||||
line => "JAVA_HOME=${$java::use_java_home}",
|
||||
match => 'JAVA_HOME=',
|
||||
}
|
||||
}
|
||||
}
|
||||
default: {
|
||||
# Do nothing.
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
# or other platform-specific options where there are multiple
|
||||
# implementations available (eg: OpenJDK vs Oracle JDK).
|
||||
#
|
||||
#
|
||||
# [*version*]
|
||||
# The version of java to install. By default, this module simply ensures
|
||||
# that java is present, and does not require a specific version.
|
||||
@@ -36,8 +35,8 @@
|
||||
# correct JVM is enabled.
|
||||
#
|
||||
# [*java_home*]
|
||||
# The path to where the JRE is installed. This will be set as an
|
||||
# environment variable.
|
||||
# The path to where the JRE is installed. This will be set as an
|
||||
# environment variable.
|
||||
#
|
||||
# Actions:
|
||||
#
|
||||
@@ -54,15 +53,11 @@ class java(
|
||||
Optional[String] $java_alternative_path = undef,
|
||||
Optional[String] $java_home = undef
|
||||
) {
|
||||
include java::params
|
||||
include ::java::params
|
||||
|
||||
if has_key($java::params::java, $distribution) {
|
||||
$default_package_name = $java::params::java[$distribution]['package']
|
||||
$default_alternative = $java::params::java[$distribution]['alternative']
|
||||
$default_alternative_path = $java::params::java[$distribution]['alternative_path']
|
||||
$default_java_home = $java::params::java[$distribution]['java_home']
|
||||
} else {
|
||||
fail("Java distribution ${distribution} is not supported.")
|
||||
$default_package_name = has_key($java::params::java, $distribution) ? {
|
||||
false => undef,
|
||||
default => $java::params::java[$distribution]['package'],
|
||||
}
|
||||
|
||||
$use_java_package_name = $package ? {
|
||||
@@ -70,12 +65,17 @@ class java(
|
||||
default => $package,
|
||||
}
|
||||
|
||||
|
||||
## Weird logic........
|
||||
## If $java_alternative is set, use that.
|
||||
## Elsif the DEFAULT package is being used, then use $default_alternative.
|
||||
## Else undef
|
||||
$use_java_alternative = $java_alternative ? {
|
||||
undef => $use_java_package_name ? {
|
||||
$default_package_name => $default_alternative,
|
||||
undef => $use_java_package_name ? {
|
||||
$default_package_name => has_key($java::params::java, $distribution) ? {
|
||||
default => $java::params::java[$distribution]['alternative'],
|
||||
false => undef,
|
||||
},
|
||||
default => undef,
|
||||
},
|
||||
default => $java_alternative,
|
||||
@@ -83,21 +83,38 @@ class java(
|
||||
|
||||
## Same logic as $java_alternative above.
|
||||
$use_java_alternative_path = $java_alternative_path ? {
|
||||
undef => $use_java_package_name ? {
|
||||
$default_package_name => $default_alternative_path,
|
||||
undef => $use_java_package_name ? {
|
||||
$default_package_name => has_key($java::params::java, $distribution) ? {
|
||||
default => $java::params::java[$distribution]['alternative_path'],
|
||||
false => undef,
|
||||
},
|
||||
default => undef,
|
||||
},
|
||||
default => $java_alternative_path,
|
||||
}
|
||||
|
||||
$use_java_home = $java_home ? {
|
||||
undef => $use_java_package_name ? {
|
||||
$default_package_name => $default_java_home,
|
||||
undef => $use_java_package_name ? {
|
||||
$default_package_name => has_key($java::params::java, $distribution) ? {
|
||||
default => $java::params::java[$distribution]['java_home'],
|
||||
false => undef,
|
||||
},
|
||||
default => undef,
|
||||
},
|
||||
default => $java_home,
|
||||
}
|
||||
|
||||
## This should only be required if we did not override all the information we need.
|
||||
# One of the defaults is missing and its not intentional:
|
||||
if ((
|
||||
$use_java_package_name == undef or $use_java_alternative == undef or
|
||||
$use_java_alternative_path == undef or $use_java_home == undef
|
||||
) and (
|
||||
! has_key($::java::params::java, $distribution)
|
||||
)) {
|
||||
fail("Java distribution ${distribution} is not supported. Missing default values.")
|
||||
}
|
||||
|
||||
$jre_flag = $use_java_package_name ? {
|
||||
/headless/ => '--jre-headless',
|
||||
default => '--jre'
|
||||
|
||||
@@ -166,6 +166,11 @@ define java::oracle (
|
||||
} else {
|
||||
$package_type = 'rpm'
|
||||
}
|
||||
$creates_path = "/usr/java/${install_path}"
|
||||
}
|
||||
'Debian' : {
|
||||
$package_type = 'tar.gz'
|
||||
$creates_path = "/usr/lib/jvm/${install_path}"
|
||||
}
|
||||
default : {
|
||||
fail ("unsupported platform ${$facts['os']['name']}") }
|
||||
@@ -173,7 +178,6 @@ define java::oracle (
|
||||
|
||||
$os = 'linux'
|
||||
$destination_dir = '/tmp/'
|
||||
$creates_path = "/usr/java/${install_path}"
|
||||
}
|
||||
default : {
|
||||
fail ( "unsupported platform ${$facts['kernel']}" ) }
|
||||
@@ -183,6 +187,7 @@ define java::oracle (
|
||||
case $facts['os']['architecture'] {
|
||||
'i386' : { $arch = 'i586' }
|
||||
'x86_64' : { $arch = 'x64' }
|
||||
'amd64' : { $arch = 'x64' }
|
||||
default : {
|
||||
fail ("unsupported platform ${$facts['os']['architecture']}")
|
||||
}
|
||||
@@ -205,6 +210,9 @@ define java::oracle (
|
||||
'rpm' : {
|
||||
$package_name = "${java_se}-${release_major}-${os}-${arch}.rpm"
|
||||
}
|
||||
'tar.gz' : {
|
||||
$package_name = "${java_se}-${release_major}-${os}-${arch}.tar.gz"
|
||||
}
|
||||
default : {
|
||||
$package_name = "${java_se}-${release_major}-${os}-${arch}.rpm"
|
||||
}
|
||||
@@ -213,9 +221,11 @@ define java::oracle (
|
||||
# if complete URL is provided, use this value for source in archive resource
|
||||
if $url {
|
||||
$source = $url
|
||||
} elsif $release_hash != undef {
|
||||
}
|
||||
elsif $release_hash != undef {
|
||||
$source = "${oracle_url}/${release_major}-${release_minor}/${release_hash}/${package_name}"
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
$source = "${oracle_url}/${release_major}-${release_minor}/${package_name}"
|
||||
}
|
||||
|
||||
@@ -233,6 +243,9 @@ define java::oracle (
|
||||
'rpm' : {
|
||||
$install_command = "rpm --force -iv ${destination}"
|
||||
}
|
||||
'tar.gz' : {
|
||||
$install_command = "tar -zxf ${destination} -C /usr/lib/jvm"
|
||||
}
|
||||
default : {
|
||||
$install_command = "rpm -iv ${destination}"
|
||||
}
|
||||
@@ -256,7 +269,16 @@ define java::oracle (
|
||||
path => '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin',
|
||||
command => $install_command,
|
||||
creates => $creates_path,
|
||||
require => Archive[$destination],
|
||||
require => Archive[$destination]
|
||||
}
|
||||
case $facts['os']['family'] {
|
||||
'Debian' : {
|
||||
file{'/usr/lib/jvm':
|
||||
ensure => directory,
|
||||
before => Exec["Install Oracle java_se ${java_se} ${version}"]
|
||||
}
|
||||
}
|
||||
default : { }
|
||||
}
|
||||
}
|
||||
default : {
|
||||
|
||||
@@ -15,7 +15,7 @@ class java::params {
|
||||
case $::osfamily {
|
||||
'RedHat': {
|
||||
case $::operatingsystem {
|
||||
'RedHat', 'CentOS', 'OracleLinux', 'Scientific', 'OEL', 'SLC': {
|
||||
'RedHat', 'CentOS', 'OracleLinux', 'Scientific', 'OEL', 'SLC', 'CloudLinux': {
|
||||
if (versioncmp($::operatingsystemrelease, '5.0') < 0) {
|
||||
$jdk_package = 'java-1.6.0-sun-devel'
|
||||
$jre_package = 'java-1.6.0-sun'
|
||||
@@ -155,7 +155,7 @@ class java::params {
|
||||
},
|
||||
}
|
||||
}
|
||||
'stretch', 'vivid', 'wily', 'xenial', 'yakkety': {
|
||||
'stretch', 'vivid', 'wily', 'xenial', 'yakkety', 'zesty', 'artful', 'bionic': {
|
||||
$java = {
|
||||
'jdk' => {
|
||||
'package' => 'openjdk-8-jdk',
|
||||
@@ -253,6 +253,21 @@ class java::params {
|
||||
},
|
||||
}
|
||||
}
|
||||
'Archlinux': {
|
||||
$jdk_package = 'jdk8-openjdk'
|
||||
$jre_package = 'jre8-openjdk'
|
||||
$java_home = '/usr/lib/jvm/java-8-openjdk/jre/'
|
||||
$java = {
|
||||
'jdk' => {
|
||||
'package' => $jdk_package,
|
||||
'java_home' => $java_home,
|
||||
},
|
||||
'jre' => {
|
||||
'package' => $jre_package,
|
||||
'java_home' => $java_home,
|
||||
},
|
||||
}
|
||||
}
|
||||
default: { fail("unsupported platform ${::osfamily}") }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "puppetlabs-java",
|
||||
"version": "2.1.0",
|
||||
"version": "2.3.0",
|
||||
"author": "puppetlabs",
|
||||
"summary": "Installs the correct Java package on various platforms.",
|
||||
"license": "Apache-2.0",
|
||||
@@ -49,16 +49,14 @@
|
||||
{
|
||||
"operatingsystem": "Debian",
|
||||
"operatingsystemrelease": [
|
||||
"6",
|
||||
"7",
|
||||
"8"
|
||||
"8",
|
||||
"9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operatingsystem": "Ubuntu",
|
||||
"operatingsystemrelease": [
|
||||
"10.04",
|
||||
"12.04",
|
||||
"14.04",
|
||||
"16.04"
|
||||
]
|
||||
@@ -85,7 +83,7 @@
|
||||
"requirements": [
|
||||
{
|
||||
"name": "puppet",
|
||||
"version_requirement": ">= 4.7.0 < 5.0.0"
|
||||
"version_requirement": ">= 4.7.0 < 6.0.0"
|
||||
}
|
||||
],
|
||||
"dependencies": [
|
||||
@@ -95,7 +93,7 @@
|
||||
},
|
||||
{
|
||||
"name":"puppet/archive",
|
||||
"version_requirement": ">= 1.1.0 < 2.0.0"
|
||||
"version_requirement": ">= 1.1.0 < 3.0.0"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
require 'spec_helper_acceptance'
|
||||
|
||||
#RedHat, CentOS, Scientific, Oracle prior to 5.0 : Sun Java JDK/JRE 1.6
|
||||
#RedHat, CentOS, Scientific, Oracle 5.0 < x < 6.3 : OpenJDK Java JDK/JRE 1.6
|
||||
#RedHat, CentOS, Scientific, Oracle after 6.3 : OpenJDK Java JDK/JRE 1.7
|
||||
#Debian 5/6 & Ubuntu 10.04/11.04 : OpenJDK Java JDK/JRE 1.6 or Sun Java JDK/JRE 1.6
|
||||
#Debian 7/Jesse & Ubuntu 12.04 - 14.04 : OpenJDK Java JDK/JRE 1.7 or Oracle Java JDK/JRE 1.6
|
||||
#Solaris (what versions?) : Java JDK/JRE 1.7
|
||||
#OpenSuSE : OpenJDK Java JDK/JRE 1.7
|
||||
#SLES : IBM Java JDK/JRE 1.6
|
||||
# RedHat, CentOS, Scientific, Oracle prior to 5.0 : Sun Java JDK/JRE 1.6
|
||||
# RedHat, CentOS, Scientific, Oracle 5.0 < x < 6.3 : OpenJDK Java JDK/JRE 1.6
|
||||
# RedHat, CentOS, Scientific, Oracle after 6.3 : OpenJDK Java JDK/JRE 1.7
|
||||
# Debian 5/6 & Ubuntu 10.04/11.04 : OpenJDK Java JDK/JRE 1.6 or Sun Java JDK/JRE 1.6
|
||||
# Debian 7/Jesse & Ubuntu 12.04 - 14.04 : OpenJDK Java JDK/JRE 1.7 or Oracle Java JDK/JRE 1.6
|
||||
# Solaris (what versions?) : Java JDK/JRE 1.7
|
||||
# OpenSuSE : OpenJDK Java JDK/JRE 1.7
|
||||
# SLES : IBM Java JDK/JRE 1.6
|
||||
|
||||
# C14677
|
||||
# C14678
|
||||
@@ -26,74 +26,103 @@ require 'spec_helper_acceptance'
|
||||
# C14723 Where is oracle linux 5?
|
||||
# C14724 Where is oracle linux 5?
|
||||
# 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
|
||||
|
||||
# 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
|
||||
# updates the alternatives for java
|
||||
if fact('operatingsystem') == 'Debian' and fact('lsbdistcodename') == 'wheezy'
|
||||
apply_manifest(pp)
|
||||
else
|
||||
apply_manifest(pp, :catch_failures => true)
|
||||
end
|
||||
apply_manifest(pp, :catch_changes => true)
|
||||
end
|
||||
end
|
||||
describe "jdk" do
|
||||
it 'should install jdk' do
|
||||
pp = <<-EOS
|
||||
class { 'java': }
|
||||
EOS
|
||||
java_class_jre = "class { 'java':\n"\
|
||||
" distribution => 'jre',\n"\
|
||||
'}'
|
||||
|
||||
apply_manifest(pp, :catch_failures => true)
|
||||
apply_manifest(pp, :catch_changes => true)
|
||||
end
|
||||
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
|
||||
# throws an error on the first run due to missing alternative for policytool. It still
|
||||
# updates the alternatives for java
|
||||
if fact('operatingsystem') == 'Debian' && fact('lsbdistcodename') == 'wheezy'
|
||||
apply_manifest(pp)
|
||||
else
|
||||
apply_manifest(pp, catch_failures: true)
|
||||
end
|
||||
end
|
||||
|
||||
context 'installing java jre', unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
||||
it 'installs jre' do
|
||||
apply_manifest_wheezy_case(java_class_jre)
|
||||
apply_manifest(java_class_jre, catch_changes: true)
|
||||
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
|
||||
|
||||
# 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
|
||||
pp = <<-EOS
|
||||
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)
|
||||
apply_manifest(sources)
|
||||
shell('apt-get update')
|
||||
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')
|
||||
end
|
||||
describe 'jre' do
|
||||
it 'should install sun-jre' do
|
||||
pp = <<-EOS
|
||||
class { 'java':
|
||||
distribution => 'sun-jre',
|
||||
}
|
||||
EOS
|
||||
|
||||
apply_manifest(pp, :catch_failures => true)
|
||||
apply_manifest(pp, :catch_changes => true)
|
||||
it 'installs sun-jre' do
|
||||
apply_manifest(sun_jre, catch_failures: true)
|
||||
apply_manifest(sun_jre, catch_changes: true)
|
||||
end
|
||||
end
|
||||
describe 'jdk' do
|
||||
it 'should install sun-jdk' do
|
||||
pp = <<-EOS
|
||||
class { 'java':
|
||||
distribution => 'sun-jdk',
|
||||
}
|
||||
EOS
|
||||
|
||||
apply_manifest(pp, :catch_failures => true)
|
||||
apply_manifest(pp, :catch_changes => true)
|
||||
it 'installs sun-jdk' do
|
||||
apply_manifest(sun_jdk, catch_failures: true)
|
||||
apply_manifest(sun_jdk, catch_changes: true)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -101,122 +130,64 @@ end
|
||||
# C14704
|
||||
# C14705
|
||||
# C15006
|
||||
describe 'oracle', :if => (
|
||||
(fact('operatingsystem') == 'Debian') and (fact('operatingsystemrelease').match(/^7/)) or
|
||||
(fact('operatingsystem') == 'Ubuntu') and (fact('operatingsystemrelease').match(/^12\.04/)) or
|
||||
(fact('operatingsystem') == 'Ubuntu') and (fact('operatingsystemrelease').match(/^14\.04/))
|
||||
context 'oracle', if: (
|
||||
(fact('operatingsystem') == 'Debian') && fact('operatingsystemrelease').match(%r{^7}) ||
|
||||
(fact('operatingsystem') == 'Ubuntu') && fact('operatingsystemrelease').match(%r{^12\.04}) ||
|
||||
(fact('operatingsystem') == 'Ubuntu') && fact('operatingsystemrelease').match(%r{^14\.04})
|
||||
) do
|
||||
# not supported
|
||||
# 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
|
||||
# repository, that is the intention of this version ability
|
||||
describe 'jre' do
|
||||
it 'should install oracle-jre' do
|
||||
pp = <<-EOS
|
||||
class { 'java':
|
||||
distribution => 'oracle-jre',
|
||||
}
|
||||
EOS
|
||||
|
||||
apply_manifest(pp, :expect_failures => true)
|
||||
it 'installs oracle-jre' do
|
||||
apply_manifest(oracle_jre, expect_failures: true)
|
||||
end
|
||||
end
|
||||
describe 'jdk' do
|
||||
it 'should install oracle-jdk' do
|
||||
pp = <<-EOS
|
||||
class { 'java':
|
||||
distribution => 'oracle-jdk',
|
||||
}
|
||||
EOS
|
||||
|
||||
apply_manifest(pp, :expect_failures => true)
|
||||
it 'installs oracle-jdk' do
|
||||
apply_manifest(oracle_jdk, expect_failures: true)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'failure cases' do
|
||||
context 'failure cases' do
|
||||
# C14711
|
||||
# SLES 10 returns an exit code of 0 on zypper failure
|
||||
unless fact('operatingsystem') == 'SLES' and fact('operatingsystemrelease') < '11'
|
||||
it 'should fail to install java with an incorrect version' do
|
||||
pp = <<-EOS
|
||||
class { 'java':
|
||||
version => '14.5',
|
||||
}
|
||||
EOS
|
||||
|
||||
apply_manifest(pp, :expect_failures => true)
|
||||
unless fact('operatingsystem') == 'SLES' && fact('operatingsystemrelease') < '11'
|
||||
it 'fails to install java with an incorrect version' do
|
||||
apply_manifest(incorrect_version, expect_failures: true)
|
||||
end
|
||||
end
|
||||
|
||||
# C14712
|
||||
it 'should fail to install java with a blank version' do
|
||||
pp = <<-EOS
|
||||
class { 'java':
|
||||
version => '',
|
||||
}
|
||||
EOS
|
||||
|
||||
apply_manifest(pp, :expect_failures => true)
|
||||
it 'fails to install java with a blank version' do
|
||||
apply_manifest(blank_version, expect_failures: true)
|
||||
end
|
||||
|
||||
# C14713
|
||||
it 'should fail to install java with an incorrect distribution' do
|
||||
pp = <<-EOS
|
||||
class { 'java':
|
||||
distribution => 'xyz',
|
||||
}
|
||||
EOS
|
||||
|
||||
apply_manifest(pp, :expect_failures => true)
|
||||
it 'fails to install java with an incorrect distribution' do
|
||||
apply_manifest(incorrect_distro, expect_failures: true)
|
||||
end
|
||||
|
||||
# C14714
|
||||
it 'should fail to install java with a blank distribution' do
|
||||
pp = <<-EOS
|
||||
class { 'java':
|
||||
distribution => '',
|
||||
}
|
||||
EOS
|
||||
|
||||
apply_manifest(pp, :expect_failures => true)
|
||||
it 'fails to install java with a blank distribution' do
|
||||
apply_manifest(blank_distro, expect_failures: true)
|
||||
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)
|
||||
it 'fails to install java with an incorrect package' do
|
||||
apply_manifest(incorrect_package, expect_failures: true)
|
||||
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
|
||||
# C14719
|
||||
# C14725
|
||||
it 'should fail on debian or RHEL when passed fake java_alternative and path' do
|
||||
pp = <<-EOS
|
||||
class { 'java':
|
||||
java_alternative => 'whatever',
|
||||
java_alternative_path => '/whatever',
|
||||
}
|
||||
EOS
|
||||
|
||||
if fact('osfamily') == 'Debian' or fact('osfamily') == 'RedHat'
|
||||
apply_manifest(pp, :expect_failures => true)
|
||||
it 'fails on debian or RHEL when passed fake java_alternative and path' do
|
||||
if fact('osfamily') == 'Debian' || fact('osfamily') == 'RedHat'
|
||||
apply_manifest(bogus_alternative, expect_failures: true)
|
||||
else
|
||||
apply_manifest(pp, :catch_failures => true)
|
||||
apply_manifest(bogus_alternative, catch_failures: true)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,286 +1,353 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'java', :type => :class do
|
||||
|
||||
describe 'java', type: :class 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_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.6.0/') }
|
||||
end
|
||||
|
||||
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_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0/') }
|
||||
end
|
||||
|
||||
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_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0/') }
|
||||
end
|
||||
|
||||
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_not contain_exec('update-java-alternatives') }
|
||||
it { is_expected.not_to contain_exec('update-java-alternatives') }
|
||||
end
|
||||
|
||||
context 'select Oracle JRE with alternatives for Centos 6.3' do
|
||||
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(: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' } }
|
||||
|
||||
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('update-java-alternatives').with_command('alternatives --set java /usr/java/jre1.7.0_67/bin/java') }
|
||||
end
|
||||
|
||||
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_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/') }
|
||||
end
|
||||
|
||||
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_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-x86_64/') }
|
||||
end
|
||||
|
||||
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/' } }
|
||||
|
||||
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/') }
|
||||
end
|
||||
|
||||
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/' } }
|
||||
|
||||
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/') }
|
||||
end
|
||||
|
||||
|
||||
context 'select passed value for Fedora 21 with yum option' do
|
||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '21', :architecture => 'x86_64'} }
|
||||
let(:params) { { 'distribution' => 'jre' } }
|
||||
let(:params) { { 'package_options' => ['--skip-broken'] } }
|
||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Fedora', operatingsystemrelease: '21', architecture: 'x86_64' } }
|
||||
let(:params) { { 'distribution' => 'jre', 'package_options' => ['--skip-broken'] } }
|
||||
|
||||
it { is_expected.to contain_package('java') }
|
||||
end
|
||||
|
||||
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' } }
|
||||
|
||||
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
|
||||
|
||||
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_not contain_exec('update-java-alternatives') }
|
||||
it { is_expected.not_to contain_exec('update-java-alternatives') }
|
||||
end
|
||||
|
||||
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_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/') }
|
||||
end
|
||||
|
||||
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' } }
|
||||
|
||||
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_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/j2re1.7-oracle/') }
|
||||
end
|
||||
|
||||
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' } }
|
||||
|
||||
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') }
|
||||
end
|
||||
|
||||
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' } }
|
||||
|
||||
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') }
|
||||
end
|
||||
|
||||
|
||||
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' } }
|
||||
|
||||
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_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/') }
|
||||
end
|
||||
|
||||
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_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-openjdk-amd64 --jre') }
|
||||
end
|
||||
|
||||
context 'select Oracle JRE for Debian Squeeze' do
|
||||
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'squeeze', :operatingsystemrelease => '6.0.5', :architecture => 'amd64',} }
|
||||
let(:params) { { 'distribution' => 'sun-jre', } }
|
||||
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'squeeze', operatingsystemrelease: '6.0.5', architecture: 'amd64' } }
|
||||
let(:params) { { 'distribution' => 'sun-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_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-6-sun/jre/') }
|
||||
end
|
||||
|
||||
context 'select OpenJDK JRE for Debian Squeeze' do
|
||||
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'squeeze', :operatingsystemrelease => '6.0.5', :architecture => 'amd64',} }
|
||||
let(:params) { { 'distribution' => 'jre', } }
|
||||
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'squeeze', operatingsystemrelease: '6.0.5', architecture: 'amd64' } }
|
||||
let(:params) { { 'distribution' => 'jre' } }
|
||||
|
||||
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_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-6-openjdk/jre/') }
|
||||
end
|
||||
|
||||
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' } }
|
||||
|
||||
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') }
|
||||
end
|
||||
|
||||
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' } }
|
||||
|
||||
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/') }
|
||||
end
|
||||
|
||||
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' } }
|
||||
|
||||
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/') }
|
||||
end
|
||||
|
||||
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_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/') }
|
||||
end
|
||||
|
||||
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' } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
||||
end
|
||||
|
||||
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') }
|
||||
end
|
||||
|
||||
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') }
|
||||
end
|
||||
|
||||
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' } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
||||
end
|
||||
|
||||
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' } }
|
||||
|
||||
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/') }
|
||||
end
|
||||
|
||||
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' } }
|
||||
|
||||
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/') }
|
||||
end
|
||||
|
||||
context 'select default for OpenSUSE 12.3' do
|
||||
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')}
|
||||
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_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/') }
|
||||
end
|
||||
|
||||
context 'select default for SLES 11.3' do
|
||||
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')}
|
||||
let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '11.3', architecture: 'x86_64' } }
|
||||
|
||||
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/') }
|
||||
end
|
||||
|
||||
context 'select default for SLES 11.4' do
|
||||
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')}
|
||||
let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '11.4', architecture: 'x86_64' } }
|
||||
|
||||
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/') }
|
||||
end
|
||||
|
||||
context 'select default for SLES 12.0' do
|
||||
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')}
|
||||
let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '12.0', operatingsystemmajrelease: '12', architecture: 'x86_64' } }
|
||||
|
||||
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/') }
|
||||
end
|
||||
|
||||
context 'select default for SLES 12.1' do
|
||||
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')}
|
||||
let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '12.1', operatingsystemmajrelease: '12', architecture: 'x86_64' } }
|
||||
|
||||
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/') }
|
||||
end
|
||||
|
||||
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_file_line('java-home-environment').with_line('JAVA_HOME=/usr/local/jdk/') }
|
||||
it { is_expected.not_to contain_file_line('java-home-environment') }
|
||||
end
|
||||
|
||||
context 'select jre for OpenBSD' do
|
||||
let(:facts) { {:osfamily => 'OpenBSD', :architecture => 'x86_64'} }
|
||||
let(:facts) { { osfamily: 'OpenBSD', architecture: 'x86_64' } }
|
||||
let(:params) { { 'distribution' => 'jre' } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('jre') }
|
||||
end
|
||||
|
||||
describe 'custom java package' do
|
||||
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'jessie', operatingsystemrelease: '8.6', architecture: 'amd64' } }
|
||||
|
||||
context 'all params provided' do
|
||||
let(:params) do
|
||||
{
|
||||
'distribution' => 'custom',
|
||||
'package' => 'custom_jdk',
|
||||
'java_alternative' => 'java-custom_jdk',
|
||||
'java_alternative_path' => '/opt/custom_jdk/bin/java',
|
||||
'java_home' => '/opt/custom_jdk',
|
||||
}
|
||||
end
|
||||
|
||||
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_exec('update-java-alternatives').with_command('update-java-alternatives --set java-custom_jdk --jre') }
|
||||
end
|
||||
context 'missing parameters' do
|
||||
let(:params) do
|
||||
{
|
||||
'distribution' => 'custom',
|
||||
'package' => 'custom_jdk',
|
||||
}
|
||||
end
|
||||
|
||||
it do
|
||||
expect { catalogue }.to raise_error Puppet::Error, %r{is not supported. Missing default values}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'incompatible OSs' do
|
||||
[
|
||||
{
|
||||
# C14706
|
||||
:osfamily => 'windows',
|
||||
:operatingsystem => 'windows',
|
||||
:operatingsystemrelease => '8.1',
|
||||
osfamily: 'windows',
|
||||
operatingsystem: 'windows',
|
||||
operatingsystemrelease: '8.1',
|
||||
},
|
||||
{
|
||||
# C14707
|
||||
:osfamily => 'Darwin',
|
||||
:operatingsystem => 'Darwin',
|
||||
:operatingsystemrelease => '13.3.0',
|
||||
osfamily: 'Darwin',
|
||||
operatingsystem: 'Darwin',
|
||||
operatingsystemrelease: '13.3.0',
|
||||
},
|
||||
{
|
||||
# C14708
|
||||
:osfamily => 'AIX',
|
||||
:operatingsystem => 'AIX',
|
||||
:operatingsystemrelease => '7100-02-00-000',
|
||||
osfamily: 'AIX',
|
||||
operatingsystem: 'AIX',
|
||||
operatingsystemrelease: '7100-02-00-000',
|
||||
},
|
||||
{
|
||||
# C14708
|
||||
:osfamily => 'AIX',
|
||||
:operatingsystem => 'AIX',
|
||||
:operatingsystemrelease => '6100-07-04-1216',
|
||||
osfamily: 'AIX',
|
||||
operatingsystem: 'AIX',
|
||||
operatingsystemrelease: '6100-07-04-1216',
|
||||
},
|
||||
{
|
||||
# C14708
|
||||
:osfamily => 'AIX',
|
||||
:operatingsystem => 'AIX',
|
||||
:operatingsystemrelease => '5300-12-01-1016',
|
||||
osfamily: 'AIX',
|
||||
operatingsystem: 'AIX',
|
||||
operatingsystemrelease: '5300-12-01-1016',
|
||||
},
|
||||
].each do |facts|
|
||||
let(:facts) { facts }
|
||||
|
||||
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
|
||||
|
||||
@@ -1,197 +1,285 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'java::oracle', :type => :define do
|
||||
context 'On CentOS 64-bit' do
|
||||
let(:facts) { { :kernel => 'Linux', :os => {:family => 'RedHat', :architecture => 'x86_64', :name => 'CentOS', :release => {:full => '6.0'}}}}
|
||||
oracle_url = 'http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz'
|
||||
|
||||
context 'Oracle Java SE 6 JDK' do
|
||||
let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jdk'} }
|
||||
let :title do 'jdk6' end
|
||||
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').that_requires('Archive[/tmp/jdk-6u45-linux-x64-rpm.bin]') }
|
||||
end
|
||||
describe 'java::oracle', type: :define do
|
||||
context 'On CentOS 64-bit' do
|
||||
let(:facts) { { kernel: 'Linux', os: { family: 'RedHat', architecture: 'x86_64', name: 'CentOS', release: { full: '6.0' } } } }
|
||||
|
||||
context 'Oracle Java SE 7 JDK' do
|
||||
let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jdk'} }
|
||||
let :title do 'jdk7' end
|
||||
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').that_requires('Archive[/tmp/jdk-7u80-linux-x64.rpm]') }
|
||||
end
|
||||
context 'Oracle Java SE 6 JDK' do
|
||||
let(:params) { { ensure: 'present', version: '6', java_se: 'jdk' } }
|
||||
let(:title) { 'jdk6' }
|
||||
|
||||
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').that_requires('Archive[/tmp/jdk-6u45-linux-x64-rpm.bin]') }
|
||||
end
|
||||
|
||||
context 'Oracle Java SE 7 JDK' do
|
||||
let(:params) { { ensure: 'present', version: '7', java_se: 'jdk' } }
|
||||
let(:title) { 'jdk7' }
|
||||
|
||||
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').that_requires('Archive[/tmp/jdk-7u80-linux-x64.rpm]') }
|
||||
end
|
||||
|
||||
context 'Oracle Java SE 8 JDK' do
|
||||
let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jdk'} }
|
||||
let :title do 'jdk8' end
|
||||
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').that_requires('Archive[/tmp/jdk-8u131-linux-x64.rpm]') }
|
||||
let(:params) { { ensure: 'present', version: '8', java_se: 'jdk' } }
|
||||
let(:title) { 'jdk8' }
|
||||
|
||||
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').that_requires('Archive[/tmp/jdk-8u131-linux-x64.rpm]') }
|
||||
end
|
||||
|
||||
context 'Oracle Java SE 6 JRE' do
|
||||
let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jre'} }
|
||||
let :title do 'jre6' end
|
||||
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').that_requires('Archive[/tmp/jre-6u45-linux-x64-rpm.bin]') }
|
||||
let(:params) { { ensure: 'present', version: '6', java_se: 'jre' } }
|
||||
let(:title) { 'jre6' }
|
||||
|
||||
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').that_requires('Archive[/tmp/jre-6u45-linux-x64-rpm.bin]') }
|
||||
end
|
||||
|
||||
context 'Oracle Java SE 7 JRE' do
|
||||
let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jre'} }
|
||||
let :title do 'jre7' end
|
||||
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').that_requires('Archive[/tmp/jre-7u80-linux-x64.rpm]') }
|
||||
let(:params) { { ensure: 'present', version: '7', java_se: 'jre' } }
|
||||
let(:title) { 'jre7' }
|
||||
|
||||
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').that_requires('Archive[/tmp/jre-7u80-linux-x64.rpm]') }
|
||||
end
|
||||
|
||||
context 'select Oracle Java SE 8 JRE' do
|
||||
let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jre'} }
|
||||
let :title do 'jre8' end
|
||||
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').that_requires('Archive[/tmp/jre-8u131-linux-x64.rpm]') }
|
||||
let(:params) { { ensure: 'present', version: '8', java_se: 'jre' } }
|
||||
let(:title) { 'jre8' }
|
||||
|
||||
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').that_requires('Archive[/tmp/jre-8u131-linux-x64.rpm]') }
|
||||
end
|
||||
|
||||
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.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') }
|
||||
let(:params) do
|
||||
{
|
||||
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.rpm',
|
||||
url_hash: 'ignored',
|
||||
}
|
||||
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
|
||||
|
||||
context 'Pass a hash to url_hash parameter' do
|
||||
let(:params) { {
|
||||
:ensure => 'present',
|
||||
:version_major => '8u131',
|
||||
:version_minor => 'b11',
|
||||
:java_se => 'jdk',
|
||||
:url_hash => 'abcdef01234567890',
|
||||
} }
|
||||
let :title do 'jdk8' end
|
||||
let(:params) do
|
||||
{
|
||||
ensure: 'present',
|
||||
version_major: '8u131',
|
||||
version_minor: 'b11',
|
||||
java_se: 'jdk',
|
||||
url_hash: 'abcdef01234567890',
|
||||
}
|
||||
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') }
|
||||
end
|
||||
end
|
||||
|
||||
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
|
||||
let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jdk'} }
|
||||
let :title do 'jdk6' end
|
||||
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').that_requires('Archive[/tmp/jdk-6u45-linux-i586-rpm.bin]') }
|
||||
let(:params) { { ensure: 'present', version: '6', java_se: 'jdk' } }
|
||||
let(:title) { 'jdk6' }
|
||||
|
||||
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').that_requires('Archive[/tmp/jdk-6u45-linux-i586-rpm.bin]') }
|
||||
end
|
||||
|
||||
context 'select Oracle Java SE 7 JDK on RedHat family, 32-bit' do
|
||||
let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jdk'} }
|
||||
let :title do 'jdk7' end
|
||||
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').that_requires('Archive[/tmp/jdk-7u80-linux-i586.rpm]') }
|
||||
let(:params) { { ensure: 'present', version: '7', java_se: 'jdk' } }
|
||||
let(:title) { 'jdk7' }
|
||||
|
||||
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').that_requires('Archive[/tmp/jdk-7u80-linux-i586.rpm]') }
|
||||
end
|
||||
|
||||
context 'select Oracle Java SE 8 JDK on RedHat family, 32-bit' do
|
||||
let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jdk'} }
|
||||
let :title do 'jdk8' end
|
||||
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').that_requires('Archive[/tmp/jdk-8u131-linux-i586.rpm]') }
|
||||
let(:params) { { ensure: 'present', version: '8', java_se: 'jdk' } }
|
||||
let(:title) { 'jdk8' }
|
||||
|
||||
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').that_requires('Archive[/tmp/jdk-8u131-linux-i586.rpm]') }
|
||||
end
|
||||
|
||||
context 'select Oracle Java SE 6 JRE on RedHat family, 32-bit' do
|
||||
let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jre'} }
|
||||
let :title do 'jdk6' end
|
||||
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').that_requires('Archive[/tmp/jre-6u45-linux-i586-rpm.bin]') }
|
||||
let(:params) { { ensure: 'present', version: '6', java_se: 'jre' } }
|
||||
let(:title) { 'jdk6' }
|
||||
|
||||
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').that_requires('Archive[/tmp/jre-6u45-linux-i586-rpm.bin]') }
|
||||
end
|
||||
|
||||
context 'select Oracle Java SE 7 JRE on RedHat family, 32-bit' do
|
||||
let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jre'} }
|
||||
let :title do 'jdk7' end
|
||||
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').that_requires('Archive[/tmp/jre-7u80-linux-i586.rpm]') }
|
||||
let(:params) { { ensure: 'present', version: '7', java_se: 'jre' } }
|
||||
let(:title) { 'jdk7' }
|
||||
|
||||
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').that_requires('Archive[/tmp/jre-7u80-linux-i586.rpm]') }
|
||||
end
|
||||
|
||||
context 'select Oracle Java SE 8 JRE on RedHat family, 32-bit' do
|
||||
let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jre'} }
|
||||
let :title do 'jdk8' end
|
||||
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').that_requires('Archive[/tmp/jre-8u131-linux-i586.rpm]') }
|
||||
let(:params) { { ensure: 'present', version: '8', java_se: 'jre' } }
|
||||
let(:title) { 'jdk8' }
|
||||
|
||||
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').that_requires('Archive[/tmp/jre-8u131-linux-i586.rpm]') }
|
||||
end
|
||||
end
|
||||
|
||||
context 'On Ubuntu 64-bit' do
|
||||
let(:facts) { { kernel: 'Linux', os: { family: 'Debian', architecture: 'amd64', name: 'Ubuntu', release: { full: '16.04' } } } }
|
||||
|
||||
context 'Oracle Java SE 6 JDK' do
|
||||
let(:params) { { ensure: 'present', version: '6', java_se: 'jdk' } }
|
||||
let(:title) { 'jdk6' }
|
||||
|
||||
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').that_requires('Archive[/tmp/jdk-6u45-linux-x64.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'Oracle Java SE 7 JDK' do
|
||||
let(:params) { { ensure: 'present', version: '7', java_se: 'jdk' } }
|
||||
let(:title) { 'jdk7' }
|
||||
|
||||
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').that_requires('Archive[/tmp/jdk-7u80-linux-x64.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'Oracle Java SE 8 JDK' do
|
||||
let(:params) { { ensure: 'present', version: '8', java_se: 'jdk' } }
|
||||
let(:title) { 'jdk8' }
|
||||
|
||||
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').that_requires('Archive[/tmp/jdk-8u131-linux-x64.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'Oracle Java SE 6 JRE' do
|
||||
let(:params) { { ensure: 'present', version: '6', java_se: 'jre' } }
|
||||
let(:title) { 'jre6' }
|
||||
|
||||
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').that_requires('Archive[/tmp/jre-6u45-linux-x64.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'Oracle Java SE 7 JRE' do
|
||||
let(:params) { { ensure: 'present', version: '7', java_se: 'jre' } }
|
||||
let(:title) { 'jre7' }
|
||||
|
||||
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').that_requires('Archive[/tmp/jre-7u80-linux-x64.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'select Oracle Java SE 8 JRE' do
|
||||
let(:params) { { ensure: 'present', version: '8', java_se: 'jre' } }
|
||||
let(:title) { 'jre8' }
|
||||
|
||||
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').that_requires('Archive[/tmp/jre-8u131-linux-x64.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'Pass URL to url parameter' do
|
||||
let(:params) { { ensure: 'present', version_major: '8u131', version_minor: 'b11', java_se: 'jdk', url: oracle_url.to_s } }
|
||||
let(:title) { 'jdk8' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.tar.gz') }
|
||||
end
|
||||
end
|
||||
describe 'incompatible OSes' do
|
||||
[
|
||||
{
|
||||
# C14706
|
||||
:kernel => 'Windows',
|
||||
:os => {
|
||||
:family => 'Windows',
|
||||
:name => 'Windows',
|
||||
:release => {
|
||||
:full => '8.1'
|
||||
}
|
||||
kernel: 'Windows',
|
||||
os: {
|
||||
family: 'Windows',
|
||||
name: 'Windows',
|
||||
release: {
|
||||
full: '8.1',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
# C14707
|
||||
:kernel => 'Darwin',
|
||||
:os => {
|
||||
:family => 'Darwin',
|
||||
:name => 'Darwin',
|
||||
:release => {
|
||||
:full => '13.3.0'
|
||||
}
|
||||
kernel: 'Darwin',
|
||||
os: {
|
||||
family: 'Darwin',
|
||||
name: 'Darwin',
|
||||
release: {
|
||||
full: '13.3.0',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
# C14708
|
||||
:kernel => 'AIX',
|
||||
:os => {
|
||||
:family => 'AIX',
|
||||
:name => 'AIX',
|
||||
:release => {
|
||||
:full => '7100-02-00-000'
|
||||
}
|
||||
kernel: 'AIX',
|
||||
os: {
|
||||
family: 'AIX',
|
||||
name: 'AIX',
|
||||
release: {
|
||||
full: '7100-02-00-000',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
# C14709
|
||||
:kernel => 'AIX',
|
||||
:os => {
|
||||
:family => 'AIX',
|
||||
:name => 'AIX',
|
||||
:release => {
|
||||
:full => '6100-07-04-1216'
|
||||
}
|
||||
kernel: 'AIX',
|
||||
os: {
|
||||
family: 'AIX',
|
||||
name: 'AIX',
|
||||
release: {
|
||||
full: '6100-07-04-1216',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
# C14710
|
||||
:kernel => 'AIX',
|
||||
:os => {
|
||||
:family => 'AIX',
|
||||
:name => 'AIX',
|
||||
:release => {
|
||||
:full => '5300-12-01-1016'
|
||||
}
|
||||
kernel: 'AIX',
|
||||
os: {
|
||||
family: 'AIX',
|
||||
name: 'AIX',
|
||||
release: {
|
||||
full: '5300-12-01-1016',
|
||||
},
|
||||
},
|
||||
}
|
||||
},
|
||||
].each do |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
|
||||
expect { catalogue }.to raise_error Puppet::Error, /unsupported platform/
|
||||
expect { catalogue }.to raise_error Puppet::Error, %r{unsupported platform}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
#This file is generated by ModuleSync, do not edit.
|
||||
# This file is generated by ModuleSync, do not edit.
|
||||
require 'puppetlabs_spec_helper/module_spec_helper'
|
||||
|
||||
# put local configuration and setup into spec_helper_local
|
||||
begin
|
||||
require 'spec_helper_local'
|
||||
rescue LoadError
|
||||
rescue LoadError => loaderror
|
||||
puts "Could not require spec_helper_local: #{loaderror.message}"
|
||||
end
|
||||
|
||||
@@ -6,11 +6,11 @@ run_puppet_install_helper
|
||||
install_module_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|
|
||||
install_puppet_module_via_pmt_on(host, {module_name: 'puppetlabs-apt'})
|
||||
install_puppet_module_via_pmt_on(host, module_name: 'puppetlabs-apt')
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1,49 +1,54 @@
|
||||
require "spec_helper"
|
||||
require 'spec_helper'
|
||||
|
||||
describe Facter::Util::Fact do
|
||||
before {
|
||||
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)
|
||||
if File.symlink?(filename)
|
||||
File.unlink(filename)
|
||||
end
|
||||
return unless File.exist?(filename)
|
||||
File.delete(filename)
|
||||
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
|
||||
|
||||
describe 'java_default_home' do
|
||||
before(:each) do
|
||||
Facter.clear
|
||||
Facter.fact(:kernel).stubs(:value).returns('Linux')
|
||||
}
|
||||
end
|
||||
|
||||
describe "java_default_home" do
|
||||
context 'returns java home path when readlink present' do
|
||||
context 'when java is in HOME/jre/bin/java' do
|
||||
it do
|
||||
java_path_output = <<-EOS
|
||||
/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
|
||||
EOS
|
||||
Facter::Util::Resolution.expects(:which).with("readlink").returns(true)
|
||||
Facter::Util::Resolution.expects(:exec).with("readlink -e /usr/bin/java").returns(java_path_output)
|
||||
expect(Facter.value(:java_default_home)).to eql "/usr/lib/jvm/java-7-openjdk-amd64"
|
||||
end
|
||||
end
|
||||
context 'when java is in HOME/bin/java' do
|
||||
it do
|
||||
java_path_output = <<-EOS
|
||||
/usr/lib/jvm/oracle-java8-jre-amd64/bin/java
|
||||
EOS
|
||||
Facter::Util::Resolution.expects(:which).with("readlink").returns(true)
|
||||
Facter::Util::Resolution.expects(:exec).with("readlink -e /usr/bin/java").returns(java_path_output)
|
||||
expect(Facter.value(:java_default_home)).to eql "/usr/lib/jvm/oracle-java8-jre-amd64"
|
||||
end
|
||||
end
|
||||
end
|
||||
context 'returns nil when readlink is present but java is not' 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
|
||||
it do
|
||||
java_path_output = ""
|
||||
Facter::Util::Resolution.expects(:which).with("readlink").returns(true)
|
||||
Facter::Util::Resolution.expects(:exec).with("readlink -e /usr/bin/java").returns(java_path_output)
|
||||
expect(Facter.value(:java_default_home)).to be_nil
|
||||
unlink_and_delete('./java_test')
|
||||
symlink_and_test(java_7_path, java_7_home)
|
||||
unlink_and_delete('./java_test')
|
||||
end
|
||||
end
|
||||
|
||||
context 'returns nil when readlink not present' do
|
||||
context 'when java is in /usr/lib/jvm/oracle-java8-jre-amd64/bin/java' do
|
||||
it do
|
||||
Facter::Util::Resolution.stubs(:exec)
|
||||
Facter::Util::Resolution.expects(:which).with("readlink").at_least(1).returns(false)
|
||||
expect(Facter.value(:java_default_home)).to be_nil
|
||||
unlink_and_delete('./java_test')
|
||||
symlink_and_test(java_8_path, java_8_home)
|
||||
unlink_and_delete('./java_test')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'returns nil when java not present' do
|
||||
it do
|
||||
Facter::Util::Resolution.stubs(:exec)
|
||||
Facter::Util::Resolution.expects(:which).with('java').at_least(1).returns(false)
|
||||
expect(Facter.value(:java_default_home)).to be_nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,21 +1,17 @@
|
||||
require "spec_helper"
|
||||
require 'spec_helper'
|
||||
|
||||
describe Facter::Util::Fact do
|
||||
before {
|
||||
describe 'java_libjvm_path' do
|
||||
before(:each) do
|
||||
Facter.clear
|
||||
Facter.fact(:kernel).stubs(:value).returns('Linux')
|
||||
java_default_home = '/usr/lib/jvm/java-8-openjdk-amd64'
|
||||
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' do
|
||||
context 'on Linux' do
|
||||
it do
|
||||
expect(Facter.value(:java_libjvm_path)).to eql "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server"
|
||||
end
|
||||
end
|
||||
context 'returns libjvm path on Linux' do
|
||||
it do
|
||||
expect(Facter.value(:java_libjvm_path)).to eql '/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,27 +1,25 @@
|
||||
require "spec_helper"
|
||||
require 'spec_helper'
|
||||
|
||||
describe Facter::Util::Fact do
|
||||
before {
|
||||
describe 'java_major_version' do
|
||||
before(:each) do
|
||||
Facter.clear
|
||||
}
|
||||
end
|
||||
|
||||
describe "java_major_version" do
|
||||
context 'returns major version when java_version fact present' do
|
||||
before :each do
|
||||
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
|
||||
end
|
||||
it do
|
||||
expect(Facter.fact(:java_major_version).value).to eq("7")
|
||||
end
|
||||
context 'returns major version when java_version fact present' do
|
||||
before :each do
|
||||
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
|
||||
end
|
||||
it do
|
||||
expect(Facter.fact(:java_major_version).value).to eq('7')
|
||||
end
|
||||
end
|
||||
|
||||
context 'returns nil when java not present' do
|
||||
before :each do
|
||||
Facter.fact(:java_version).stubs(:value).returns(nil)
|
||||
end
|
||||
it do
|
||||
expect(Facter.fact(:java_major_version).value).to be_nil
|
||||
end
|
||||
context 'returns nil when java not present' do
|
||||
before :each do
|
||||
Facter.fact(:java_version).stubs(:value).returns(nil)
|
||||
end
|
||||
it do
|
||||
expect(Facter.fact(:java_major_version).value).to be_nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,31 +1,25 @@
|
||||
require "spec_helper"
|
||||
require 'spec_helper'
|
||||
|
||||
describe Facter::Util::Fact do
|
||||
before {
|
||||
describe 'java_patch_level' do
|
||||
before(:each) do
|
||||
Facter.clear
|
||||
}
|
||||
end
|
||||
|
||||
describe "java_patch_level" do
|
||||
context "if java is installed" do
|
||||
context 'returns java patch version extracted from java_version fact' do
|
||||
before :each do
|
||||
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
|
||||
end
|
||||
it do
|
||||
expect(Facter.fact(:java_patch_level).value).to eq("71")
|
||||
end
|
||||
end
|
||||
context 'if java is installed returns java patch version extracted from java_version fact' do
|
||||
before :each do
|
||||
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
|
||||
end
|
||||
it do
|
||||
expect(Facter.fact(:java_patch_level).value).to eq('71')
|
||||
end
|
||||
end
|
||||
|
||||
context "if java is not installed" do
|
||||
context 'returns nil' do
|
||||
before :each do
|
||||
Facter.fact(:java_version).stubs(:value).returns(nil)
|
||||
end
|
||||
it do
|
||||
expect(Facter.fact(:java_patch_level).value).to be_nil
|
||||
end
|
||||
end
|
||||
context 'if java is not installed returns nil' do
|
||||
before :each do
|
||||
Facter.fact(:java_version).stubs(:value).returns(nil)
|
||||
end
|
||||
it do
|
||||
expect(Facter.fact(:java_patch_level).value).to be_nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,91 +1,91 @@
|
||||
require "spec_helper"
|
||||
require 'spec_helper'
|
||||
|
||||
describe Facter::Util::Fact do
|
||||
before {
|
||||
openjdk_7_output = "Picked up JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true\n"\
|
||||
"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
|
||||
}
|
||||
end
|
||||
|
||||
describe "java_version" do
|
||||
context 'returns java version when java present' do
|
||||
context 'on OpenBSD', :with_env => true do
|
||||
before do
|
||||
Facter.fact(:operatingsystem).stubs(:value).returns("OpenBSD")
|
||||
end
|
||||
let(:facts) { {:operatingsystem => 'OpenBSD'} }
|
||||
it do
|
||||
java_version_output = <<-EOS
|
||||
openjdk version "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
|
||||
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
|
||||
context 'on Darwin' do
|
||||
before do
|
||||
Facter.fact(:operatingsystem).stubs(:value).returns("Darwin")
|
||||
end
|
||||
let(:facts) { {:operatingsystem => 'Darwin'} }
|
||||
it do
|
||||
java_version_output = <<-EOS
|
||||
java version "1.7.0_71"
|
||||
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
|
||||
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
|
||||
EOS
|
||||
Facter::Util::Resolution.expects(:exec).with("/usr/libexec/java_home --failfast 2>&1").returns("/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home")
|
||||
Facter::Util::Resolution.expects(:exec).with("java -Xmx12m -version 2>&1").returns(java_version_output)
|
||||
expect(Facter.value(:java_version)).to eql "1.7.0_71"
|
||||
end
|
||||
end
|
||||
context 'on other systems' do
|
||||
before do
|
||||
Facter.fact(:operatingsystem).stubs(:value).returns("MyOS")
|
||||
end
|
||||
let(:facts) { {:operatingsystem => 'MyOS'} }
|
||||
it do
|
||||
java_version_output = <<-EOS
|
||||
java version "1.7.0_71"
|
||||
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
|
||||
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
|
||||
EOS
|
||||
Facter::Util::Resolution.expects(:exec).with("java -Xmx12m -version 2>&1").returns(java_version_output)
|
||||
expect(Facter.value(:java_version)).to eq("1.7.0_71")
|
||||
end
|
||||
let(:facts) { { operatingsystem: 'OpenBSD' } }
|
||||
|
||||
it do
|
||||
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(openjdk_7_output)
|
||||
expect(Facter.value(:java_version)).to eq('1.7.0_71')
|
||||
end
|
||||
end
|
||||
context 'on Darwin' do
|
||||
before(:each) do
|
||||
Facter.fact(:operatingsystem).stubs(:value).returns('Darwin')
|
||||
end
|
||||
let(:facts) { { operatingsystem: 'Darwin' } }
|
||||
|
||||
context 'returns nil when java not present' do
|
||||
context 'on OpenBSD', :with_env => true do
|
||||
before do
|
||||
Facter.fact(:operatingsystem).stubs(:value).returns("OpenBSD")
|
||||
end
|
||||
let(:facts) { {:operatingsystem => 'OpenBSD'} }
|
||||
it do
|
||||
Facter::Util::Resolution.stubs(:exec)
|
||||
expect(Facter.value(:java_version)).to be_nil
|
||||
end
|
||||
it do
|
||||
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(jdk_7_hotspot_output)
|
||||
expect(Facter.value(:java_version)).to eql '1.7.0_71'
|
||||
end
|
||||
context 'on Darwin' do
|
||||
before do
|
||||
Facter.fact(:operatingsystem).stubs(:value).returns("Darwin")
|
||||
end
|
||||
let(:facts) { {:operatingsystem => 'Darwin'} }
|
||||
it do
|
||||
Facter::Util::Resolution.expects(:exec).at_least(1).with("/usr/libexec/java_home --failfast 2>&1").returns('Unable to find any JVMs matching version "(null)".')
|
||||
expect(Facter.value(:java_version)).to be_nil
|
||||
end
|
||||
end
|
||||
context 'on other systems' do
|
||||
before(:each) do
|
||||
Facter.fact(:operatingsystem).stubs(:value).returns('MyOS')
|
||||
end
|
||||
context 'on other systems' do
|
||||
before do
|
||||
Facter.fact(:operatingsystem).stubs(:value).returns("MyOS")
|
||||
end
|
||||
let(:facts) { {:operatingsystem => 'MyOS'} }
|
||||
it do
|
||||
Facter::Util::Resolution.expects(:which).at_least(1).with("java").returns(false)
|
||||
expect(Facter.value(:java_version)).to be_nil
|
||||
end
|
||||
let(:facts) { { operatingsystem: 'MyOS' } }
|
||||
|
||||
it do
|
||||
Facter::Util::Resolution.expects(:which).with('java').returns('/path/to/java')
|
||||
Facter::Util::Resolution.expects(:exec).with('java -Xmx12m -version 2>&1').returns(jdk_7_hotspot_output)
|
||||
expect(Facter.value(:java_version)).to eq('1.7.0_71')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'returns nil when java not present' do
|
||||
context 'on OpenBSD', with_env: true do
|
||||
before(:each) do
|
||||
Facter.fact(:operatingsystem).stubs(:value).returns('OpenBSD')
|
||||
end
|
||||
let(:facts) { { operatingsystem: 'OpenBSD' } }
|
||||
|
||||
it do
|
||||
Facter::Util::Resolution.stubs(:exec)
|
||||
expect(Facter.value(:java_version)).to be_nil
|
||||
end
|
||||
end
|
||||
context 'on Darwin' do
|
||||
before(:each) do
|
||||
Facter.fact(:operatingsystem).stubs(:value).returns('Darwin')
|
||||
end
|
||||
let(:facts) { { operatingsystem: 'Darwin' } }
|
||||
|
||||
it do
|
||||
Facter::Util::Resolution.expects(:exec).at_least(1).with('/usr/libexec/java_home --failfast 2>&1').returns('Unable to find any JVMs matching version "(null)".')
|
||||
expect(Facter.value(:java_version)).to be_nil
|
||||
end
|
||||
end
|
||||
context 'on other systems' do
|
||||
before(:each) do
|
||||
Facter.fact(:operatingsystem).stubs(:value).returns('MyOS')
|
||||
end
|
||||
let(:facts) { { operatingsystem: 'MyOS' } }
|
||||
|
||||
it do
|
||||
Facter::Util::Resolution.expects(:which).at_least(1).with('java').returns(false)
|
||||
expect(Facter.value(:java_version)).to be_nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user