Compare commits
69 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
10503819d2 | ||
|
|
5db3084c11 | ||
|
|
10dc3068a7 | ||
|
|
b4490a36b3 | ||
|
|
6561d98e58 | ||
|
|
61cfbe3154 | ||
|
|
85c17ef66f | ||
|
|
697c1911f9 | ||
|
|
c8ce18949b | ||
|
|
9c103a2219 | ||
|
|
61c8794661 | ||
|
|
901bfe989a | ||
|
|
e53b8bb563 | ||
|
|
77b2b199e4 | ||
|
|
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 |
39
.gitignore
vendored
39
.gitignore
vendored
@@ -1,24 +1,23 @@
|
|||||||
#This file is generated by ModuleSync, do not edit.
|
|
||||||
pkg/
|
|
||||||
Gemfile.lock
|
|
||||||
Gemfile.local
|
|
||||||
vendor/
|
|
||||||
spec/fixtures/manifests/
|
|
||||||
spec/fixtures/modules/
|
|
||||||
log/
|
|
||||||
junit/
|
|
||||||
.vagrant/
|
|
||||||
.bundle/
|
|
||||||
coverage/
|
|
||||||
log/
|
|
||||||
.idea/
|
|
||||||
.metadata
|
|
||||||
*.iml
|
|
||||||
.*.sw[op]
|
.*.sw[op]
|
||||||
|
.metadata
|
||||||
.yardoc
|
.yardoc
|
||||||
.yardwarns
|
.yardwarns
|
||||||
.DS_Store
|
*.iml
|
||||||
tmp/
|
/.bundle/
|
||||||
vendor/
|
/.idea/
|
||||||
doc/
|
/.vagrant/
|
||||||
|
/coverage/
|
||||||
|
/bin/
|
||||||
|
/doc/
|
||||||
|
/Gemfile.local
|
||||||
|
/Gemfile.lock
|
||||||
|
/junit/
|
||||||
|
/log/
|
||||||
|
/log/
|
||||||
|
/pkg/
|
||||||
|
/spec/fixtures/manifests/
|
||||||
|
/spec/fixtures/modules/
|
||||||
|
/tmp/
|
||||||
|
/vendor/
|
||||||
|
/convert_report.txt
|
||||||
|
|
||||||
|
|||||||
589
.rubocop.yml
589
.rubocop.yml
@@ -1,508 +1,105 @@
|
|||||||
|
---
|
||||||
require: rubocop-rspec
|
require: rubocop-rspec
|
||||||
AllCops:
|
AllCops:
|
||||||
TargetRubyVersion: 1.9
|
DisplayCopNames: true
|
||||||
|
TargetRubyVersion: '2.1'
|
||||||
Include:
|
Include:
|
||||||
- ./**/*.rb
|
- "./**/*.rb"
|
||||||
Exclude:
|
Exclude:
|
||||||
- vendor/**/*
|
- bin/*
|
||||||
- .vendor/**/*
|
- ".vendor/**/*"
|
||||||
|
- Gemfile
|
||||||
|
- Rakefile
|
||||||
- pkg/**/*
|
- pkg/**/*
|
||||||
- spec/fixtures/**/*
|
- spec/fixtures/**/*
|
||||||
Lint/ConditionPosition:
|
- vendor/**/*
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/ElseLayout:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/UnreachableCode:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/UselessComparison:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/EnsureReturn:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/HandleExceptions:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/LiteralInCondition:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/ShadowingOuterLocalVariable:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/LiteralInInterpolation:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/HashSyntax:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/RedundantReturn:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/AmbiguousOperator:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/AssignmentInCondition:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SpaceBeforeComment:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/AndOr:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/RedundantSelf:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
# Method length is not necessarily an indicator of code quality
|
|
||||||
Metrics/MethodLength:
|
|
||||||
Enabled: False
|
|
||||||
|
|
||||||
# Module length is not necessarily an indicator of code quality
|
|
||||||
Metrics/ModuleLength:
|
|
||||||
Enabled: False
|
|
||||||
|
|
||||||
Style/WhileUntilModifier:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/AmbiguousRegexpLiteral:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/Eval:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/BlockAlignment:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/DefEndAlignment:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/EndAlignment:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/DeprecatedClassMethods:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/Loop:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/ParenthesesAsGroupedExpression:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/RescueException:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/StringConversionInInterpolation:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/UnusedBlockArgument:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/UnusedMethodArgument:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/UselessAccessModifier:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/UselessAssignment:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/Void:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/AccessModifierIndentation:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/AccessorMethodName:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/Alias:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/AlignArray:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/AlignHash:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/AlignParameters:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Metrics/BlockNesting:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/AsciiComments:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/Attr:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/BracesAroundHashParameters:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/CaseEquality:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/CaseIndentation:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/CharacterLiteral:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/ClassAndModuleCamelCase:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/ClassAndModuleChildren:
|
|
||||||
Enabled: False
|
|
||||||
|
|
||||||
Style/ClassCheck:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
# Class length is not necessarily an indicator of code quality
|
|
||||||
Metrics/ClassLength:
|
|
||||||
Enabled: False
|
|
||||||
|
|
||||||
Style/ClassMethods:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/ClassVars:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/WhenThen:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/WordArray:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/UnneededPercentQ:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/Tab:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SpaceBeforeSemicolon:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/TrailingBlankLines:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SpaceInsideBlockBraces:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SpaceInsideBrackets:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SpaceInsideHashLiteralBraces:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SpaceInsideParens:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/LeadingCommentSpace:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SpaceBeforeFirstArg:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SpaceAfterColon:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SpaceAfterComma:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SpaceAfterMethodName:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SpaceAfterNot:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SpaceAfterSemicolon:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SpaceAroundEqualsInParameterDefault:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SpaceAroundOperators:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SpaceBeforeBlockBraces:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SpaceBeforeComma:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/CollectionMethods:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/CommentIndentation:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/ColonMethodCall:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/CommentAnnotation:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
# 'Complexity' is very relative
|
|
||||||
Metrics/CyclomaticComplexity:
|
|
||||||
Enabled: False
|
|
||||||
|
|
||||||
Style/ConstantName:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/Documentation:
|
|
||||||
Enabled: False
|
|
||||||
|
|
||||||
Style/DefWithParentheses:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/PreferredHashMethods:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/DotPosition:
|
|
||||||
EnforcedStyle: trailing
|
|
||||||
|
|
||||||
Style/DoubleNegation:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/EachWithObject:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/EmptyLineBetweenDefs:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/IndentArray:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/IndentHash:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/IndentationConsistency:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/IndentationWidth:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/EmptyLines:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/EmptyLinesAroundAccessModifier:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/EmptyLiteral:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
# Configuration parameters: AllowURI, URISchemes.
|
|
||||||
Metrics/LineLength:
|
Metrics/LineLength:
|
||||||
Enabled: False
|
Description: People have wide screens, use them.
|
||||||
|
Max: 200
|
||||||
Style/MethodCallParentheses:
|
RSpec/BeforeAfterAll:
|
||||||
Enabled: True
|
Description: Beware of using after(:all) as it may cause state to leak between tests.
|
||||||
|
A necessary evil in acceptance testing.
|
||||||
Style/MethodDefParentheses:
|
Exclude:
|
||||||
Enabled: True
|
- spec/acceptance/**/*.rb
|
||||||
|
RSpec/HookArgument:
|
||||||
Style/LineEndConcatenation:
|
Description: Prefer explicit :each argument, matching existing module's style
|
||||||
Enabled: True
|
EnforcedStyle: each
|
||||||
|
|
||||||
Style/TrailingWhitespace:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/StringLiterals:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/TrailingCommaInArguments:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/TrailingCommaInLiteral:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/GlobalVars:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/GuardClause:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/IfUnlessModifier:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/MultilineIfThen:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/NegatedIf:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/NegatedWhile:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/Next:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SingleLineBlockParams:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SingleLineMethods:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SpecialGlobalVars:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/TrivialAccessors:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/UnlessElse:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/VariableInterpolation:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/VariableName:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/WhileUntilDo:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/EvenOdd:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/FileName:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/For:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/Lambda:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/MethodName:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/MultilineTernaryOperator:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/NestedTernaryOperator:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/NilComparison:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/FormatString:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/MultilineBlockChain:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/Semicolon:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SignalException:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/NonNilCheck:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/Not:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/NumericLiterals:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/OneLineConditional:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/OpMethod:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/ParenthesesAroundCondition:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/PercentLiteralDelimiters:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/PerlBackrefs:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/PredicateName:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/RedundantException:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SelfAssignment:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/Proc:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/RaiseArgs:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/RedundantBegin:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/RescueModifier:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
# based on https://github.com/voxpupuli/modulesync_config/issues/168
|
|
||||||
Style/RegexpLiteral:
|
|
||||||
EnforcedStyle: percent_r
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/UnderscorePrefixedVariableName:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Metrics/ParameterLists:
|
|
||||||
Enabled: False
|
|
||||||
|
|
||||||
Lint/RequireParentheses:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/SpaceBeforeFirstArg:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/ModuleFunction:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Lint/Debugger:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/IfWithSemicolon:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/Encoding:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/BlockDelimiters:
|
Style/BlockDelimiters:
|
||||||
Enabled: True
|
Description: Prefer braces for chaining. Mostly an aesthetical choice. Better to
|
||||||
|
be consistent then.
|
||||||
Style/MultilineBlockLayout:
|
EnforcedStyle: braces_for_chaining
|
||||||
Enabled: True
|
Style/ClassAndModuleChildren:
|
||||||
|
Description: Compact style reduces the required amount of indentation.
|
||||||
# 'Complexity' is very relative
|
EnforcedStyle: compact
|
||||||
|
Style/EmptyElse:
|
||||||
|
Description: Enforce against empty else clauses, but allow `nil` for clarity.
|
||||||
|
EnforcedStyle: empty
|
||||||
|
Style/FormatString:
|
||||||
|
Description: Following the main puppet project's style, prefer the % format format.
|
||||||
|
EnforcedStyle: percent
|
||||||
|
Style/FormatStringToken:
|
||||||
|
Description: Following the main puppet project's style, prefer the simpler template
|
||||||
|
tokens over annotated ones.
|
||||||
|
EnforcedStyle: template
|
||||||
|
Style/Lambda:
|
||||||
|
Description: Prefer the keyword for easier discoverability.
|
||||||
|
EnforcedStyle: literal
|
||||||
|
Style/RegexpLiteral:
|
||||||
|
Description: Community preference. See https://github.com/voxpupuli/modulesync_config/issues/168
|
||||||
|
EnforcedStyle: percent_r
|
||||||
|
Style/TernaryParentheses:
|
||||||
|
Description: Checks for use of parentheses around ternary conditions. Enforce parentheses
|
||||||
|
on complex expressions for better readability, but seriously consider breaking
|
||||||
|
it up.
|
||||||
|
EnforcedStyle: require_parentheses_when_complex
|
||||||
|
Style/TrailingCommaInArguments:
|
||||||
|
Description: Prefer always trailing comma on multiline argument lists. This makes
|
||||||
|
diffs, and re-ordering nicer.
|
||||||
|
EnforcedStyleForMultiline: comma
|
||||||
|
Style/TrailingCommaInLiteral:
|
||||||
|
Description: Prefer always trailing comma on multiline literals. This makes diffs,
|
||||||
|
and re-ordering nicer.
|
||||||
|
EnforcedStyleForMultiline: comma
|
||||||
|
Style/SymbolArray:
|
||||||
|
Description: Using percent style obscures symbolic intent of array's contents.
|
||||||
|
EnforcedStyle: brackets
|
||||||
|
Style/CollectionMethods:
|
||||||
|
Enabled: true
|
||||||
|
Style/MethodCalledOnDoEndBlock:
|
||||||
|
Enabled: true
|
||||||
|
Style/StringMethods:
|
||||||
|
Enabled: true
|
||||||
|
Layout/EndOfLine:
|
||||||
|
Enabled: false
|
||||||
Metrics/AbcSize:
|
Metrics/AbcSize:
|
||||||
Enabled: False
|
Enabled: false
|
||||||
|
Metrics/BlockLength:
|
||||||
# 'Complexity' is very relative
|
Enabled: false
|
||||||
|
Metrics/ClassLength:
|
||||||
|
Enabled: false
|
||||||
|
Metrics/CyclomaticComplexity:
|
||||||
|
Enabled: false
|
||||||
|
Metrics/MethodLength:
|
||||||
|
Enabled: false
|
||||||
|
Metrics/ModuleLength:
|
||||||
|
Enabled: false
|
||||||
|
Metrics/ParameterLists:
|
||||||
|
Enabled: false
|
||||||
Metrics/PerceivedComplexity:
|
Metrics/PerceivedComplexity:
|
||||||
Enabled: False
|
Enabled: false
|
||||||
|
|
||||||
Lint/UselessAssignment:
|
|
||||||
Enabled: True
|
|
||||||
|
|
||||||
Style/ClosingParenthesisIndentation:
|
|
||||||
Enabled: False
|
|
||||||
|
|
||||||
# RSpec
|
|
||||||
|
|
||||||
# We don't use rspec in this way
|
|
||||||
RSpec/DescribeClass:
|
RSpec/DescribeClass:
|
||||||
Enabled: False
|
Enabled: false
|
||||||
|
|
||||||
# Example length is not necessarily an indicator of code quality
|
|
||||||
RSpec/ExampleLength:
|
RSpec/ExampleLength:
|
||||||
Enabled: False
|
Enabled: false
|
||||||
|
RSpec/MessageExpectation:
|
||||||
RSpec/NamedSubject:
|
Enabled: false
|
||||||
Enabled: False
|
RSpec/MultipleExpectations:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/NestedGroups:
|
||||||
|
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
62
.sync.yml
62
.sync.yml
@@ -1,5 +1,61 @@
|
|||||||
---
|
---
|
||||||
appveyor.yml:
|
appveyor.yml:
|
||||||
delete: true
|
environment:
|
||||||
spec/spec_helper.rb:
|
PUPPET_GEM_VERSION: "~> 4.0"
|
||||||
allow_deprecations: true
|
matrix:
|
||||||
|
- RUBY_VERSION: 24-x64
|
||||||
|
CHECK: "syntax lint"
|
||||||
|
- RUBY_VERSION: 24-x64
|
||||||
|
CHECK: metadata_lint
|
||||||
|
- RUBY_VERSION: 24-x64
|
||||||
|
CHECK: rubocop
|
||||||
|
- RUBY_VERSION: 24-x64
|
||||||
|
PUPPET_GEM_VERSION: "~> 5.0"
|
||||||
|
CHECK: spec
|
||||||
|
|
||||||
|
.travis.yml:
|
||||||
|
env:
|
||||||
|
- PUPPET_GEM_VERSION="~> 5.0" CHECK=spec
|
||||||
|
bundle_args: --without system_tests
|
||||||
|
docker_sets:
|
||||||
|
- set: docker/centos-7
|
||||||
|
options:
|
||||||
|
- set: docker/ubuntu-14.04
|
||||||
|
options:
|
||||||
|
docker_defaults:
|
||||||
|
bundler_args: ""
|
||||||
|
secure: ""
|
||||||
|
branches:
|
||||||
|
- release
|
||||||
|
extras:
|
||||||
|
- rvm: 2.1.9
|
||||||
|
script: "\"bundle exec rake release_checks\""
|
||||||
|
|
||||||
|
Gemfile:
|
||||||
|
required:
|
||||||
|
':system_tests':
|
||||||
|
- gem: 'puppet-module-posix-system-r#{minor_version}'
|
||||||
|
platforms: ruby
|
||||||
|
- gem: 'puppet-module-win-system-r#{minor_version}'
|
||||||
|
platforms:
|
||||||
|
- mswin
|
||||||
|
- mingw
|
||||||
|
- x64_mingw
|
||||||
|
- gem: beaker
|
||||||
|
version: '~> 3.13'
|
||||||
|
from_env: BEAKER_VERSION
|
||||||
|
- gem: beaker-abs
|
||||||
|
from_env: BEAKER_ABS_VERSION
|
||||||
|
version: '~> 0.1'
|
||||||
|
- gem: beaker-pe
|
||||||
|
- gem: beaker-hostgenerator
|
||||||
|
from_env: BEAKER_HOSTGENERATOR_VERSION
|
||||||
|
- gem: beaker-rspec
|
||||||
|
from_env: BEAKER_RSPEC_VERSION
|
||||||
|
':development':
|
||||||
|
- gem: puppet-blacksmith
|
||||||
|
version: '~> 3.4'
|
||||||
|
|
||||||
|
Rakefile:
|
||||||
|
requires:
|
||||||
|
- puppet_blacksmith/rake_tasks
|
||||||
|
|||||||
66
.travis.yml
66
.travis.yml
@@ -1,32 +1,64 @@
|
|||||||
#This file is generated by ModuleSync, do not edit.
|
|
||||||
---
|
---
|
||||||
sudo: false
|
sudo: false
|
||||||
|
dist: trusty
|
||||||
language: ruby
|
language: ruby
|
||||||
cache: bundler
|
cache: bundler
|
||||||
script: "bundle exec rake release_checks"
|
|
||||||
#Inserting below due to the following issue: https://github.com/travis-ci/travis-ci/issues/3531#issuecomment-88311203
|
|
||||||
before_install:
|
before_install:
|
||||||
- gem update bundler
|
- bundle -v
|
||||||
|
- rm Gemfile.lock || true
|
||||||
|
- gem update --system
|
||||||
|
- gem --version
|
||||||
|
- bundle -v
|
||||||
|
script:
|
||||||
|
- 'bundle exec rake $CHECK'
|
||||||
|
bundler_args: --without system_tests
|
||||||
|
rvm:
|
||||||
|
- 2.4.1
|
||||||
|
- 2.1.9
|
||||||
|
env:
|
||||||
|
- PUPPET_GEM_VERSION="~> 4.0" CHECK=spec
|
||||||
|
- PUPPET_GEM_VERSION="~> 5.0" CHECK=spec
|
||||||
matrix:
|
matrix:
|
||||||
fast_finish: true
|
fast_finish: true
|
||||||
include:
|
include:
|
||||||
- rvm: 2.3.1
|
-
|
||||||
dist: trusty
|
bundler_args:
|
||||||
env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_set=docker/ubuntu-14.04
|
|
||||||
script: bundle exec rake beaker
|
|
||||||
services: docker
|
|
||||||
sudo: required
|
|
||||||
- rvm: 2.3.1
|
|
||||||
dist: trusty
|
dist: trusty
|
||||||
env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_set=docker/centos-7
|
env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_set=docker/centos-7
|
||||||
|
rvm: 2.4.1
|
||||||
script: bundle exec rake beaker
|
script: bundle exec rake beaker
|
||||||
services: docker
|
services: docker
|
||||||
sudo: required
|
sudo: required
|
||||||
- rvm: 2.3.1
|
-
|
||||||
bundler_args: --without system_tests
|
bundler_args:
|
||||||
env: PUPPET_GEM_VERSION="~> 4.0"
|
dist: trusty
|
||||||
- rvm: 2.1.7
|
env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_set=docker/ubuntu-14.04
|
||||||
bundler_args: --without system_tests
|
rvm: 2.4.1
|
||||||
env: PUPPET_GEM_VERSION="~> 4.0"
|
script: bundle exec rake beaker
|
||||||
|
services: docker
|
||||||
|
sudo: required
|
||||||
|
-
|
||||||
|
env: CHECK=rubocop
|
||||||
|
-
|
||||||
|
env: CHECK="syntax lint"
|
||||||
|
-
|
||||||
|
env: CHECK=metadata_lint
|
||||||
|
-
|
||||||
|
rvm: 2.1.9
|
||||||
|
script: "bundle exec rake release_checks"
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
- /^v\d/
|
||||||
|
- release
|
||||||
notifications:
|
notifications:
|
||||||
email: false
|
email: false
|
||||||
|
deploy:
|
||||||
|
provider: puppetforge
|
||||||
|
user: puppet
|
||||||
|
password:
|
||||||
|
secure: ""
|
||||||
|
on:
|
||||||
|
tags: true
|
||||||
|
all_branches: true
|
||||||
|
condition: "$DEPLOY_TO_FORGE = yes"
|
||||||
|
|||||||
59
CHANGELOG.md
59
CHANGELOG.md
@@ -1,14 +1,64 @@
|
|||||||
|
## Supported Release [2.4.0]
|
||||||
|
### Summary
|
||||||
|
This release uses the PDK convert functionality which in return makes the module PDK compliant. Also includes a clean up from Rubocop.
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- 1.3.2 PDK convert has been applied [MODULES-6456](https://tickets.puppetlabs.com/browse/MODULES-6456)
|
||||||
|
- The modules has undergone a Rubocop cleanup.
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- $java_home for SLES 11.4 has been updated to the correct location.
|
||||||
|
|
||||||
|
## 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
|
## Supported Release 2.1.0
|
||||||
### Summary
|
### Summary
|
||||||
This release adds fixes to restore the ability to install Oracle Java. It also
|
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.
|
||||||
fixes the paths for the latest RHEL 7 1.7.0 and 1.8.0 OpenJDKs.
|
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- java::oracle parameter `url`
|
- java::oracle parameter `url`
|
||||||
- java::oracle parameter `url_hash`
|
- java::oracle parameter `url_hash`
|
||||||
|
|
||||||
### Fixed
|
### 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
|
- Add puppet 4 parameter types
|
||||||
- Use `/usr/lib/jvm/java-1.x.0` symlinks for `java_home` defaults.
|
- Use `/usr/lib/jvm/java-1.x.0` symlinks for `java_home` defaults.
|
||||||
|
|
||||||
@@ -241,3 +291,6 @@ Jeff McCune <jeff@puppetlabs.com>
|
|||||||
## 2011-05-24 - Version 0.0.1
|
## 2011-05-24 - Version 0.0.1
|
||||||
Jeff McCune <jeff@puppetlabs.com>
|
Jeff McCune <jeff@puppetlabs.com>
|
||||||
* Initial release
|
* 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
|
1. [Getting Started](#getting-started)
|
||||||
committing.
|
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
|
## Getting Started
|
||||||
git-config(1)).
|
|
||||||
|
|
||||||
- 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
|
- Make your changes!
|
||||||
description (50 characters is the soft limit, excluding ticket
|
|
||||||
number(s)), and should skip the full stop.
|
|
||||||
|
|
||||||
- Associate the issue in the message. The first line should include
|
## Commit Checklist
|
||||||
the issue number in the form "(#XXXX) Rest of message".
|
|
||||||
|
|
||||||
- The body should provide a meaningful commit message, which:
|
### The Basics
|
||||||
|
|
||||||
- uses the imperative, present tense: "change", not "changed" or
|
- [x] my commit is a single logical unit of work
|
||||||
"changes".
|
|
||||||
|
|
||||||
- includes motivation for the change, and contrasts its
|
- [x] I have checked for unnecessary whitespace with "git diff --check"
|
||||||
implementation with the previous behavior.
|
|
||||||
|
|
||||||
- Make sure that you have tests for the bug you are fixing, or
|
- [x] my commit does not include commented out code or unneeded files
|
||||||
feature you are adding.
|
|
||||||
|
|
||||||
- Make sure the test suites passes after your commit:
|
### The Content
|
||||||
`bundle exec rspec spec/acceptance` More information on [testing](#Testing) below
|
|
||||||
|
|
||||||
- When introducing a new feature, make sure it is properly
|
- [x] my commit includes tests for the bug I fixed or feature I added
|
||||||
documented in the README.md
|
|
||||||
|
|
||||||
* Submission:
|
- [x] my commit includes appropriate documentation changes if it is introducing a new feature or changing existing functionality
|
||||||
|
|
||||||
* Pre-requisites:
|
- [x] my code passes existing test suites
|
||||||
|
|
||||||
- Make sure you have a [GitHub account](https://github.com/join)
|
### The Commit Message
|
||||||
|
|
||||||
- [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] the first line of my commit message includes:
|
||||||
|
|
||||||
* Preferred method:
|
- [x] an issue number (if applicable), e.g. "(MODULES-xxxx) This is the first line"
|
||||||
|
|
||||||
- Fork the repository on GitHub.
|
- [x] a short description (50 characters is the soft limit, excluding ticket number(s))
|
||||||
|
|
||||||
- Push your changes to a topic branch in your fork of the
|
- [x] the body of my commit message:
|
||||||
repository. (the format ticket/1234-short_description_of_change is
|
|
||||||
usually preferred for this project).
|
|
||||||
|
|
||||||
- Submit a pull request to the repository in the puppetlabs
|
- [x] is meaningful
|
||||||
organization.
|
|
||||||
|
|
||||||
The long version
|
- [x] uses the imperative, present tense: "change", not "changed" or "changes"
|
||||||
================
|
|
||||||
|
- [x] includes motivation for the change, and contrasts its implementation with the previous behavior
|
||||||
|
|
||||||
|
## 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.
|
1. Make separate commits for logically separate changes.
|
||||||
|
|
||||||
@@ -104,37 +116,32 @@ The long version
|
|||||||
GitHub has some pretty good
|
GitHub has some pretty good
|
||||||
[general documentation](http://help.github.com/) on using
|
[general documentation](http://help.github.com/) on using
|
||||||
their site. They also have documentation on
|
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
|
In general, after pushing your topic branch up to your
|
||||||
repository on GitHub, you can switch to the branch in the
|
repository on GitHub, you can switch to the branch in the
|
||||||
GitHub UI and click "Pull Request" towards the top of the page
|
GitHub UI and click "Pull Request" towards the top of the page
|
||||||
in order to open a pull request.
|
in order to open a pull request.
|
||||||
|
|
||||||
|
3. Update the related JIRA issue.
|
||||||
|
|
||||||
3. Update the related GitHub issue.
|
If there is a JIRA issue associated with the change you
|
||||||
|
|
||||||
If there is a GitHub issue associated with the change you
|
|
||||||
submitted, then you should update the ticket to include the
|
submitted, then you should update the ticket to include the
|
||||||
location of your branch, along with any other commentary you
|
location of your branch, along with any other commentary you
|
||||||
may wish to make.
|
may wish to make.
|
||||||
|
|
||||||
Testing
|
# Testing
|
||||||
=======
|
|
||||||
|
|
||||||
Getting Started
|
## Getting Started
|
||||||
---------------
|
|
||||||
|
|
||||||
Our puppet modules provide [`Gemfile`](./Gemfile)s which can tell a ruby
|
Our Puppet modules provide [`Gemfile`](./Gemfile)s, which can tell a Ruby package manager such as [bundler](http://bundler.io/) what Ruby packages,
|
||||||
package manager such as [bundler](http://bundler.io/) what Ruby packages,
|
|
||||||
or Gems, are required to build, develop, and test this software.
|
or Gems, are required to build, develop, and test this software.
|
||||||
|
|
||||||
Please make sure you have [bundler installed](http://bundler.io/#getting-started)
|
Please make sure you have [bundler installed](http://bundler.io/#getting-started) on your system, and then use it to
|
||||||
on your system, then use it to install all dependencies needed for this project,
|
install all dependencies needed for this project in the project root by running
|
||||||
by running
|
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
% bundle install
|
% bundle install --path .bundle/gems
|
||||||
Fetching gem metadata from https://rubygems.org/........
|
Fetching gem metadata from https://rubygems.org/........
|
||||||
Fetching gem metadata from https://rubygems.org/..
|
Fetching gem metadata from https://rubygems.org/..
|
||||||
Using rake (10.1.0)
|
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.
|
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:
|
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
|
% 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
|
```shell
|
||||||
% bundle exec rake spec
|
% bundle exec rake spec
|
||||||
```
|
```
|
||||||
|
|
||||||
This will execute all the [rspec tests](http://rspec-puppet.com/) tests
|
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.
|
||||||
under [spec/defines](./spec/defines), [spec/classes](./spec/classes),
|
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),
|
||||||
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),
|
|
||||||
rspec tests define them in [.fixtures.yml](./fixtures.yml).
|
rspec tests define them in [.fixtures.yml](./fixtures.yml).
|
||||||
|
|
||||||
Some puppet modules also come with [beaker](https://github.com/puppetlabs/beaker)
|
### Acceptance Tests
|
||||||
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.
|
|
||||||
|
|
||||||
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
|
```shell
|
||||||
% bundle exec rake spec_clean
|
% 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),
|
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).
|
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
|
Sample manifest:
|
||||||
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.
|
|
||||||
|
|
||||||
Having someone other than the author of the topic branch recorded as
|
```puppet
|
||||||
performing the merge is the record that they performed the code
|
file { "a test file":
|
||||||
review.
|
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)
|
* [Writing tests](https://docs.puppet.com/guides/module_guides/bgtm.html#step-three-module-testing)
|
||||||
|
|
||||||
* [General GitHub documentation](http://help.github.com/)
|
* [General GitHub documentation](http://help.github.com/)
|
||||||
|
|
||||||
* [GitHub pull request documentation](http://help.github.com/send-pull-requests/)
|
* [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
|
||||||
|
|||||||
165
Gemfile
165
Gemfile
@@ -1,75 +1,136 @@
|
|||||||
#This file is generated by ModuleSync, do not edit.
|
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
|
||||||
|
|
||||||
source ENV['GEM_SOURCE'] || "https://rubygems.org"
|
def location_for(place_or_version, fake_version = nil)
|
||||||
|
if place_or_version =~ %r{\A(git[:@][^#]*)#(.*)}
|
||||||
|
[fake_version, { git: Regexp.last_match(1), branch: Regexp.last_match(2), require: false }].compact
|
||||||
|
elsif place_or_version =~ %r{\Afile:\/\/(.*)}
|
||||||
|
['>= 0', { path: File.expand_path(Regexp.last_match(1)), require: false }]
|
||||||
|
else
|
||||||
|
[place_or_version, { require: false }]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# Determines what type of gem is requested based on place_or_version.
|
|
||||||
def gem_type(place_or_version)
|
def gem_type(place_or_version)
|
||||||
if place_or_version =~ /^git:/
|
if place_or_version =~ %r{\Agit[:@]}
|
||||||
:git
|
:git
|
||||||
elsif place_or_version =~ /^file:/
|
elsif !place_or_version.nil? && place_or_version.start_with?('file:')
|
||||||
:file
|
:file
|
||||||
else
|
else
|
||||||
:gem
|
:gem
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Find a location or specific version for a gem. place_or_version can be a
|
|
||||||
# version, which is most often used. It can also be git, which is specified as
|
|
||||||
# `git://somewhere.git#branch`. You can also use a file source location, which
|
|
||||||
# is specified as `file://some/location/on/disk`.
|
|
||||||
def location_for(place_or_version, fake_version = nil)
|
|
||||||
if place_or_version =~ /^(git[:@][^#]*)#(.*)/
|
|
||||||
[fake_version, { :git => $1, :branch => $2, :require => false }].compact
|
|
||||||
elsif place_or_version =~ /^file:\/\/(.*)/
|
|
||||||
['>= 0', { :path => File.expand_path($1), :require => false }]
|
|
||||||
else
|
|
||||||
[place_or_version, { :require => false }]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Used for gem conditionals
|
|
||||||
supports_windows = false
|
|
||||||
ruby_version_segments = Gem::Version.new(RUBY_VERSION.dup).segments
|
ruby_version_segments = Gem::Version.new(RUBY_VERSION.dup).segments
|
||||||
minor_version = "#{ruby_version_segments[0]}.#{ruby_version_segments[1]}"
|
minor_version = ruby_version_segments[0..1].join('.')
|
||||||
|
|
||||||
group :development do
|
group :development do
|
||||||
gem "puppet-module-posix-default-r#{minor_version}", :require => false, :platforms => "ruby"
|
gem "fast_gettext", '1.1.0', require: false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.1.0')
|
||||||
gem "puppet-module-win-default-r#{minor_version}", :require => false, :platforms => ["mswin", "mingw", "x64_mingw"]
|
gem "fast_gettext", require: false if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.1.0')
|
||||||
gem "puppet-module-posix-dev-r#{minor_version}", :require => false, :platforms => "ruby"
|
gem "json_pure", '<= 2.0.1', require: false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.0.0')
|
||||||
gem "puppet-module-win-dev-r#{minor_version}", :require => false, :platforms => ["mswin", "mingw", "x64_mingw"]
|
gem "json", '= 1.8.1', require: false if Gem::Version.new(RUBY_VERSION.dup) == Gem::Version.new('2.1.9')
|
||||||
gem "json_pure", '<= 2.0.1', :require => false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.0.0')
|
gem "puppet-module-posix-default-r#{minor_version}", require: false, platforms: [:ruby]
|
||||||
gem "fast_gettext", '1.1.0', :require => false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.1.0')
|
gem "puppet-module-posix-dev-r#{minor_version}", require: false, platforms: [:ruby]
|
||||||
gem "fast_gettext", :require => false if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.1.0')
|
gem "puppet-module-win-default-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
||||||
|
gem "puppet-module-win-dev-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
||||||
|
gem "puppet-blacksmith", '~> 3.4', require: false
|
||||||
end
|
end
|
||||||
|
|
||||||
group :system_tests do
|
group :system_tests do
|
||||||
gem "puppet-module-posix-system-r#{minor_version}", :require => false, :platforms => "ruby"
|
gem "puppet-module-posix-system-r#{minor_version}", require: false, platforms: [:ruby]
|
||||||
gem "puppet-module-win-system-r#{minor_version}", :require => false, :platforms => ["mswin", "mingw", "x64_mingw"]
|
gem "puppet-module-win-system-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
||||||
gem "beaker", *location_for(ENV['BEAKER_VERSION'] || '>= 3')
|
gem "beaker", *location_for(ENV['BEAKER_VERSION'] || '~> 3.13')
|
||||||
gem "beaker-pe", :require => false
|
|
||||||
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 "beaker-abs", *location_for(ENV['BEAKER_ABS_VERSION'] || '~> 0.1')
|
||||||
|
gem "beaker-pe", require: false
|
||||||
|
gem "beaker-hostgenerator"
|
||||||
|
gem "beaker-rspec"
|
||||||
end
|
end
|
||||||
|
|
||||||
gem 'puppet', *location_for(ENV['PUPPET_GEM_VERSION'])
|
puppet_version = ENV['PUPPET_GEM_VERSION']
|
||||||
|
puppet_type = gem_type(puppet_version)
|
||||||
|
facter_version = ENV['FACTER_GEM_VERSION']
|
||||||
|
hiera_version = ENV['HIERA_GEM_VERSION']
|
||||||
|
|
||||||
# Only explicitly specify Facter/Hiera if a version has been specified.
|
def puppet_older_than?(version)
|
||||||
# Otherwise it can lead to strange bundler behavior. If you are seeing weird
|
puppet_version = ENV['PUPPET_GEM_VERSION']
|
||||||
# gem resolution behavior, try setting `DEBUG_RESOLVER` environment variable
|
!puppet_version.nil? &&
|
||||||
# to `1` and then run bundle install.
|
Gem::Version.correct?(puppet_version) &&
|
||||||
gem 'facter', *location_for(ENV['FACTER_GEM_VERSION']) if ENV['FACTER_GEM_VERSION']
|
Gem::Requirement.new("< #{version}").satisfied_by?(Gem::Version.new(puppet_version.dup))
|
||||||
gem 'hiera', *location_for(ENV['HIERA_GEM_VERSION']) if ENV['HIERA_GEM_VERSION']
|
|
||||||
|
|
||||||
|
|
||||||
# Evaluate Gemfile.local if it exists
|
|
||||||
if File.exists? "#{__FILE__}.local"
|
|
||||||
eval(File.read("#{__FILE__}.local"), binding)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Evaluate ~/.gemfile if it exists
|
gems = {}
|
||||||
if File.exists?(File.join(Dir.home, '.gemfile'))
|
|
||||||
eval(File.read(File.join(Dir.home, '.gemfile')), binding)
|
gems['puppet'] = location_for(puppet_version)
|
||||||
|
|
||||||
|
# If facter or hiera versions have been specified via the environment
|
||||||
|
# variables, use those versions. If not, and if the puppet version is < 3.5.0,
|
||||||
|
# use known good versions of both for puppet < 3.5.0.
|
||||||
|
if facter_version
|
||||||
|
gems['facter'] = location_for(facter_version)
|
||||||
|
elsif puppet_type == :gem && puppet_older_than?('3.5.0')
|
||||||
|
gems['facter'] = ['>= 1.6.11', '<= 1.7.5', require: false]
|
||||||
end
|
end
|
||||||
|
|
||||||
# vim:ft=ruby
|
if hiera_version
|
||||||
|
gems['hiera'] = location_for(ENV['HIERA_GEM_VERSION'])
|
||||||
|
elsif puppet_type == :gem && puppet_older_than?('3.5.0')
|
||||||
|
gems['hiera'] = ['>= 1.0.0', '<= 1.3.0', require: false]
|
||||||
|
end
|
||||||
|
|
||||||
|
if Gem.win_platform? && (puppet_type != :gem || puppet_older_than?('3.5.0'))
|
||||||
|
# For Puppet gems < 3.5.0 (tested as far back as 3.0.0) on Windows
|
||||||
|
if puppet_type == :gem
|
||||||
|
gems['ffi'] = ['1.9.0', require: false]
|
||||||
|
gems['minitar'] = ['0.5.4', require: false]
|
||||||
|
gems['win32-eventlog'] = ['0.5.3', '<= 0.6.5', require: false]
|
||||||
|
gems['win32-process'] = ['0.6.5', '<= 0.7.5', require: false]
|
||||||
|
gems['win32-security'] = ['~> 0.1.2', '<= 0.2.5', require: false]
|
||||||
|
gems['win32-service'] = ['0.7.2', '<= 0.8.8', require: false]
|
||||||
|
else
|
||||||
|
gems['ffi'] = ['~> 1.9.0', require: false]
|
||||||
|
gems['minitar'] = ['~> 0.5.4', require: false]
|
||||||
|
gems['win32-eventlog'] = ['~> 0.5', '<= 0.6.5', require: false]
|
||||||
|
gems['win32-process'] = ['~> 0.6', '<= 0.7.5', require: false]
|
||||||
|
gems['win32-security'] = ['~> 0.1', '<= 0.2.5', require: false]
|
||||||
|
gems['win32-service'] = ['~> 0.7', '<= 0.8.8', require: false]
|
||||||
|
end
|
||||||
|
|
||||||
|
gems['win32-dir'] = ['~> 0.3', '<= 0.4.9', require: false]
|
||||||
|
|
||||||
|
if RUBY_VERSION.start_with?('1.')
|
||||||
|
gems['win32console'] = ['1.3.2', require: false]
|
||||||
|
# sys-admin was removed in Puppet 3.7.0 and doesn't compile under Ruby 2.x
|
||||||
|
gems['sys-admin'] = ['1.5.6', require: false]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Puppet < 3.7.0 requires these.
|
||||||
|
# Puppet >= 3.5.0 gem includes these as requirements.
|
||||||
|
# The following versions are tested to work with 3.0.0 <= puppet < 3.7.0.
|
||||||
|
gems['win32-api'] = ['1.4.8', require: false]
|
||||||
|
gems['win32-taskscheduler'] = ['0.2.2', require: false]
|
||||||
|
gems['windows-api'] = ['0.4.3', require: false]
|
||||||
|
gems['windows-pr'] = ['1.2.3', require: false]
|
||||||
|
elsif Gem.win_platform?
|
||||||
|
# If we're using a Puppet gem on Windows which handles its own win32-xxx gem
|
||||||
|
# dependencies (>= 3.5.0), set the maximum versions (see PUP-6445).
|
||||||
|
gems['win32-dir'] = ['<= 0.4.9', require: false]
|
||||||
|
gems['win32-eventlog'] = ['<= 0.6.5', require: false]
|
||||||
|
gems['win32-process'] = ['<= 0.7.5', require: false]
|
||||||
|
gems['win32-security'] = ['<= 0.2.5', require: false]
|
||||||
|
gems['win32-service'] = ['<= 0.8.8', require: false]
|
||||||
|
end
|
||||||
|
|
||||||
|
gems.each do |gem_name, gem_params|
|
||||||
|
gem gem_name, *gem_params
|
||||||
|
end
|
||||||
|
|
||||||
|
# Evaluate Gemfile.local and ~/.gemfile if they exist
|
||||||
|
extra_gemfiles = [
|
||||||
|
"#{__FILE__}.local",
|
||||||
|
File.join(Dir.home, '.gemfile'),
|
||||||
|
]
|
||||||
|
|
||||||
|
extra_gemfiles.each do |gemfile|
|
||||||
|
if File.file?(gemfile) && File.readable?(gemfile)
|
||||||
|
eval(File.read(gemfile), binding)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
# vim: syntax=ruby
|
||||||
|
|||||||
2
NOTICE
2
NOTICE
@@ -1,6 +1,6 @@
|
|||||||
Puppet Module - puppetlabs-java
|
Puppet Module - puppetlabs-java
|
||||||
|
|
||||||
Copyright 2017 Puppet, Inc.
|
Copyright 2018 Puppet, Inc.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
|||||||
@@ -202,6 +202,8 @@ Sun Java is supported on:
|
|||||||
Oracle Java is supported on:
|
Oracle Java is supported on:
|
||||||
|
|
||||||
* CentOS 6
|
* CentOS 6
|
||||||
|
* CentOS 7
|
||||||
|
* Red Hat Enterprise Linux (RHEL) 7
|
||||||
|
|
||||||
### Known issues
|
### Known issues
|
||||||
|
|
||||||
|
|||||||
38
Rakefile
38
Rakefile
@@ -1,37 +1,3 @@
|
|||||||
require 'puppetlabs_spec_helper/rake_tasks'
|
require 'puppetlabs_spec_helper/rake_tasks'
|
||||||
require 'puppet-lint/tasks/puppet-lint'
|
require 'puppet-syntax/tasks/puppet-syntax'
|
||||||
require 'puppet_blacksmith/rake_tasks' if Bundler.rubygems.find_name('puppet-blacksmith').any?
|
require 'puppet_blacksmith/rake_tasks'
|
||||||
|
|
||||||
PuppetLint.configuration.fail_on_warnings = true
|
|
||||||
PuppetLint.configuration.send('relative')
|
|
||||||
|
|
||||||
desc 'Generate pooler nodesets'
|
|
||||||
task :gen_nodeset do
|
|
||||||
require 'beaker-hostgenerator'
|
|
||||||
require 'securerandom'
|
|
||||||
require 'fileutils'
|
|
||||||
|
|
||||||
agent_target = ENV['TEST_TARGET']
|
|
||||||
if ! agent_target
|
|
||||||
STDERR.puts 'TEST_TARGET environment variable is not set'
|
|
||||||
STDERR.puts 'setting to default value of "redhat-64default."'
|
|
||||||
agent_target = 'redhat-64default.'
|
|
||||||
end
|
|
||||||
|
|
||||||
master_target = ENV['MASTER_TEST_TARGET']
|
|
||||||
if ! master_target
|
|
||||||
STDERR.puts 'MASTER_TEST_TARGET environment variable is not set'
|
|
||||||
STDERR.puts 'setting to default value of "redhat7-64mdcl"'
|
|
||||||
master_target = 'redhat7-64mdcl'
|
|
||||||
end
|
|
||||||
|
|
||||||
targets = "#{master_target}-#{agent_target}"
|
|
||||||
cli = BeakerHostGenerator::CLI.new([targets])
|
|
||||||
nodeset_dir = "tmp/nodesets"
|
|
||||||
nodeset = "#{nodeset_dir}/#{targets}-#{SecureRandom.uuid}.yaml"
|
|
||||||
FileUtils.mkdir_p(nodeset_dir)
|
|
||||||
File.open(nodeset, 'w') do |fh|
|
|
||||||
fh.print(cli.execute)
|
|
||||||
end
|
|
||||||
puts nodeset
|
|
||||||
end
|
|
||||||
|
|||||||
@@ -3,25 +3,28 @@
|
|||||||
# Purpose: get absolute path of java system home
|
# Purpose: get absolute path of java system home
|
||||||
#
|
#
|
||||||
# Resolution:
|
# Resolution:
|
||||||
# Uses `readlink` to resolve the path of `/usr/bin/java` then returns subsubdir
|
# Find the real java binary, and return the subsubdir
|
||||||
#
|
#
|
||||||
# Caveats:
|
# Caveats:
|
||||||
# Requires readlink
|
# java binary has to be found in $PATH
|
||||||
#
|
#
|
||||||
# Notes:
|
# Notes:
|
||||||
# None
|
# None
|
||||||
Facter.add(:java_default_home) do
|
Facter.add(:java_default_home) do
|
||||||
confine :kernel => 'Linux'
|
confine kernel: %w[Linux OpenBSD]
|
||||||
|
java_default_home = nil
|
||||||
setcode do
|
setcode do
|
||||||
if Facter::Util::Resolution.which('readlink')
|
java_bin = Facter::Util::Resolution.which('java').to_s.strip
|
||||||
java_bin = Facter::Util::Resolution.exec('readlink -e /usr/bin/java').strip
|
|
||||||
if java_bin.empty?
|
if java_bin.empty?
|
||||||
nil
|
nil
|
||||||
elsif java_bin =~ %r(/jre/)
|
|
||||||
java_default_home = File.dirname(File.dirname(File.dirname(java_bin)))
|
|
||||||
else
|
else
|
||||||
java_default_home = File.dirname(File.dirname(java_bin))
|
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
|
end
|
||||||
end
|
end
|
||||||
|
java_default_home
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
# Notes:
|
# Notes:
|
||||||
# None
|
# None
|
||||||
Facter.add(:java_libjvm_path) do
|
Facter.add(:java_libjvm_path) do
|
||||||
confine :kernel => "Linux"
|
confine kernel: %w[Linux OpenBSD]
|
||||||
setcode do
|
setcode do
|
||||||
java_default_home = Facter.value(:java_default_home)
|
java_default_home = Facter.value(:java_default_home)
|
||||||
java_libjvm_file = Dir.glob("#{java_default_home}/jre/lib/**/libjvm.so")
|
java_libjvm_file = Dir.glob("#{java_default_home}/jre/lib/**/libjvm.so")
|
||||||
@@ -22,4 +22,3 @@ Facter.add(:java_libjvm_path) do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -13,8 +13,10 @@
|
|||||||
# Notes:
|
# Notes:
|
||||||
# None
|
# None
|
||||||
Facter.add(:java_major_version) do
|
Facter.add(:java_major_version) do
|
||||||
|
java_major_version = nil
|
||||||
setcode do
|
setcode do
|
||||||
java_version = Facter.value(:java_version)
|
java_version = Facter.value(:java_version)
|
||||||
java_patch_level = java_version.strip.split('_')[0].split('.')[1] unless java_version.nil?
|
java_major_version = java_version.strip.split('_')[0].split('.')[1] unless java_version.nil?
|
||||||
end
|
end
|
||||||
|
java_major_version
|
||||||
end
|
end
|
||||||
@@ -11,8 +11,10 @@
|
|||||||
# Notes:
|
# Notes:
|
||||||
# None
|
# None
|
||||||
Facter.add(:java_patch_level) do
|
Facter.add(:java_patch_level) do
|
||||||
|
java_patch_level = nil
|
||||||
setcode do
|
setcode do
|
||||||
java_version = Facter.value(:java_version)
|
java_version = Facter.value(:java_version)
|
||||||
java_patch_level = java_version.strip.split('_')[1] unless java_version.nil?
|
java_patch_level = java_version.strip.split('_')[1] unless java_version.nil?
|
||||||
end
|
end
|
||||||
|
java_patch_level
|
||||||
end
|
end
|
||||||
@@ -21,32 +21,24 @@ Facter.add(:java_version) do
|
|||||||
# Additionally, facter versions prior to 2.0.1 only support
|
# Additionally, facter versions prior to 2.0.1 only support
|
||||||
# positive matches, so this needs to be done manually in setcode.
|
# positive matches, so this needs to be done manually in setcode.
|
||||||
setcode do
|
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')
|
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
|
end
|
||||||
|
version
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Facter.add(:java_version) do
|
Facter.add(:java_version) do
|
||||||
confine :operatingsystem => 'OpenBSD'
|
confine operatingsystem: 'Darwin'
|
||||||
has_weight 100
|
has_weight 100
|
||||||
setcode do
|
setcode do
|
||||||
Facter::Util::Resolution.with_env("PATH" => '/usr/local/jdk-1.7.0/jre/bin:/usr/local/jre-1.7.0/bin') do
|
unless %r{Unable to find any JVMs matching version} =~ Facter::Util::Resolution.exec('/usr/libexec/java_home --failfast 2>&1')
|
||||||
if Facter::Util::Resolution.which('java')
|
version = nil
|
||||||
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 => '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
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -22,4 +22,5 @@ gettext:
|
|||||||
# Patterns for +Dir.glob+ used to find all files that might contain
|
# Patterns for +Dir.glob+ used to find all files that might contain
|
||||||
# translatable content, relative to the project root directory
|
# translatable content, relative to the project root directory
|
||||||
source_files:
|
source_files:
|
||||||
|
- './lib/**/*.rb'
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ class java::config ( ) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'OpenBSD', 'FreeBSD', 'Suse': {
|
'FreeBSD', 'Suse': {
|
||||||
if $java::use_java_home != undef {
|
if $java::use_java_home != undef {
|
||||||
file_line { 'java-home-environment':
|
file_line { 'java-home-environment':
|
||||||
path => '/etc/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: {
|
default: {
|
||||||
# Do nothing.
|
# Do nothing.
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
# or other platform-specific options where there are multiple
|
# or other platform-specific options where there are multiple
|
||||||
# implementations available (eg: OpenJDK vs Oracle JDK).
|
# implementations available (eg: OpenJDK vs Oracle JDK).
|
||||||
#
|
#
|
||||||
#
|
|
||||||
# [*version*]
|
# [*version*]
|
||||||
# The version of java to install. By default, this module simply ensures
|
# The version of java to install. By default, this module simply ensures
|
||||||
# that java is present, and does not require a specific version.
|
# that java is present, and does not require a specific version.
|
||||||
@@ -54,15 +53,11 @@ class java(
|
|||||||
Optional[String] $java_alternative_path = undef,
|
Optional[String] $java_alternative_path = undef,
|
||||||
Optional[String] $java_home = undef
|
Optional[String] $java_home = undef
|
||||||
) {
|
) {
|
||||||
include java::params
|
include ::java::params
|
||||||
|
|
||||||
if has_key($java::params::java, $distribution) {
|
$default_package_name = has_key($java::params::java, $distribution) ? {
|
||||||
$default_package_name = $java::params::java[$distribution]['package']
|
false => undef,
|
||||||
$default_alternative = $java::params::java[$distribution]['alternative']
|
default => $java::params::java[$distribution]['package'],
|
||||||
$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.")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$use_java_package_name = $package ? {
|
$use_java_package_name = $package ? {
|
||||||
@@ -70,12 +65,17 @@ class java(
|
|||||||
default => $package,
|
default => $package,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
## Weird logic........
|
||||||
## If $java_alternative is set, use that.
|
## If $java_alternative is set, use that.
|
||||||
## Elsif the DEFAULT package is being used, then use $default_alternative.
|
## Elsif the DEFAULT package is being used, then use $default_alternative.
|
||||||
## Else undef
|
## Else undef
|
||||||
$use_java_alternative = $java_alternative ? {
|
$use_java_alternative = $java_alternative ? {
|
||||||
undef => $use_java_package_name ? {
|
undef => $use_java_package_name ? {
|
||||||
$default_package_name => $default_alternative,
|
$default_package_name => has_key($java::params::java, $distribution) ? {
|
||||||
|
default => $java::params::java[$distribution]['alternative'],
|
||||||
|
false => undef,
|
||||||
|
},
|
||||||
default => undef,
|
default => undef,
|
||||||
},
|
},
|
||||||
default => $java_alternative,
|
default => $java_alternative,
|
||||||
@@ -84,7 +84,10 @@ class java(
|
|||||||
## Same logic as $java_alternative above.
|
## Same logic as $java_alternative above.
|
||||||
$use_java_alternative_path = $java_alternative_path ? {
|
$use_java_alternative_path = $java_alternative_path ? {
|
||||||
undef => $use_java_package_name ? {
|
undef => $use_java_package_name ? {
|
||||||
$default_package_name => $default_alternative_path,
|
$default_package_name => has_key($java::params::java, $distribution) ? {
|
||||||
|
default => $java::params::java[$distribution]['alternative_path'],
|
||||||
|
false => undef,
|
||||||
|
},
|
||||||
default => undef,
|
default => undef,
|
||||||
},
|
},
|
||||||
default => $java_alternative_path,
|
default => $java_alternative_path,
|
||||||
@@ -92,12 +95,26 @@ class java(
|
|||||||
|
|
||||||
$use_java_home = $java_home ? {
|
$use_java_home = $java_home ? {
|
||||||
undef => $use_java_package_name ? {
|
undef => $use_java_package_name ? {
|
||||||
$default_package_name => $default_java_home,
|
$default_package_name => has_key($java::params::java, $distribution) ? {
|
||||||
|
default => $java::params::java[$distribution]['java_home'],
|
||||||
|
false => undef,
|
||||||
|
},
|
||||||
default => undef,
|
default => undef,
|
||||||
},
|
},
|
||||||
default => $java_home,
|
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 ? {
|
$jre_flag = $use_java_package_name ? {
|
||||||
/headless/ => '--jre-headless',
|
/headless/ => '--jre-headless',
|
||||||
default => '--jre'
|
default => '--jre'
|
||||||
|
|||||||
@@ -166,6 +166,11 @@ define java::oracle (
|
|||||||
} else {
|
} else {
|
||||||
$package_type = 'rpm'
|
$package_type = 'rpm'
|
||||||
}
|
}
|
||||||
|
$creates_path = "/usr/java/${install_path}"
|
||||||
|
}
|
||||||
|
'Debian' : {
|
||||||
|
$package_type = 'tar.gz'
|
||||||
|
$creates_path = "/usr/lib/jvm/${install_path}"
|
||||||
}
|
}
|
||||||
default : {
|
default : {
|
||||||
fail ("unsupported platform ${$facts['os']['name']}") }
|
fail ("unsupported platform ${$facts['os']['name']}") }
|
||||||
@@ -173,7 +178,6 @@ define java::oracle (
|
|||||||
|
|
||||||
$os = 'linux'
|
$os = 'linux'
|
||||||
$destination_dir = '/tmp/'
|
$destination_dir = '/tmp/'
|
||||||
$creates_path = "/usr/java/${install_path}"
|
|
||||||
}
|
}
|
||||||
default : {
|
default : {
|
||||||
fail ( "unsupported platform ${$facts['kernel']}" ) }
|
fail ( "unsupported platform ${$facts['kernel']}" ) }
|
||||||
@@ -183,6 +187,7 @@ define java::oracle (
|
|||||||
case $facts['os']['architecture'] {
|
case $facts['os']['architecture'] {
|
||||||
'i386' : { $arch = 'i586' }
|
'i386' : { $arch = 'i586' }
|
||||||
'x86_64' : { $arch = 'x64' }
|
'x86_64' : { $arch = 'x64' }
|
||||||
|
'amd64' : { $arch = 'x64' }
|
||||||
default : {
|
default : {
|
||||||
fail ("unsupported platform ${$facts['os']['architecture']}")
|
fail ("unsupported platform ${$facts['os']['architecture']}")
|
||||||
}
|
}
|
||||||
@@ -205,6 +210,9 @@ define java::oracle (
|
|||||||
'rpm' : {
|
'rpm' : {
|
||||||
$package_name = "${java_se}-${release_major}-${os}-${arch}.rpm"
|
$package_name = "${java_se}-${release_major}-${os}-${arch}.rpm"
|
||||||
}
|
}
|
||||||
|
'tar.gz' : {
|
||||||
|
$package_name = "${java_se}-${release_major}-${os}-${arch}.tar.gz"
|
||||||
|
}
|
||||||
default : {
|
default : {
|
||||||
$package_name = "${java_se}-${release_major}-${os}-${arch}.rpm"
|
$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 complete URL is provided, use this value for source in archive resource
|
||||||
if $url {
|
if $url {
|
||||||
$source = $url
|
$source = $url
|
||||||
} elsif $release_hash != undef {
|
}
|
||||||
|
elsif $release_hash != undef {
|
||||||
$source = "${oracle_url}/${release_major}-${release_minor}/${release_hash}/${package_name}"
|
$source = "${oracle_url}/${release_major}-${release_minor}/${release_hash}/${package_name}"
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$source = "${oracle_url}/${release_major}-${release_minor}/${package_name}"
|
$source = "${oracle_url}/${release_major}-${release_minor}/${package_name}"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -233,6 +243,9 @@ define java::oracle (
|
|||||||
'rpm' : {
|
'rpm' : {
|
||||||
$install_command = "rpm --force -iv ${destination}"
|
$install_command = "rpm --force -iv ${destination}"
|
||||||
}
|
}
|
||||||
|
'tar.gz' : {
|
||||||
|
$install_command = "tar -zxf ${destination} -C /usr/lib/jvm"
|
||||||
|
}
|
||||||
default : {
|
default : {
|
||||||
$install_command = "rpm -iv ${destination}"
|
$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',
|
path => '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin',
|
||||||
command => $install_command,
|
command => $install_command,
|
||||||
creates => $creates_path,
|
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 : {
|
default : {
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ class java::params {
|
|||||||
case $::osfamily {
|
case $::osfamily {
|
||||||
'RedHat': {
|
'RedHat': {
|
||||||
case $::operatingsystem {
|
case $::operatingsystem {
|
||||||
'RedHat', 'CentOS', 'OracleLinux', 'Scientific', 'OEL', 'SLC': {
|
'RedHat', 'CentOS', 'OracleLinux', 'Scientific', 'OEL', 'SLC', 'CloudLinux': {
|
||||||
if (versioncmp($::operatingsystemrelease, '5.0') < 0) {
|
if (versioncmp($::operatingsystemrelease, '5.0') < 0) {
|
||||||
$jdk_package = 'java-1.6.0-sun-devel'
|
$jdk_package = 'java-1.6.0-sun-devel'
|
||||||
$jre_package = 'java-1.6.0-sun'
|
$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 = {
|
$java = {
|
||||||
'jdk' => {
|
'jdk' => {
|
||||||
'package' => 'openjdk-8-jdk',
|
'package' => 'openjdk-8-jdk',
|
||||||
@@ -224,7 +224,7 @@ class java::params {
|
|||||||
} elsif (versioncmp($::operatingsystemrelease, '11.4') >= 0) {
|
} elsif (versioncmp($::operatingsystemrelease, '11.4') >= 0) {
|
||||||
$jdk_package = 'java-1_7_1-ibm-devel'
|
$jdk_package = 'java-1_7_1-ibm-devel'
|
||||||
$jre_package = 'java-1_7_1-ibm'
|
$jre_package = 'java-1_7_1-ibm'
|
||||||
$java_home = '/usr/lib64/jvm/java-1.7.0-ibm-1.7.0/'
|
$java_home = '/usr/lib64/jvm/java-1.7.1-ibm-1.7.1/'
|
||||||
} else {
|
} else {
|
||||||
$jdk_package = 'java-1_6_0-ibm-devel'
|
$jdk_package = 'java-1_6_0-ibm-devel'
|
||||||
$jre_package = 'java-1_6_0-ibm'
|
$jre_package = 'java-1_6_0-ibm'
|
||||||
@@ -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}") }
|
default: { fail("unsupported platform ${::osfamily}") }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,22 @@
|
|||||||
{
|
{
|
||||||
"name": "puppetlabs-java",
|
"name": "puppetlabs-java",
|
||||||
"version": "2.1.0",
|
"version": "2.4.0",
|
||||||
"author": "puppetlabs",
|
"author": "puppetlabs",
|
||||||
"summary": "Installs the correct Java package on various platforms.",
|
"summary": "Installs the correct Java package on various platforms.",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"source": "git://github.com/puppetlabs/puppetlabs-java",
|
"source": "git://github.com/puppetlabs/puppetlabs-java",
|
||||||
"project_page": "https://github.com/puppetlabs/puppetlabs-java",
|
"project_page": "https://github.com/puppetlabs/puppetlabs-java",
|
||||||
"issues_url": "https://tickets.puppet.com/CreateIssueDetails!init.jspa?pid=10707&issuetype=1&team=Modules&customfield_14200=14302&labels=triage&customfield_10005=2147&summary=Issue+found+with+module%3A+puppetlabs-java",
|
"issues_url": "https://tickets.puppet.com/CreateIssueDetails!init.jspa?pid=10707&issuetype=1&team=Modules&customfield_14200=14302&labels=triage&customfield_10005=2147&summary=Issue+found+with+module%3A+puppetlabs-java",
|
||||||
|
"dependencies": [
|
||||||
|
{
|
||||||
|
"name": "puppetlabs/stdlib",
|
||||||
|
"version_requirement": ">= 4.13.1 < 5.0.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "puppet/archive",
|
||||||
|
"version_requirement": ">= 1.1.0 < 3.0.0"
|
||||||
|
}
|
||||||
|
],
|
||||||
"operatingsystem_support": [
|
"operatingsystem_support": [
|
||||||
{
|
{
|
||||||
"operatingsystem": "RedHat",
|
"operatingsystem": "RedHat",
|
||||||
@@ -49,16 +59,14 @@
|
|||||||
{
|
{
|
||||||
"operatingsystem": "Debian",
|
"operatingsystem": "Debian",
|
||||||
"operatingsystemrelease": [
|
"operatingsystemrelease": [
|
||||||
"6",
|
|
||||||
"7",
|
"7",
|
||||||
"8"
|
"8",
|
||||||
|
"9"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"operatingsystem": "Ubuntu",
|
"operatingsystem": "Ubuntu",
|
||||||
"operatingsystemrelease": [
|
"operatingsystemrelease": [
|
||||||
"10.04",
|
|
||||||
"12.04",
|
|
||||||
"14.04",
|
"14.04",
|
||||||
"16.04"
|
"16.04"
|
||||||
]
|
]
|
||||||
@@ -85,17 +93,9 @@
|
|||||||
"requirements": [
|
"requirements": [
|
||||||
{
|
{
|
||||||
"name": "puppet",
|
"name": "puppet",
|
||||||
"version_requirement": ">= 4.7.0 < 5.0.0"
|
"version_requirement": ">= 4.7.0 < 6.0.0"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"dependencies": [
|
"template-url": "https://github.com/puppetlabs/pdk-templates",
|
||||||
{
|
"template-ref": "1.3.2-0-g07678c8"
|
||||||
"name":"puppetlabs/stdlib",
|
|
||||||
"version_requirement": ">= 4.13.1 < 5.0.0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"puppet/archive",
|
|
||||||
"version_requirement": ">= 1.1.0 < 2.0.0"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
require 'spec_helper_acceptance'
|
require 'spec_helper_acceptance'
|
||||||
|
|
||||||
#RedHat, CentOS, Scientific, Oracle prior to 5.0 : Sun 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 5.0 < x < 6.3 : OpenJDK Java JDK/JRE 1.6
|
||||||
#RedHat, CentOS, Scientific, Oracle after 6.3 : OpenJDK Java JDK/JRE 1.7
|
# 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 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
|
# 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
|
# Solaris (what versions?) : Java JDK/JRE 1.7
|
||||||
#OpenSuSE : OpenJDK Java JDK/JRE 1.7
|
# OpenSuSE : OpenJDK Java JDK/JRE 1.7
|
||||||
#SLES : IBM Java JDK/JRE 1.6
|
# SLES : IBM Java JDK/JRE 1.6
|
||||||
|
|
||||||
# C14677
|
# C14677
|
||||||
# C14678
|
# C14678
|
||||||
@@ -26,74 +26,103 @@ require 'spec_helper_acceptance'
|
|||||||
# C14723 Where is oracle linux 5?
|
# C14723 Where is oracle linux 5?
|
||||||
# C14724 Where is oracle linux 5?
|
# C14724 Where is oracle linux 5?
|
||||||
# C14771 Where is redhat 7? Centos 7?
|
# C14771 Where is redhat 7? Centos 7?
|
||||||
describe "installing java", :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
|
||||||
describe "jre" do
|
|
||||||
it 'should install jre' do
|
|
||||||
pp = <<-EOS
|
|
||||||
class { 'java':
|
|
||||||
distribution => 'jre',
|
|
||||||
}
|
|
||||||
EOS
|
|
||||||
|
|
||||||
|
java_class_jre = "class { 'java':\n"\
|
||||||
|
" distribution => 'jre',\n"\
|
||||||
|
'}'
|
||||||
|
|
||||||
|
java_class = "class { 'java': }"
|
||||||
|
|
||||||
|
sources = "file_line { 'non-free source':\n"\
|
||||||
|
" path => '/etc/apt/sources.list',\n"\
|
||||||
|
" match => \"deb http://osmirror.delivery.puppetlabs.net/debian/ ${::lsbdistcodename} main\",\n"\
|
||||||
|
" line => \"deb http://osmirror.delivery.puppetlabs.net/debian/ ${::lsbdistcodename} main non-free\",\n"\
|
||||||
|
'}'
|
||||||
|
|
||||||
|
sun_jre = "class { 'java':\n"\
|
||||||
|
" distribution => 'sun-jre',\n"\
|
||||||
|
'}'
|
||||||
|
|
||||||
|
sun_jdk = "class { 'java':\n"\
|
||||||
|
" distribution => 'sun-jdk',\n"\
|
||||||
|
'}'
|
||||||
|
|
||||||
|
oracle_jre = "class { 'java':\n"\
|
||||||
|
" distribution => 'oracle-jre',\n"\
|
||||||
|
'}'
|
||||||
|
|
||||||
|
oracle_jdk = "class { 'java':\n"\
|
||||||
|
" distribution => 'oracle-jdk',\n"\
|
||||||
|
'}'
|
||||||
|
|
||||||
|
incorrect_version = "class { 'java':\n"\
|
||||||
|
" version => '14.5',\n"\
|
||||||
|
'}'
|
||||||
|
|
||||||
|
blank_version = "class { 'java':\n"\
|
||||||
|
" version => '',\n"\
|
||||||
|
'}'
|
||||||
|
|
||||||
|
incorrect_distro = "class { 'java':\n"\
|
||||||
|
" distribution => 'xyz',\n"\
|
||||||
|
'}'
|
||||||
|
|
||||||
|
blank_distro = "class { 'java':\n"\
|
||||||
|
" distribution => '',\n"\
|
||||||
|
'}'
|
||||||
|
|
||||||
|
incorrect_package = "class { 'java':\n"\
|
||||||
|
" package => 'xyz',\n"\
|
||||||
|
'}'
|
||||||
|
|
||||||
|
bogus_alternative = "class { 'java':\n"\
|
||||||
|
" java_alternative => 'whatever',\n"\
|
||||||
|
" java_alternative_path => '/whatever',\n"\
|
||||||
|
'}'
|
||||||
|
|
||||||
|
def apply_manifest_wheezy_case(pp)
|
||||||
# With the version of java that ships with pe on debian wheezy, update-alternatives
|
# With the version of java that ships with pe on debian wheezy, update-alternatives
|
||||||
# throws an error on the first run due to missing alternative for policytool. It still
|
# throws an error on the first run due to missing alternative for policytool. It still
|
||||||
# updates the alternatives for java
|
# updates the alternatives for java
|
||||||
if fact('operatingsystem') == 'Debian' and fact('lsbdistcodename') == 'wheezy'
|
if fact('operatingsystem') == 'Debian' && fact('lsbdistcodename') == 'wheezy'
|
||||||
apply_manifest(pp)
|
apply_manifest(pp)
|
||||||
else
|
else
|
||||||
apply_manifest(pp, :catch_failures => true)
|
apply_manifest(pp, catch_failures: true)
|
||||||
end
|
|
||||||
apply_manifest(pp, :catch_changes => true)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
describe "jdk" do
|
|
||||||
it 'should install jdk' do
|
|
||||||
pp = <<-EOS
|
|
||||||
class { 'java': }
|
|
||||||
EOS
|
|
||||||
|
|
||||||
apply_manifest(pp, :catch_failures => true)
|
|
||||||
apply_manifest(pp, :catch_changes => true)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
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
|
# C14686
|
||||||
describe 'sun', :if => (fact('operatingsystem') == 'Debian' and fact('operatingsystemrelease').match(/(5|6)/)) do
|
context 'sun', if: (fact('operatingsystem') == 'Debian' && fact('operatingsystemrelease').match(%r{(5|6)})) do
|
||||||
before :all do
|
before :all do
|
||||||
pp = <<-EOS
|
apply_manifest(sources)
|
||||||
file_line { 'non-free source':
|
|
||||||
path => '/etc/apt/sources.list',
|
|
||||||
match => "deb http://osmirror.delivery.puppetlabs.net/debian/ ${::lsbdistcodename} main",
|
|
||||||
line => "deb http://osmirror.delivery.puppetlabs.net/debian/ ${::lsbdistcodename} main non-free",
|
|
||||||
}
|
|
||||||
EOS
|
|
||||||
apply_manifest(pp)
|
|
||||||
shell('apt-get update')
|
shell('apt-get update')
|
||||||
shell('echo "sun-java6-jdk shared/accepted-sun-dlj-v1-1 select true" | debconf-set-selections')
|
shell('echo "sun-java6-jdk shared/accepted-sun-dlj-v1-1 select true" | debconf-set-selections')
|
||||||
shell('echo "sun-java6-jre shared/accepted-sun-dlj-v1-1 select true" | debconf-set-selections')
|
shell('echo "sun-java6-jre shared/accepted-sun-dlj-v1-1 select true" | debconf-set-selections')
|
||||||
end
|
end
|
||||||
describe 'jre' do
|
describe 'jre' do
|
||||||
it 'should install sun-jre' do
|
it 'installs sun-jre' do
|
||||||
pp = <<-EOS
|
apply_manifest(sun_jre, catch_failures: true)
|
||||||
class { 'java':
|
apply_manifest(sun_jre, catch_changes: true)
|
||||||
distribution => 'sun-jre',
|
|
||||||
}
|
|
||||||
EOS
|
|
||||||
|
|
||||||
apply_manifest(pp, :catch_failures => true)
|
|
||||||
apply_manifest(pp, :catch_changes => true)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
describe 'jdk' do
|
describe 'jdk' do
|
||||||
it 'should install sun-jdk' do
|
it 'installs sun-jdk' do
|
||||||
pp = <<-EOS
|
apply_manifest(sun_jdk, catch_failures: true)
|
||||||
class { 'java':
|
apply_manifest(sun_jdk, catch_changes: true)
|
||||||
distribution => 'sun-jdk',
|
|
||||||
}
|
|
||||||
EOS
|
|
||||||
|
|
||||||
apply_manifest(pp, :catch_failures => true)
|
|
||||||
apply_manifest(pp, :catch_changes => true)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -101,122 +130,64 @@ end
|
|||||||
# C14704
|
# C14704
|
||||||
# C14705
|
# C14705
|
||||||
# C15006
|
# C15006
|
||||||
describe 'oracle', :if => (
|
context 'oracle', if: (
|
||||||
(fact('operatingsystem') == 'Debian') and (fact('operatingsystemrelease').match(/^7/)) or
|
(fact('operatingsystem') == 'Debian') && fact('operatingsystemrelease').match(%r{^7}) ||
|
||||||
(fact('operatingsystem') == 'Ubuntu') and (fact('operatingsystemrelease').match(/^12\.04/)) or
|
(fact('operatingsystem') == 'Ubuntu') && fact('operatingsystemrelease').match(%r{^12\.04}) ||
|
||||||
(fact('operatingsystem') == 'Ubuntu') and (fact('operatingsystemrelease').match(/^14\.04/))
|
(fact('operatingsystem') == 'Ubuntu') && fact('operatingsystemrelease').match(%r{^14\.04})
|
||||||
) do
|
) do
|
||||||
# not supported
|
# not supported
|
||||||
# The package is not available from any sources, but if a customer
|
# The package is not available from any sources, but if a customer
|
||||||
# custom-builds the package using java-package and adds it to a local
|
# custom-builds the package using java-package and adds it to a local
|
||||||
# repository, that is the intention of this version ability
|
# repository, that is the intention of this version ability
|
||||||
describe 'jre' do
|
describe 'jre' do
|
||||||
it 'should install oracle-jre' do
|
it 'installs oracle-jre' do
|
||||||
pp = <<-EOS
|
apply_manifest(oracle_jre, expect_failures: true)
|
||||||
class { 'java':
|
|
||||||
distribution => 'oracle-jre',
|
|
||||||
}
|
|
||||||
EOS
|
|
||||||
|
|
||||||
apply_manifest(pp, :expect_failures => true)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
describe 'jdk' do
|
describe 'jdk' do
|
||||||
it 'should install oracle-jdk' do
|
it 'installs oracle-jdk' do
|
||||||
pp = <<-EOS
|
apply_manifest(oracle_jdk, expect_failures: true)
|
||||||
class { 'java':
|
|
||||||
distribution => 'oracle-jdk',
|
|
||||||
}
|
|
||||||
EOS
|
|
||||||
|
|
||||||
apply_manifest(pp, :expect_failures => true)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'failure cases' do
|
context 'with failure cases' do
|
||||||
# C14711
|
# C14711
|
||||||
# SLES 10 returns an exit code of 0 on zypper failure
|
# SLES 10 returns an exit code of 0 on zypper failure
|
||||||
unless fact('operatingsystem') == 'SLES' and fact('operatingsystemrelease') < '11'
|
unless fact('operatingsystem') == 'SLES' && fact('operatingsystemrelease') < '11'
|
||||||
it 'should fail to install java with an incorrect version' do
|
it 'fails to install java with an incorrect version' do
|
||||||
pp = <<-EOS
|
apply_manifest(incorrect_version, expect_failures: true)
|
||||||
class { 'java':
|
|
||||||
version => '14.5',
|
|
||||||
}
|
|
||||||
EOS
|
|
||||||
|
|
||||||
apply_manifest(pp, :expect_failures => true)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# C14712
|
# C14712
|
||||||
it 'should fail to install java with a blank version' do
|
it 'fails to install java with a blank version' do
|
||||||
pp = <<-EOS
|
apply_manifest(blank_version, expect_failures: true)
|
||||||
class { 'java':
|
|
||||||
version => '',
|
|
||||||
}
|
|
||||||
EOS
|
|
||||||
|
|
||||||
apply_manifest(pp, :expect_failures => true)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# C14713
|
# C14713
|
||||||
it 'should fail to install java with an incorrect distribution' do
|
it 'fails to install java with an incorrect distribution' do
|
||||||
pp = <<-EOS
|
apply_manifest(incorrect_distro, expect_failures: true)
|
||||||
class { 'java':
|
|
||||||
distribution => 'xyz',
|
|
||||||
}
|
|
||||||
EOS
|
|
||||||
|
|
||||||
apply_manifest(pp, :expect_failures => true)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# C14714
|
# C14714
|
||||||
it 'should fail to install java with a blank distribution' do
|
it 'fails to install java with a blank distribution' do
|
||||||
pp = <<-EOS
|
apply_manifest(blank_distro, expect_failures: true)
|
||||||
class { 'java':
|
|
||||||
distribution => '',
|
|
||||||
}
|
|
||||||
EOS
|
|
||||||
|
|
||||||
apply_manifest(pp, :expect_failures => true)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# C14715
|
# C14715
|
||||||
it 'should fail to install java with an incorrect package' do
|
it 'fails to install java with an incorrect package' do
|
||||||
pp = <<-EOS
|
apply_manifest(incorrect_package, expect_failures: true)
|
||||||
class { 'java':
|
|
||||||
package => 'xyz',
|
|
||||||
}
|
|
||||||
EOS
|
|
||||||
|
|
||||||
apply_manifest(pp, :expect_failures => true)
|
|
||||||
end
|
end
|
||||||
# C14715
|
|
||||||
it 'should fail to install java with an incorrect package' do
|
|
||||||
pp = <<-EOS
|
|
||||||
class { 'java':
|
|
||||||
package => 'xyz',
|
|
||||||
}
|
|
||||||
EOS
|
|
||||||
|
|
||||||
apply_manifest(pp, :expect_failures => true)
|
|
||||||
end
|
|
||||||
# C14717
|
# C14717
|
||||||
# C14719
|
# C14719
|
||||||
# C14725
|
# C14725
|
||||||
it 'should fail on debian or RHEL when passed fake java_alternative and path' do
|
it 'fails on debian or RHEL when passed fake java_alternative and path' do
|
||||||
pp = <<-EOS
|
if fact('osfamily') == 'Debian' || fact('osfamily') == 'RedHat'
|
||||||
class { 'java':
|
apply_manifest(bogus_alternative, expect_failures: true)
|
||||||
java_alternative => 'whatever',
|
|
||||||
java_alternative_path => '/whatever',
|
|
||||||
}
|
|
||||||
EOS
|
|
||||||
|
|
||||||
if fact('osfamily') == 'Debian' or fact('osfamily') == 'RedHat'
|
|
||||||
apply_manifest(pp, :expect_failures => true)
|
|
||||||
else
|
else
|
||||||
apply_manifest(pp, :catch_failures => true)
|
apply_manifest(bogus_alternative, catch_failures: true)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,286 +1,353 @@
|
|||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe 'java', :type => :class do
|
describe 'java', type: :class do
|
||||||
|
context 'when select openjdk for Centos 5.8' do
|
||||||
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '5.8', architecture: 'x86_64' } }
|
||||||
|
|
||||||
context 'select openjdk for Centos 5.8' do
|
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '5.8', :architecture => 'x86_64'} }
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.6.0/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.6.0/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select openjdk for Centos 6.3' do
|
context 'when select openjdk for Centos 6.3' do
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '6.3', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '6.3', architecture: 'x86_64' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select openjdk for Centos 7.1.1503' do
|
context 'when select openjdk for Centos 7.1.1503' do
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '7.1.1503', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '7.1.1503', architecture: 'x86_64' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk-devel') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select openjdk for Centos 6.2' do
|
context 'when select openjdk for Centos 6.2' do
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '6.2', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '6.2', architecture: 'x86_64' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
||||||
it { is_expected.to_not contain_exec('update-java-alternatives') }
|
it { is_expected.not_to contain_exec('update-java-alternatives') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select Oracle JRE with alternatives for Centos 6.3' do
|
context 'when select Oracle JRE with alternatives for Centos 6.3' do
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '6.3', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '6.3', architecture: 'x86_64' } }
|
||||||
let(:params) { { 'package' => 'jre', 'java_alternative' => '/usr/bin/java', 'java_alternative_path' => '/usr/java/jre1.7.0_67/bin/java'} }
|
let(:params) { { 'package' => 'jre', 'java_alternative' => '/usr/bin/java', 'java_alternative_path' => '/usr/java/jre1.7.0_67/bin/java' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('jre') }
|
it { is_expected.to contain_package('java').with_name('jre') }
|
||||||
it { is_expected.to contain_exec('create-java-alternatives').with_command('alternatives --install /usr/bin/java java /usr/java/jre1.7.0_67/bin/java 20000') }
|
it { is_expected.to contain_exec('create-java-alternatives').with_command('alternatives --install /usr/bin/java java /usr/java/jre1.7.0_67/bin/java 20000') }
|
||||||
it { is_expected.to contain_exec('update-java-alternatives').with_command('alternatives --set java /usr/java/jre1.7.0_67/bin/java') }
|
it { is_expected.to contain_exec('update-java-alternatives').with_command('alternatives --set java /usr/java/jre1.7.0_67/bin/java') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select openjdk for Fedora 20' do
|
context 'when select openjdk for Fedora 20' do
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '20', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Fedora', operatingsystemrelease: '20', architecture: 'x86_64' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select openjdk for Fedora 21' do
|
context 'when select openjdk for Fedora 21' do
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '21', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Fedora', operatingsystemrelease: '21', architecture: 'x86_64' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk-devel') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-x86_64/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-x86_64/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select passed value for Fedora 20' do
|
context 'when select passed value for Fedora 20' do
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '20', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Fedora', operatingsystemrelease: '20', architecture: 'x86_64' } }
|
||||||
let(:params) { { 'distribution' => 'jre', 'java_home' => '/usr/local/lib/jre/' } }
|
let(:params) { { 'distribution' => 'jre', 'java_home' => '/usr/local/lib/jre/' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/local/lib/jre/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/local/lib/jre/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select passed value for Fedora 21' do
|
context 'when select passed value for Fedora 21' do
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '21', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Fedora', operatingsystemrelease: '21', architecture: 'x86_64' } }
|
||||||
let(:params) { { 'distribution' => 'jre', 'java_home' => '/usr/local/lib/jre/' } }
|
let(:params) { { 'distribution' => 'jre', 'java_home' => '/usr/local/lib/jre/' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk') }
|
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/local/lib/jre/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/local/lib/jre/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select passed value for Fedora 21 with yum option' do
|
context 'when select passed value for Fedora 21 with yum option' do
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '21', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Fedora', operatingsystemrelease: '21', architecture: 'x86_64' } }
|
||||||
let(:params) { { 'distribution' => 'jre' } }
|
let(:params) { { 'distribution' => 'jre', 'package_options' => ['--skip-broken'] } }
|
||||||
let(:params) { { 'package_options' => ['--skip-broken'] } }
|
|
||||||
it { is_expected.to contain_package('java') }
|
it { is_expected.to contain_package('java') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select passed value for Centos 5.3' do
|
context 'when select passed value for Centos 5.3' do
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '5.3', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '5.3', architecture: 'x86_64' } }
|
||||||
let(:params) { { 'package' => 'jdk', 'java_home' => '/usr/local/lib/jre' } }
|
let(:params) { { 'package' => 'jdk', 'java_home' => '/usr/local/lib/jre' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('jdk') }
|
it { is_expected.to contain_package('java').with_name('jdk') }
|
||||||
it { is_expected.to_not contain_exec('update-java-alternatives') }
|
it { is_expected.not_to contain_exec('update-java-alternatives') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select default for Centos 5.3' do
|
context 'when select default for Centos 5.3' do
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '5.3', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '5.3', architecture: 'x86_64' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
||||||
it { is_expected.to_not contain_exec('update-java-alternatives') }
|
it { is_expected.not_to contain_exec('update-java-alternatives') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select default for Debian Wheezy' do
|
context 'when select default for Debian Wheezy' do
|
||||||
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} }
|
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'wheezy', operatingsystemrelease: '7.1', architecture: 'amd64' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('openjdk-7-jdk') }
|
it { is_expected.to contain_package('java').with_name('openjdk-7-jdk') }
|
||||||
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-1.7.0-openjdk-amd64 --jre') }
|
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-1.7.0-openjdk-amd64 --jre') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select Oracle JRE for Debian Wheezy' do
|
context 'when select Oracle JRE for Debian Wheezy' do
|
||||||
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} }
|
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'wheezy', operatingsystemrelease: '7.1', architecture: 'amd64' } }
|
||||||
let(:params) { { 'distribution' => 'oracle-jre' } }
|
let(:params) { { 'distribution' => 'oracle-jre' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('oracle-j2re1.7') }
|
it { is_expected.to contain_package('java').with_name('oracle-j2re1.7') }
|
||||||
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set j2re1.7-oracle --jre') }
|
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set j2re1.7-oracle --jre') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/j2re1.7-oracle/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/j2re1.7-oracle/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select Oracle Java 8 JRE >=u100 for Debian Wheezy' do
|
context 'when select Oracle Java 8 JRE >=u100 for Debian Wheezy' do
|
||||||
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} }
|
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'wheezy', operatingsystemrelease: '7.1', architecture: 'amd64' } }
|
||||||
let(:params) { { 'distribution' => 'oracle-java8-jre' } }
|
let(:params) { { 'distribution' => 'oracle-java8-jre' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('oracle-java8-jre') }
|
it { is_expected.to contain_package('java').with_name('oracle-java8-jre') }
|
||||||
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set jre-8-oracle-x64 --jre') }
|
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set jre-8-oracle-x64 --jre') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select Oracle Java 8 JDK >=u100 for Debian Wheezy' do
|
context 'when select Oracle Java 8 JDK >=u100 for Debian Wheezy' do
|
||||||
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} }
|
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'wheezy', operatingsystemrelease: '7.1', architecture: 'amd64' } }
|
||||||
let(:params) { { 'distribution' => 'oracle-java8-jdk' } }
|
let(:params) { { 'distribution' => 'oracle-java8-jdk' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('oracle-java8-jdk') }
|
it { is_expected.to contain_package('java').with_name('oracle-java8-jdk') }
|
||||||
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set jdk-8-oracle-x64 --jre') }
|
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set jdk-8-oracle-x64 --jre') }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when select OpenJDK JRE for Debian Wheezy' do
|
||||||
context 'select OpenJDK JRE for Debian Wheezy' do
|
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'wheezy', operatingsystemrelease: '7.1', architecture: 'amd64' } }
|
||||||
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} }
|
|
||||||
let(:params) { { 'distribution' => 'jre' } }
|
let(:params) { { 'distribution' => 'jre' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('openjdk-7-jre-headless') }
|
it { is_expected.to contain_package('java').with_name('openjdk-7-jre-headless') }
|
||||||
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-1.7.0-openjdk-amd64 --jre-headless') }
|
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-1.7.0-openjdk-amd64 --jre-headless') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select default for Debian Squeeze' do
|
context 'when select default for Debian Squeeze' do
|
||||||
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'squeeze', :operatingsystemrelease => '6.0.5', :architecture => 'amd64',} }
|
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'squeeze', operatingsystemrelease: '6.0.5', architecture: 'amd64' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('openjdk-6-jdk') }
|
it { is_expected.to contain_package('java').with_name('openjdk-6-jdk') }
|
||||||
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-openjdk-amd64 --jre') }
|
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-openjdk-amd64 --jre') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select Oracle JRE for Debian Squeeze' do
|
context 'when select Oracle JRE for Debian Squeeze' do
|
||||||
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'squeeze', :operatingsystemrelease => '6.0.5', :architecture => 'amd64',} }
|
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'squeeze', operatingsystemrelease: '6.0.5', architecture: 'amd64' } }
|
||||||
let(:params) { { 'distribution' => 'sun-jre', } }
|
let(:params) { { 'distribution' => 'sun-jre' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('sun-java6-jre') }
|
it { is_expected.to contain_package('java').with_name('sun-java6-jre') }
|
||||||
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-sun --jre') }
|
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-sun --jre') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-6-sun/jre/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-6-sun/jre/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select OpenJDK JRE for Debian Squeeze' do
|
context 'when select OpenJDK JRE for Debian Squeeze' do
|
||||||
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'squeeze', :operatingsystemrelease => '6.0.5', :architecture => 'amd64',} }
|
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'squeeze', operatingsystemrelease: '6.0.5', architecture: 'amd64' } }
|
||||||
let(:params) { { 'distribution' => 'jre', } }
|
let(:params) { { 'distribution' => 'jre' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('openjdk-6-jre-headless') }
|
it { is_expected.to contain_package('java').with_name('openjdk-6-jre-headless') }
|
||||||
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-openjdk-amd64 --jre-headless') }
|
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-openjdk-amd64 --jre-headless') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-6-openjdk/jre/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-6-openjdk/jre/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select random alternative for Debian Wheezy' do
|
context 'when select random alternative for Debian Wheezy' do
|
||||||
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} }
|
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'wheezy', operatingsystemrelease: '7.1', architecture: 'amd64' } }
|
||||||
let(:params) { { 'java_alternative' => 'bananafish' } }
|
let(:params) { { 'java_alternative' => 'bananafish' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('openjdk-7-jdk') }
|
it { is_expected.to contain_package('java').with_name('openjdk-7-jdk') }
|
||||||
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set bananafish --jre') }
|
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set bananafish --jre') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select jdk for Ubuntu Vivid (15.04)' do
|
context 'when select jdk for Ubuntu Vivid (15.04)' do
|
||||||
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Ubuntu', :lsbdistcodename => 'vivid', :operatingsystemrelease => '15.04', :architecture => 'amd64',} }
|
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Ubuntu', lsbdistcodename: 'vivid', operatingsystemrelease: '15.04', architecture: 'amd64' } }
|
||||||
let(:params) { { 'distribution' => 'jdk' } }
|
let(:params) { { 'distribution' => 'jdk' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('openjdk-8-jdk') }
|
it { is_expected.to contain_package('java').with_name('openjdk-8-jdk') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select jre for Ubuntu Vivid (15.04)' do
|
context 'when select jre for Ubuntu Vivid (15.04)' do
|
||||||
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Ubuntu', :lsbdistcodename => 'vivid', :operatingsystemrelease => '15.04', :architecture => 'amd64',} }
|
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Ubuntu', lsbdistcodename: 'vivid', operatingsystemrelease: '15.04', architecture: 'amd64' } }
|
||||||
let(:params) { { 'distribution' => 'jre' } }
|
let(:params) { { 'distribution' => 'jre' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('openjdk-8-jre-headless') }
|
it { is_expected.to contain_package('java').with_name('openjdk-8-jre-headless') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select openjdk for Amazon Linux' do
|
context 'when select openjdk for Amazon Linux' do
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Amazon', :operatingsystemrelease => '3.4.43-43.43.amzn1.x86_64', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Amazon', operatingsystemrelease: '3.4.43-43.43.amzn1.x86_64', architecture: 'x86_64' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select passed value for Amazon Linux' do
|
context 'when select passed value for Amazon Linux' do
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Amazon', :operatingsystemrelease => '5.3.4.43-43.43.amzn1.x86_64', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Amazon', operatingsystemrelease: '5.3.4.43-43.43.amzn1.x86_64', architecture: 'x86_64' } }
|
||||||
let(:params) { { 'distribution' => 'jre' } }
|
let(:params) { { 'distribution' => 'jre' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select openjdk for Oracle Linux' do
|
context 'when select openjdk for Oracle Linux' do
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'OracleLinux', :operatingsystemrelease => '6.4', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'OracleLinux', operatingsystemrelease: '6.4', architecture: 'x86_64' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select openjdk for Oracle Linux 6.2' do
|
context 'when select openjdk for Oracle Linux 6.2' do
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'OracleLinux', :operatingsystemrelease => '6.2', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'OracleLinux', operatingsystemrelease: '6.2', architecture: 'x86_64' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select passed value for Oracle Linux' do
|
context 'when select passed value for Oracle Linux' do
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'OracleLinux', :operatingsystemrelease => '6.3', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'OracleLinux', operatingsystemrelease: '6.3', architecture: 'x86_64' } }
|
||||||
let(:params) { { 'distribution' => 'jre' } }
|
let(:params) { { 'distribution' => 'jre' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select passed value for Scientific Linux' do
|
context 'when select passed value for Scientific Linux' do
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Scientific', :operatingsystemrelease => '6.4', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Scientific', operatingsystemrelease: '6.4', architecture: 'x86_64' } }
|
||||||
let(:params) { { 'distribution' => 'jre' } }
|
let(:params) { { 'distribution' => 'jre' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select passed value for Scientific Linux CERN (SLC)' do
|
context 'when select passed value for Scientific Linux CERN (SLC)' do
|
||||||
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'SLC', :operatingsystemrelease => '6.4', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'SLC', operatingsystemrelease: '6.4', architecture: 'x86_64' } }
|
||||||
let(:params) { { 'distribution' => 'jre' } }
|
let(:params) { { 'distribution' => 'jre' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select default for OpenSUSE 12.3' do
|
context 'when select default for OpenSUSE 12.3' do
|
||||||
let(:facts) { {:osfamily => 'Suse', :operatingsystem => 'OpenSUSE', :operatingsystemrelease => '12.3', :architecture => 'x86_64'}}
|
let(:facts) { { osfamily: 'Suse', operatingsystem: 'OpenSUSE', operatingsystemrelease: '12.3', architecture: 'x86_64' } }
|
||||||
it { is_expected.to contain_package('java').with_name('java-1_7_0-openjdk-devel')}
|
|
||||||
|
it { is_expected.to contain_package('java').with_name('java-1_7_0-openjdk-devel') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select default for SLES 11.3' do
|
context 'when select default for SLES 11.3' do
|
||||||
let(:facts) { {:osfamily => 'Suse', :operatingsystem => 'SLES', :operatingsystemrelease => '11.3', :architecture => 'x86_64'}}
|
let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '11.3', architecture: 'x86_64' } }
|
||||||
it { should contain_package('java').with_name('java-1_6_0-ibm-devel')}
|
|
||||||
|
it { is_expected.to contain_package('java').with_name('java-1_6_0-ibm-devel') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.6.0-ibm-1.6.0/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.6.0-ibm-1.6.0/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select default for SLES 11.4' do
|
context 'when select default for SLES 11.4' do
|
||||||
let(:facts) { {:osfamily => 'Suse', :operatingsystem => 'SLES', :operatingsystemrelease => '11.4', :architecture => 'x86_64'}}
|
let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '11.4', architecture: 'x86_64' } }
|
||||||
it { should contain_package('java').with_name('java-1_7_1-ibm-devel')}
|
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-ibm-1.7.0/') }
|
it { is_expected.to contain_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.1-ibm-1.7.1/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select default for SLES 12.0' do
|
context 'when select default for SLES 12.0' do
|
||||||
let(:facts) { {:osfamily => 'Suse', :operatingsystem => 'SLES', :operatingsystemrelease => '12.0', :operatingsystemmajrelease => '12', :architecture => 'x86_64'}}
|
let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '12.0', operatingsystemmajrelease: '12', architecture: 'x86_64' } }
|
||||||
it { should contain_package('java').with_name('java-1_7_0-openjdk-devel')}
|
|
||||||
|
it { is_expected.to contain_package('java').with_name('java-1_7_0-openjdk-devel') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select default for SLES 12.1' do
|
context 'when select default for SLES 12.1' do
|
||||||
let(:facts) { {:osfamily => 'Suse', :operatingsystem => 'SLES', :operatingsystemrelease => '12.1', :operatingsystemmajrelease => '12', :architecture => 'x86_64'}}
|
let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '12.1', operatingsystemmajrelease: '12', architecture: 'x86_64' } }
|
||||||
it { should contain_package('java').with_name('java-1_8_0-openjdk-devel')}
|
|
||||||
|
it { is_expected.to contain_package('java').with_name('java-1_8_0-openjdk-devel') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select jdk for OpenBSD' do
|
context 'when select jdk for OpenBSD' do
|
||||||
let(:facts) { {:osfamily => 'OpenBSD', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'OpenBSD', architecture: 'x86_64' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('jdk') }
|
it { is_expected.to contain_package('java').with_name('jdk') }
|
||||||
it { is_expected.to 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
|
end
|
||||||
|
|
||||||
context 'select jre for OpenBSD' do
|
context 'when select jre for OpenBSD' do
|
||||||
let(:facts) { {:osfamily => 'OpenBSD', :architecture => 'x86_64'} }
|
let(:facts) { { osfamily: 'OpenBSD', architecture: 'x86_64' } }
|
||||||
let(:params) { { 'distribution' => 'jre' } }
|
let(:params) { { 'distribution' => 'jre' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('jre') }
|
it { is_expected.to contain_package('java').with_name('jre') }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'custom java package' do
|
||||||
|
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'jessie', operatingsystemrelease: '8.6', architecture: 'amd64' } }
|
||||||
|
|
||||||
|
context 'when 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 'with 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
|
describe 'incompatible OSs' do
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
# C14706
|
# C14706
|
||||||
:osfamily => 'windows',
|
osfamily: 'windows',
|
||||||
:operatingsystem => 'windows',
|
operatingsystem: 'windows',
|
||||||
:operatingsystemrelease => '8.1',
|
operatingsystemrelease: '8.1',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
# C14707
|
# C14707
|
||||||
:osfamily => 'Darwin',
|
osfamily: 'Darwin',
|
||||||
:operatingsystem => 'Darwin',
|
operatingsystem: 'Darwin',
|
||||||
:operatingsystemrelease => '13.3.0',
|
operatingsystemrelease: '13.3.0',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
# C14708
|
# C14708
|
||||||
:osfamily => 'AIX',
|
osfamily: 'AIX',
|
||||||
:operatingsystem => 'AIX',
|
operatingsystem: 'AIX',
|
||||||
:operatingsystemrelease => '7100-02-00-000',
|
operatingsystemrelease: '7100-02-00-000',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
# C14708
|
# C14708
|
||||||
:osfamily => 'AIX',
|
osfamily: 'AIX',
|
||||||
:operatingsystem => 'AIX',
|
operatingsystem: 'AIX',
|
||||||
:operatingsystemrelease => '6100-07-04-1216',
|
operatingsystemrelease: '6100-07-04-1216',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
# C14708
|
# C14708
|
||||||
:osfamily => 'AIX',
|
osfamily: 'AIX',
|
||||||
:operatingsystem => 'AIX',
|
operatingsystem: 'AIX',
|
||||||
:operatingsystemrelease => '5300-12-01-1016',
|
operatingsystemrelease: '5300-12-01-1016',
|
||||||
},
|
},
|
||||||
].each do |facts|
|
].each do |facts|
|
||||||
let(:facts) { facts }
|
let(:facts) { facts }
|
||||||
|
|
||||||
it "is_expected.to fail on #{facts[:operatingsystem]} #{facts[:operatingsystemrelease]}" do
|
it "is_expected.to fail on #{facts[:operatingsystem]} #{facts[:operatingsystemrelease]}" do
|
||||||
expect { catalogue }.to raise_error Puppet::Error, /unsupported platform/
|
expect { catalogue }.to raise_error Puppet::Error, %r{unsupported platform}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,197 +1,285 @@
|
|||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe 'java::oracle', :type => :define do
|
oracle_url = 'http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz'
|
||||||
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 6 JDK' do
|
describe 'java::oracle', type: :define do
|
||||||
let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jdk'} }
|
context 'with CentOS 64-bit' do
|
||||||
let :title do 'jdk6' end
|
let(:facts) { { kernel: 'Linux', os: { family: 'RedHat', architecture: 'x86_64', name: 'CentOS', release: { full: '6.0' } } } }
|
||||||
it { is_expected.to contain_archive('/tmp/jdk-6u45-linux-x64-rpm.bin')}
|
|
||||||
|
context 'when 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').with_command('sh /tmp/jdk-6u45-linux-x64-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jdk*.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 6').that_requires('Archive[/tmp/jdk-6u45-linux-x64-rpm.bin]') }
|
it { is_expected.to contain_exec('Install Oracle java_se jdk 6').that_requires('Archive[/tmp/jdk-6u45-linux-x64-rpm.bin]') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'Oracle Java SE 7 JDK' do
|
context 'when Oracle Java SE 7 JDK' do
|
||||||
let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jdk'} }
|
let(:params) { { ensure: 'present', version: '7', java_se: 'jdk' } }
|
||||||
let :title do 'jdk7' end
|
let(:title) { 'jdk7' }
|
||||||
it { is_expected.to contain_archive('/tmp/jdk-7u80-linux-x64.rpm')}
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/jdk-7u80-linux-x64.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 7').with_command('rpm --force -iv /tmp/jdk-7u80-linux-x64.rpm') }
|
it { is_expected.to contain_exec('Install Oracle java_se jdk 7').with_command('rpm --force -iv /tmp/jdk-7u80-linux-x64.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 7').that_requires('Archive[/tmp/jdk-7u80-linux-x64.rpm]') }
|
it { is_expected.to contain_exec('Install Oracle java_se jdk 7').that_requires('Archive[/tmp/jdk-7u80-linux-x64.rpm]') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'Oracle Java SE 8 JDK' do
|
context 'when Oracle Java SE 8 JDK' do
|
||||||
let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jdk'} }
|
let(:params) { { ensure: 'present', version: '8', java_se: 'jdk' } }
|
||||||
let :title do 'jdk8' end
|
let(:title) { 'jdk8' }
|
||||||
it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.rpm')}
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 8').with_command('rpm --force -iv /tmp/jdk-8u131-linux-x64.rpm') }
|
it { is_expected.to contain_exec('Install Oracle java_se jdk 8').with_command('rpm --force -iv /tmp/jdk-8u131-linux-x64.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 8').that_requires('Archive[/tmp/jdk-8u131-linux-x64.rpm]') }
|
it { is_expected.to contain_exec('Install Oracle java_se jdk 8').that_requires('Archive[/tmp/jdk-8u131-linux-x64.rpm]') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'Oracle Java SE 6 JRE' do
|
context 'when Oracle Java SE 6 JRE' do
|
||||||
let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jre'} }
|
let(:params) { { ensure: 'present', version: '6', java_se: 'jre' } }
|
||||||
let :title do 'jre6' end
|
let(:title) { 'jre6' }
|
||||||
it { is_expected.to contain_archive('/tmp/jre-6u45-linux-x64-rpm.bin')}
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/jre-6u45-linux-x64-rpm.bin') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 6').with_command('sh /tmp/jre-6u45-linux-x64-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jre*.rpm') }
|
it { is_expected.to contain_exec('Install Oracle java_se jre 6').with_command('sh /tmp/jre-6u45-linux-x64-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jre*.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 6').that_requires('Archive[/tmp/jre-6u45-linux-x64-rpm.bin]') }
|
it { is_expected.to contain_exec('Install Oracle java_se jre 6').that_requires('Archive[/tmp/jre-6u45-linux-x64-rpm.bin]') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'Oracle Java SE 7 JRE' do
|
context 'when Oracle Java SE 7 JRE' do
|
||||||
let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jre'} }
|
let(:params) { { ensure: 'present', version: '7', java_se: 'jre' } }
|
||||||
let :title do 'jre7' end
|
let(:title) { 'jre7' }
|
||||||
it { is_expected.to contain_archive('/tmp/jre-7u80-linux-x64.rpm')}
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/jre-7u80-linux-x64.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 7').with_command('rpm --force -iv /tmp/jre-7u80-linux-x64.rpm') }
|
it { is_expected.to contain_exec('Install Oracle java_se jre 7').with_command('rpm --force -iv /tmp/jre-7u80-linux-x64.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 7').that_requires('Archive[/tmp/jre-7u80-linux-x64.rpm]') }
|
it { is_expected.to contain_exec('Install Oracle java_se jre 7').that_requires('Archive[/tmp/jre-7u80-linux-x64.rpm]') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select Oracle Java SE 8 JRE' do
|
context 'when select Oracle Java SE 8 JRE' do
|
||||||
let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jre'} }
|
let(:params) { { ensure: 'present', version: '8', java_se: 'jre' } }
|
||||||
let :title do 'jre8' end
|
let(:title) { 'jre8' }
|
||||||
it { is_expected.to contain_archive('/tmp/jre-8u131-linux-x64.rpm')}
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/jre-8u131-linux-x64.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 8').with_command('rpm --force -iv /tmp/jre-8u131-linux-x64.rpm') }
|
it { is_expected.to contain_exec('Install Oracle java_se jre 8').with_command('rpm --force -iv /tmp/jre-8u131-linux-x64.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 8').that_requires('Archive[/tmp/jre-8u131-linux-x64.rpm]') }
|
it { is_expected.to contain_exec('Install Oracle java_se jre 8').that_requires('Archive[/tmp/jre-8u131-linux-x64.rpm]') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'Pass URL to url parameter' do
|
context 'when passing URL to url parameter' do
|
||||||
let(:params) { {
|
let(:params) do
|
||||||
:ensure => 'present',
|
{
|
||||||
:version_major => '8u131',
|
ensure: 'present',
|
||||||
:version_minor => 'b11',
|
version_major: '8u131',
|
||||||
:java_se => 'jdk',
|
version_minor: 'b11',
|
||||||
:url => 'http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm',
|
java_se: 'jdk',
|
||||||
:url_hash => 'ignored',
|
url: 'http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm',
|
||||||
} }
|
url_hash: 'ignored',
|
||||||
let :title do 'jdk8' end
|
}
|
||||||
it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.rpm').with_source('http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm') }
|
end
|
||||||
|
let(:title) { 'jdk8' }
|
||||||
|
|
||||||
|
it {
|
||||||
|
is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.rpm')
|
||||||
|
.with_source('http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm')
|
||||||
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'Pass a hash to url_hash parameter' do
|
context 'when passing a hash to url_hash parameter' do
|
||||||
let(:params) { {
|
let(:params) do
|
||||||
:ensure => 'present',
|
{
|
||||||
:version_major => '8u131',
|
ensure: 'present',
|
||||||
:version_minor => 'b11',
|
version_major: '8u131',
|
||||||
:java_se => 'jdk',
|
version_minor: 'b11',
|
||||||
:url_hash => 'abcdef01234567890',
|
java_se: 'jdk',
|
||||||
} }
|
url_hash: 'abcdef01234567890',
|
||||||
let :title do 'jdk8' end
|
}
|
||||||
|
end
|
||||||
|
let(:title) { 'jdk8' }
|
||||||
|
|
||||||
it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.rpm').with_source('http://download.oracle.com/otn-pub/java/jdk//8u131-b11/abcdef01234567890/jdk-8u131-linux-x64.rpm') }
|
it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.rpm').with_source('http://download.oracle.com/otn-pub/java/jdk//8u131-b11/abcdef01234567890/jdk-8u131-linux-x64.rpm') }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'On CentOS 32-bit' do
|
context 'when on CentOS 32-bit' do
|
||||||
let(:facts) { {:kernel => 'Linux', :os => { :family => 'RedHat', :architecture => 'i386', :name => 'CentOS', :release => { :full => '6.6' } } } }
|
let(:facts) { { kernel: 'Linux', os: { family: 'RedHat', architecture: 'i386', name: 'CentOS', release: { full: '6.6' } } } }
|
||||||
|
|
||||||
context 'select Oracle Java SE 6 JDK on RedHat family, 32-bit' do
|
context 'when selecting Oracle Java SE 6 JDK on RedHat family, 32-bit' do
|
||||||
let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jdk'} }
|
let(:params) { { ensure: 'present', version: '6', java_se: 'jdk' } }
|
||||||
let :title do 'jdk6' end
|
let(:title) { 'jdk6' }
|
||||||
it { is_expected.to contain_archive('/tmp/jdk-6u45-linux-i586-rpm.bin')}
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/jdk-6u45-linux-i586-rpm.bin') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 6').with_command('sh /tmp/jdk-6u45-linux-i586-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jdk*.rpm') }
|
it { is_expected.to contain_exec('Install Oracle java_se jdk 6').with_command('sh /tmp/jdk-6u45-linux-i586-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jdk*.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 6').that_requires('Archive[/tmp/jdk-6u45-linux-i586-rpm.bin]') }
|
it { is_expected.to contain_exec('Install Oracle java_se jdk 6').that_requires('Archive[/tmp/jdk-6u45-linux-i586-rpm.bin]') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select Oracle Java SE 7 JDK on RedHat family, 32-bit' do
|
context 'when selecting Oracle Java SE 7 JDK on RedHat family, 32-bit' do
|
||||||
let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jdk'} }
|
let(:params) { { ensure: 'present', version: '7', java_se: 'jdk' } }
|
||||||
let :title do 'jdk7' end
|
let(:title) { 'jdk7' }
|
||||||
it { is_expected.to contain_archive('/tmp/jdk-7u80-linux-i586.rpm')}
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/jdk-7u80-linux-i586.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 7').with_command('rpm --force -iv /tmp/jdk-7u80-linux-i586.rpm') }
|
it { is_expected.to contain_exec('Install Oracle java_se jdk 7').with_command('rpm --force -iv /tmp/jdk-7u80-linux-i586.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 7').that_requires('Archive[/tmp/jdk-7u80-linux-i586.rpm]') }
|
it { is_expected.to contain_exec('Install Oracle java_se jdk 7').that_requires('Archive[/tmp/jdk-7u80-linux-i586.rpm]') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select Oracle Java SE 8 JDK on RedHat family, 32-bit' do
|
context 'when selecting Oracle Java SE 8 JDK on RedHat family, 32-bit' do
|
||||||
let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jdk'} }
|
let(:params) { { ensure: 'present', version: '8', java_se: 'jdk' } }
|
||||||
let :title do 'jdk8' end
|
let(:title) { 'jdk8' }
|
||||||
it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-i586.rpm')}
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-i586.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 8').with_command('rpm --force -iv /tmp/jdk-8u131-linux-i586.rpm') }
|
it { is_expected.to contain_exec('Install Oracle java_se jdk 8').with_command('rpm --force -iv /tmp/jdk-8u131-linux-i586.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 8').that_requires('Archive[/tmp/jdk-8u131-linux-i586.rpm]') }
|
it { is_expected.to contain_exec('Install Oracle java_se jdk 8').that_requires('Archive[/tmp/jdk-8u131-linux-i586.rpm]') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select Oracle Java SE 6 JRE on RedHat family, 32-bit' do
|
context 'when selecting Oracle Java SE 6 JRE on RedHat family, 32-bit' do
|
||||||
let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jre'} }
|
let(:params) { { ensure: 'present', version: '6', java_se: 'jre' } }
|
||||||
let :title do 'jdk6' end
|
let(:title) { 'jdk6' }
|
||||||
it { is_expected.to contain_archive('/tmp/jre-6u45-linux-i586-rpm.bin')}
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/jre-6u45-linux-i586-rpm.bin') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 6').with_command('sh /tmp/jre-6u45-linux-i586-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jre*.rpm') }
|
it { is_expected.to contain_exec('Install Oracle java_se jre 6').with_command('sh /tmp/jre-6u45-linux-i586-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jre*.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 6').that_requires('Archive[/tmp/jre-6u45-linux-i586-rpm.bin]') }
|
it { is_expected.to contain_exec('Install Oracle java_se jre 6').that_requires('Archive[/tmp/jre-6u45-linux-i586-rpm.bin]') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select Oracle Java SE 7 JRE on RedHat family, 32-bit' do
|
context 'when select Oracle Java SE 7 JRE on RedHat family, 32-bit' do
|
||||||
let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jre'} }
|
let(:params) { { ensure: 'present', version: '7', java_se: 'jre' } }
|
||||||
let :title do 'jdk7' end
|
let(:title) { 'jdk7' }
|
||||||
it { is_expected.to contain_archive('/tmp/jre-7u80-linux-i586.rpm')}
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/jre-7u80-linux-i586.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 7').with_command('rpm --force -iv /tmp/jre-7u80-linux-i586.rpm') }
|
it { is_expected.to contain_exec('Install Oracle java_se jre 7').with_command('rpm --force -iv /tmp/jre-7u80-linux-i586.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 7').that_requires('Archive[/tmp/jre-7u80-linux-i586.rpm]') }
|
it { is_expected.to contain_exec('Install Oracle java_se jre 7').that_requires('Archive[/tmp/jre-7u80-linux-i586.rpm]') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'select Oracle Java SE 8 JRE on RedHat family, 32-bit' do
|
context 'when select Oracle Java SE 8 JRE on RedHat family, 32-bit' do
|
||||||
let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jre'} }
|
let(:params) { { ensure: 'present', version: '8', java_se: 'jre' } }
|
||||||
let :title do 'jdk8' end
|
let(:title) { 'jdk8' }
|
||||||
it { is_expected.to contain_archive('/tmp/jre-8u131-linux-i586.rpm')}
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/jre-8u131-linux-i586.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 8').with_command('rpm --force -iv /tmp/jre-8u131-linux-i586.rpm') }
|
it { is_expected.to contain_exec('Install Oracle java_se jre 8').with_command('rpm --force -iv /tmp/jre-8u131-linux-i586.rpm') }
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 8').that_requires('Archive[/tmp/jre-8u131-linux-i586.rpm]') }
|
it { is_expected.to contain_exec('Install Oracle java_se jre 8').that_requires('Archive[/tmp/jre-8u131-linux-i586.rpm]') }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'with Ubuntu 64-bit' do
|
||||||
|
let(:facts) { { kernel: 'Linux', os: { family: 'Debian', architecture: 'amd64', name: 'Ubuntu', release: { full: '16.04' } } } }
|
||||||
|
|
||||||
|
context 'when 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 'with 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 'with 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 'with 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 'when 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 'when 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 'when passing 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
|
describe 'incompatible OSes' do
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
# C14706
|
# C14706
|
||||||
:kernel => 'Windows',
|
kernel: 'Windows',
|
||||||
:os => {
|
os: {
|
||||||
:family => 'Windows',
|
family: 'Windows',
|
||||||
:name => 'Windows',
|
name: 'Windows',
|
||||||
:release => {
|
release: {
|
||||||
:full => '8.1'
|
full: '8.1',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
# C14707
|
# C14707
|
||||||
:kernel => 'Darwin',
|
kernel: 'Darwin',
|
||||||
:os => {
|
os: {
|
||||||
:family => 'Darwin',
|
family: 'Darwin',
|
||||||
:name => 'Darwin',
|
name: 'Darwin',
|
||||||
:release => {
|
release: {
|
||||||
:full => '13.3.0'
|
full: '13.3.0',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
# C14708
|
# C14708
|
||||||
:kernel => 'AIX',
|
kernel: 'AIX',
|
||||||
:os => {
|
os: {
|
||||||
:family => 'AIX',
|
family: 'AIX',
|
||||||
:name => 'AIX',
|
name: 'AIX',
|
||||||
:release => {
|
release: {
|
||||||
:full => '7100-02-00-000'
|
full: '7100-02-00-000',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
# C14709
|
# C14709
|
||||||
:kernel => 'AIX',
|
kernel: 'AIX',
|
||||||
:os => {
|
os: {
|
||||||
:family => 'AIX',
|
family: 'AIX',
|
||||||
:name => 'AIX',
|
name: 'AIX',
|
||||||
:release => {
|
release: {
|
||||||
:full => '6100-07-04-1216'
|
full: '6100-07-04-1216',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
# C14710
|
# C14710
|
||||||
:kernel => 'AIX',
|
kernel: 'AIX',
|
||||||
:os => {
|
os: {
|
||||||
:family => 'AIX',
|
family: 'AIX',
|
||||||
:name => 'AIX',
|
name: 'AIX',
|
||||||
:release => {
|
release: {
|
||||||
:full => '5300-12-01-1016'
|
full: '5300-12-01-1016',
|
||||||
}
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
|
||||||
].each do |facts|
|
].each do |facts|
|
||||||
let(:facts) { facts }
|
let(:facts) { facts }
|
||||||
let :title do 'jdk' end
|
let(:title) { 'jdk' }
|
||||||
|
|
||||||
it "is_expected.to fail on #{facts[:os][:name]} #{facts[:os][:release][:full]}" do
|
it "is_expected.to fail on #{facts[:os][:name]} #{facts[:os][:release][:full]}" do
|
||||||
expect { catalogue }.to raise_error Puppet::Error, /unsupported platform/
|
expect { catalogue }.to raise_error Puppet::Error, %r{unsupported platform}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,8 +1,23 @@
|
|||||||
#This file is generated by ModuleSync, do not edit.
|
|
||||||
require 'puppetlabs_spec_helper/module_spec_helper'
|
require 'puppetlabs_spec_helper/module_spec_helper'
|
||||||
|
require 'rspec-puppet-facts'
|
||||||
|
include RspecPuppetFacts
|
||||||
|
|
||||||
# put local configuration and setup into spec_helper_local
|
default_facts = {
|
||||||
begin
|
puppetversion: Puppet.version,
|
||||||
require 'spec_helper_local'
|
facterversion: Facter.version,
|
||||||
rescue LoadError
|
}
|
||||||
|
|
||||||
|
default_facts_path = File.expand_path(File.join(File.dirname(__FILE__), 'default_facts.yml'))
|
||||||
|
default_module_facts_path = File.expand_path(File.join(File.dirname(__FILE__), 'default_module_facts.yml'))
|
||||||
|
|
||||||
|
if File.exist?(default_facts_path) && File.readable?(default_facts_path)
|
||||||
|
default_facts.merge!(YAML.safe_load(File.read(default_facts_path)))
|
||||||
|
end
|
||||||
|
|
||||||
|
if File.exist?(default_module_facts_path) && File.readable?(default_module_facts_path)
|
||||||
|
default_facts.merge!(YAML.safe_load(File.read(default_module_facts_path)))
|
||||||
|
end
|
||||||
|
|
||||||
|
RSpec.configure do |c|
|
||||||
|
c.default_facts = default_facts
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -6,11 +6,11 @@ run_puppet_install_helper
|
|||||||
install_module_on(hosts)
|
install_module_on(hosts)
|
||||||
install_module_dependencies_on(hosts)
|
install_module_dependencies_on(hosts)
|
||||||
|
|
||||||
UNSUPPORTED_PLATFORMS = [ "Darwin", "windows" ]
|
UNSUPPORTED_PLATFORMS = %w[Darwin windows].freeze
|
||||||
|
|
||||||
unless ENV["RS_PROVISION"] == "no" or ENV["BEAKER_provision"] == "no"
|
unless ENV['RS_PROVISION'] == 'no' || ENV['BEAKER_provision'] == 'no'
|
||||||
hosts.each do |host|
|
hosts.each do |host|
|
||||||
install_puppet_module_via_pmt_on(host, {module_name: 'puppetlabs-apt'})
|
install_puppet_module_via_pmt_on(host, module_name: 'puppetlabs-apt')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -1,49 +1,54 @@
|
|||||||
require "spec_helper"
|
require 'spec_helper'
|
||||||
|
|
||||||
describe Facter::Util::Fact do
|
java_7_path = '/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java'
|
||||||
before {
|
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.clear
|
||||||
Facter.fact(:kernel).stubs(:value).returns('Linux')
|
Facter.fact(:kernel).stubs(:value).returns('Linux')
|
||||||
}
|
end
|
||||||
|
|
||||||
describe "java_default_home" do
|
context 'when java found in PATH' do
|
||||||
context 'returns java home path when readlink present' do
|
context 'when java is in /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java' do
|
||||||
context 'when java is in HOME/jre/bin/java' do
|
|
||||||
it do
|
it do
|
||||||
java_path_output = <<-EOS
|
unlink_and_delete('./java_test')
|
||||||
/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
|
symlink_and_test(java_7_path, java_7_home)
|
||||||
EOS
|
unlink_and_delete('./java_test')
|
||||||
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
|
|
||||||
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
|
|
||||||
end
|
end
|
||||||
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
|
||||||
|
unlink_and_delete('./java_test')
|
||||||
|
symlink_and_test(java_8_path, java_8_home)
|
||||||
|
unlink_and_delete('./java_test')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when java not present, return nil' do
|
||||||
it do
|
it do
|
||||||
Facter::Util::Resolution.stubs(:exec)
|
Facter::Util::Resolution.stubs(:exec)
|
||||||
Facter::Util::Resolution.expects(:which).with("readlink").at_least(1).returns(false)
|
Facter::Util::Resolution.expects(:which).with('java').at_least(1).returns(false)
|
||||||
expect(Facter.value(:java_default_home)).to be_nil
|
expect(Facter.value(:java_default_home)).to be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,21 +1,17 @@
|
|||||||
require "spec_helper"
|
require 'spec_helper'
|
||||||
|
|
||||||
describe Facter::Util::Fact do
|
describe 'java_libjvm_path' do
|
||||||
before {
|
before(:each) do
|
||||||
Facter.clear
|
Facter.clear
|
||||||
Facter.fact(:kernel).stubs(:value).returns('Linux')
|
Facter.fact(:kernel).stubs(:value).returns('Linux')
|
||||||
java_default_home = '/usr/lib/jvm/java-8-openjdk-amd64'
|
java_default_home = '/usr/lib/jvm/java-8-openjdk-amd64'
|
||||||
Facter.fact(:java_default_home).stubs(:value).returns(java_default_home)
|
Facter.fact(:java_default_home).stubs(:value).returns(java_default_home)
|
||||||
Dir.stubs(:glob).with("#{java_default_home}/jre/lib/**/libjvm.so").returns( ['/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so'])
|
Dir.stubs(:glob).with("#{java_default_home}/jre/lib/**/libjvm.so").returns(['/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so'])
|
||||||
}
|
end
|
||||||
|
|
||||||
describe "java_libjvm_path" do
|
context 'when on Linux, return libjvm path' do
|
||||||
context 'returns libjvm path' do
|
|
||||||
context 'on Linux' do
|
|
||||||
it do
|
it do
|
||||||
expect(Facter.value(:java_libjvm_path)).to eql "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server"
|
expect(Facter.value(:java_libjvm_path)).to eql '/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server'
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,21 +1,20 @@
|
|||||||
require "spec_helper"
|
require 'spec_helper'
|
||||||
|
|
||||||
describe Facter::Util::Fact do
|
describe 'java_major_version' do
|
||||||
before {
|
before(:each) do
|
||||||
Facter.clear
|
Facter.clear
|
||||||
}
|
end
|
||||||
|
|
||||||
describe "java_major_version" do
|
context 'when java_version fact present, returns major version' do
|
||||||
context 'returns major version when java_version fact present' do
|
|
||||||
before :each do
|
before :each do
|
||||||
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
|
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
|
||||||
end
|
end
|
||||||
it do
|
it do
|
||||||
expect(Facter.fact(:java_major_version).value).to eq("7")
|
expect(Facter.fact(:java_major_version).value).to eq('7')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'returns nil when java not present' do
|
context 'when java not present, returns nil' do
|
||||||
before :each do
|
before :each do
|
||||||
Facter.fact(:java_version).stubs(:value).returns(nil)
|
Facter.fact(:java_version).stubs(:value).returns(nil)
|
||||||
end
|
end
|
||||||
@@ -23,5 +22,4 @@ describe Facter::Util::Fact do
|
|||||||
expect(Facter.fact(:java_major_version).value).to be_nil
|
expect(Facter.fact(:java_major_version).value).to be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,24 +1,20 @@
|
|||||||
require "spec_helper"
|
require 'spec_helper'
|
||||||
|
|
||||||
describe Facter::Util::Fact do
|
describe 'java_patch_level' do
|
||||||
before {
|
before(:each) do
|
||||||
Facter.clear
|
Facter.clear
|
||||||
}
|
end
|
||||||
|
|
||||||
describe "java_patch_level" do
|
context 'when java is installed returns java patch version extracted from java_version fact' do
|
||||||
context "if java is installed" do
|
|
||||||
context 'returns java patch version extracted from java_version fact' do
|
|
||||||
before :each do
|
before :each do
|
||||||
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
|
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
|
||||||
end
|
end
|
||||||
it do
|
it do
|
||||||
expect(Facter.fact(:java_patch_level).value).to eq("71")
|
expect(Facter.fact(:java_patch_level).value).to eq('71')
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "if java is not installed" do
|
context 'when java is not installed returns nil' do
|
||||||
context 'returns nil' do
|
|
||||||
before :each do
|
before :each do
|
||||||
Facter.fact(:java_version).stubs(:value).returns(nil)
|
Facter.fact(:java_version).stubs(:value).returns(nil)
|
||||||
end
|
end
|
||||||
@@ -26,6 +22,4 @@ describe Facter::Util::Fact do
|
|||||||
expect(Facter.fact(:java_patch_level).value).to be_nil
|
expect(Facter.fact(:java_patch_level).value).to be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,92 +1,92 @@
|
|||||||
require "spec_helper"
|
require 'spec_helper'
|
||||||
|
|
||||||
describe Facter::Util::Fact do
|
openjdk_7_output = "Picked up JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true\n"\
|
||||||
before {
|
"openjdk version \"1.7.0_71\"\n"\
|
||||||
|
"OpenJDK Runtime Environment (build 1.7.0_71-b14)\n"\
|
||||||
|
"OpenJDK 64-Bit Server VM (build 24.71-b01, mixed mode)\n"
|
||||||
|
|
||||||
|
jdk_7_hotspot_output = "Picked up JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true\n"\
|
||||||
|
"java version \"1.7.0_71\"\n"\
|
||||||
|
"Java(TM) SE Runtime Environment (build 1.7.0_71-b14)\n"\
|
||||||
|
"Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)\n"
|
||||||
|
|
||||||
|
describe 'java_version' do
|
||||||
|
before(:each) do
|
||||||
Facter.clear
|
Facter.clear
|
||||||
}
|
end
|
||||||
|
|
||||||
describe "java_version" do
|
context 'when java present, returns java version' do
|
||||||
context 'returns java version when java present' do
|
context 'on OpenBSD', with_env: true do
|
||||||
context 'on OpenBSD', :with_env => true do
|
before(:each) do
|
||||||
before do
|
Facter.fact(:operatingsystem).stubs(:value).returns('OpenBSD')
|
||||||
Facter.fact(:operatingsystem).stubs(:value).returns("OpenBSD")
|
|
||||||
end
|
end
|
||||||
let(:facts) { {:operatingsystem => 'OpenBSD'} }
|
let(:facts) { { operatingsystem: 'OpenBSD' } }
|
||||||
|
|
||||||
it do
|
it do
|
||||||
java_version_output = <<-EOS
|
Facter::Util::Resolution.expects(:which).with('java').returns('/usr/local/jdk-1.7.0/jre/bin/java')
|
||||||
openjdk version "1.7.0_71"
|
Facter::Util::Resolution.expects(:exec).with('java -Xmx12m -version 2>&1').returns(openjdk_7_output)
|
||||||
OpenJDK Runtime Environment (build 1.7.0_71-b14)
|
expect(Facter.value(:java_version)).to eq('1.7.0_71')
|
||||||
OpenJDK 64-Bit Server VM (build 24.71-b01, mixed mode)
|
|
||||||
EOS
|
|
||||||
Facter::Util::Resolution.expects(:which).with("java").returns('/usr/local/jdk-1.7.0/jre/bin/java')
|
|
||||||
Facter::Util::Resolution.expects(:exec).with("java -Xmx12m -version 2>&1").returns(java_version_output)
|
|
||||||
expect(Facter.value(:java_version)).to eq("1.7.0_71")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
context 'on Darwin' do
|
context 'when on Darwin' do
|
||||||
before do
|
before(:each) do
|
||||||
Facter.fact(:operatingsystem).stubs(:value).returns("Darwin")
|
Facter.fact(:operatingsystem).stubs(:value).returns('Darwin')
|
||||||
end
|
end
|
||||||
let(:facts) { {:operatingsystem => 'Darwin'} }
|
let(:facts) { { operatingsystem: 'Darwin' } }
|
||||||
|
|
||||||
it do
|
it do
|
||||||
java_version_output = <<-EOS
|
Facter::Util::Resolution.expects(:exec).with('/usr/libexec/java_home --failfast 2>&1').returns('/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home')
|
||||||
java version "1.7.0_71"
|
Facter::Util::Resolution.expects(:exec).with('java -Xmx12m -version 2>&1').returns(jdk_7_hotspot_output)
|
||||||
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
|
expect(Facter.value(:java_version)).to eql '1.7.0_71'
|
||||||
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
|
|
||||||
EOS
|
|
||||||
Facter::Util::Resolution.expects(:exec).with("/usr/libexec/java_home --failfast 2>&1").returns("/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home")
|
|
||||||
Facter::Util::Resolution.expects(:exec).with("java -Xmx12m -version 2>&1").returns(java_version_output)
|
|
||||||
expect(Facter.value(:java_version)).to eql "1.7.0_71"
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
context 'on other systems' do
|
context 'when on other systems' do
|
||||||
before do
|
before(:each) do
|
||||||
Facter.fact(:operatingsystem).stubs(:value).returns("MyOS")
|
Facter.fact(:operatingsystem).stubs(:value).returns('MyOS')
|
||||||
end
|
end
|
||||||
let(:facts) { {:operatingsystem => 'MyOS'} }
|
let(:facts) { { operatingsystem: 'MyOS' } }
|
||||||
|
|
||||||
it do
|
it do
|
||||||
java_version_output = <<-EOS
|
Facter::Util::Resolution.expects(:which).with('java').returns('/path/to/java')
|
||||||
java version "1.7.0_71"
|
Facter::Util::Resolution.expects(:exec).with('java -Xmx12m -version 2>&1').returns(jdk_7_hotspot_output)
|
||||||
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
|
expect(Facter.value(:java_version)).to eq('1.7.0_71')
|
||||||
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
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'returns nil when java not present' do
|
context 'when java not present, returns nil' do
|
||||||
context 'on OpenBSD', :with_env => true do
|
context 'on OpenBSD', with_env: true do
|
||||||
before do
|
before(:each) do
|
||||||
Facter.fact(:operatingsystem).stubs(:value).returns("OpenBSD")
|
Facter.fact(:operatingsystem).stubs(:value).returns('OpenBSD')
|
||||||
end
|
end
|
||||||
let(:facts) { {:operatingsystem => 'OpenBSD'} }
|
let(:facts) { { operatingsystem: 'OpenBSD' } }
|
||||||
|
|
||||||
it do
|
it do
|
||||||
Facter::Util::Resolution.stubs(:exec)
|
Facter::Util::Resolution.stubs(:exec)
|
||||||
expect(Facter.value(:java_version)).to be_nil
|
expect(Facter.value(:java_version)).to be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
context 'on Darwin' do
|
context 'when on Darwin' do
|
||||||
before do
|
before(:each) do
|
||||||
Facter.fact(:operatingsystem).stubs(:value).returns("Darwin")
|
Facter.fact(:operatingsystem).stubs(:value).returns('Darwin')
|
||||||
end
|
end
|
||||||
let(:facts) { {:operatingsystem => 'Darwin'} }
|
let(:facts) { { operatingsystem: 'Darwin' } }
|
||||||
|
|
||||||
it do
|
it do
|
||||||
Facter::Util::Resolution.expects(:exec).at_least(1).with("/usr/libexec/java_home --failfast 2>&1").returns('Unable to find any JVMs matching version "(null)".')
|
Facter::Util::Resolution.expects(:exec).at_least(1).with('/usr/libexec/java_home --failfast 2>&1').returns('Unable to find any JVMs matching version "(null)".')
|
||||||
expect(Facter.value(:java_version)).to be_nil
|
expect(Facter.value(:java_version)).to be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
context 'on other systems' do
|
context 'when on other systems' do
|
||||||
before do
|
before(:each) do
|
||||||
Facter.fact(:operatingsystem).stubs(:value).returns("MyOS")
|
Facter.fact(:operatingsystem).stubs(:value).returns('MyOS')
|
||||||
end
|
end
|
||||||
let(:facts) { {:operatingsystem => 'MyOS'} }
|
let(:facts) { { operatingsystem: 'MyOS' } }
|
||||||
|
|
||||||
it do
|
it do
|
||||||
Facter::Util::Resolution.expects(:which).at_least(1).with("java").returns(false)
|
Facter::Util::Resolution.expects(:which).at_least(1).with('java').returns(false)
|
||||||
expect(Facter.value(:java_version)).to be_nil
|
expect(Facter.value(:java_version)).to be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user