Compare commits

...

59 Commits
2.2.0 ... 3.1.0

Author SHA1 Message Date
Eimhin Laverty
255406b30f Merge pull request #312 from david22swan/PreRelease
3.1.0 Pre Release
2018-09-06 16:30:26 +01:00
David Swan
a24f8f15ea 3.1.0 Pre Release 2018-09-06 16:21:26 +01:00
Eimhin Laverty
5d07f08126 Merge pull request #311 from puppetlabs/pdksync_pdksync-beaker4
pdksync - (MODULES-7658) use beaker4 in puppet-module-gems
2018-08-31 14:30:05 +01:00
tphoney
01b95d32c6 (MODULES-7658) use beaker4 in puppet-module-gems 2018-08-30 17:07:43 +01:00
Helen
3c9f98d75e Merge pull request #310 from puppetlabs/pdksync_bumping_puppet_version
pdksync - (MODULES-7705) - Bumping stdlib dependency from < 5.0.0 to < 6.0.0
2018-08-28 10:04:24 +01:00
Paula Muir
e0b0e1cd19 (MODULES-7705) - Bumping stdlib requirement to 6.0.0 2018-08-24 09:15:08 +01:00
Helen
7067aed306 Merge pull request #305 from puppetlabs/pdksync_1.7.0-0-g57412ed
pdksync - Update using 1.7.0
2018-08-22 14:56:33 +01:00
Paula Muir
cb637faf83 pdksync_1.7.0-0-g57412ed 2018-08-22 14:33:05 +01:00
Eimhin Laverty
66023e1a66 Merge pull request #304 from puppetlabs/pdksync_pdksync-beaker3
pdksync - (MODULES-7658) use beaker3 in puppet-module-gems
2018-08-21 16:22:10 +01:00
tphoney
743006a16e (MODULES-7658) use beaker3 in puppet-module-gems 2018-08-21 15:27:02 +01:00
Paula Muir
d5d69ee5ac Merge pull request #303 from puppetlabs/release
Release merge back 3.0.0
2018-08-14 10:57:03 +01:00
Paula Muir
2124c735f5 Merge pull request #302 from eimlav/release-prep
(MODULES-7661) - Release prep for 3.0.0 release
2018-08-13 15:24:00 +01:00
Eimhin Laverty
b0e6bc6d84 (MODULES-7661) - Release prep for 3.0.0 release 2018-08-13 14:55:23 +01:00
david22swan
016772c800 Merge pull request #301 from eimlav/update-limitations
(MODULES-7629) - Update README Limitations section
2018-08-09 16:35:26 +01:00
Eimhin Laverty
42556dfff3 (MODULES-7629) - Update README Limitations section 2018-08-09 14:31:49 +01:00
Helen
2bdbc7df04 Merge pull request #299 from david22swan/MODULES-7561
(MODULES-7561) - Addition of support for Ubuntu 18.04 to java
2018-08-01 11:02:32 +01:00
David Swan
56c1d80150 (MODULES-7561) - Addition of support for Ubuntu 18.04 to java 2018-07-31 15:08:59 +01:00
david22swan
ca5ef782f3 Merge pull request #296 from mpdude/patch-1
Allow this package to be installed together with puppet-archive 3.0.0
2018-06-15 10:39:12 +01:00
Matthias Pigulla
b5297d553b Allow this package to be installed together with puppet-archive 3.0.0
Although it's a major version bump, I don't expect this module here to be impacted of the changes.
2018-06-14 17:33:34 +02:00
Helen
bdcb2c628f Merge pull request #295 from david22swan/FM-6963
[FM-6963] Removal of unsupported OS from java
2018-06-04 09:09:13 +01:00
David Swan
a99915342b [FM-6963] Removal of unsupported OS from java 2018-06-01 14:59:13 +01:00
david22swan
d6eb532960 Merge pull request #294 from puppetlabs/pdksync_heads/master-0-g34e3266
pdksync - Update using 1.5.0
2018-05-18 15:36:33 +01:00
Helen Campbell
891b70a7c6 pdksync_heads/master-0-g34e3266 2018-05-18 15:21:46 +01:00
david22swan
3ba9230b0b Merge pull request #292 from HelenCampbell/gitlabfix
Fixing typo in sync.yml
2018-05-16 17:57:24 +01:00
Helen Campbell
3a35964083 Fixing typo in sync.yml 2018-05-16 17:44:48 +01:00
david22swan
cf1028b8b2 Merge pull request #290 from pmcmaw/unmanage_gitlab
(MODULES-7153) - Unmanage gitlab-ci.yml
2018-05-11 13:30:39 +01:00
Paula McMaw
241800601a (MODULES-7153) - Unmanage gitlab-ci.yml 2018-05-11 11:43:07 +01:00
Paula Muir
2c5397c66c Merge pull request #289 from HelenCampbell/syncupdate
(MODULES-7023) Update .sync.yml for pdk update
2018-04-26 17:06:24 +01:00
Helen Campbell
d7ab10786e (MODULES-7023) Update .sync.yml for pdk update 2018-04-26 15:04:48 +01:00
david22swan
e1173e59c7 Merge pull request #287 from sevencastles/remove_ensure_resource
Remove ensure_resource to avoid potential conflict
2018-02-26 13:47:17 +00:00
Carlo Rengo
6ba478375a Remove ensure_resource to avoid potential conflict
This was probably unintended and could cause conflicts where
stdlib::stages isn't desired.
2018-02-02 10:21:53 +01:00
Helen
47afbd2462 Merge pull request #286 from puppetlabs/release
Release merge back 2.4.0
2018-01-23 16:59:32 +00:00
Paula Muir
10503819d2 Merge pull request #285 from HelenCampbell/release
Release prep 2.4.0
2018-01-23 15:24:15 +00:00
Helen Campbell
5db3084c11 Release prep 2.4.0 2018-01-23 14:58:42 +00:00
Paula Muir
10dc3068a7 Merge pull request #284 from HelenCampbell/conversion1.3.2
PDK Convert 1.3.2
2018-01-23 14:16:32 +00:00
Helen Campbell
b4490a36b3 Remove bundle update command 2018-01-23 13:53:30 +00:00
Helen Campbell
6561d98e58 PDK Convert 1.3.2 2018-01-23 13:42:24 +00:00
TP Honey
61cfbe3154 Merge pull request #283 from HelenCampbell/javahometestfix
Fixes java_home for SLES 11.4 and relevant tests
2018-01-23 10:22:39 +00:00
Helen Campbell
85c17ef66f Fixes the tests for SLES java_home location 2018-01-23 09:55:13 +00:00
mirespace
697c1911f9 $java_home for SLES 11.4
Fixed java_home for matching package to be installed
2018-01-16 11:14:51 +01:00
Paula Muir
c8ce18949b Merge pull request #281 from puppetlabs/msync_MODULES-6339
(maint) modulesync 65530a4 Update Travis
2018-01-05 15:50:32 +00:00
Michael T Lombardi
9c103a2219 (maint) modulesync 65530a4 Update Travis
Related: https://github.com/puppetlabs/modulesync_configs/pull/177
2018-01-03 16:12:39 -06:00
TP Honey
61c8794661 (maint) - modulesync 384f4c1 (#280) 2017-12-13 12:14:15 +00:00
Paula McMaw
901bfe989a Merge pull request #279 from tphoney/FM-6634
FM-6634 rubocop fixes
2017-12-06 15:59:33 +00:00
tphoney
e53b8bb563 FM-6634 rubocop fixes 2017-12-06 15:47:27 +00:00
david22swan
77b2b199e4 Merge pull request #278 from puppetlabs/release
Release mergeback 2.3.0
2017-12-01 15:27:25 +00:00
TP Honey
6db8715496 Merge pull request #277 from david22swan/PreRelease
2.3.0PreRelease
2017-11-29 10:08:54 +00:00
David Swan
4911fe8c77 2.3.0PreRelease 2017-11-28 10:24:28 +00:00
david22swan
fb3e4c4151 Merge pull request #270 from mhjacks/master
Add support for Ubuntu artful (17.10) and bionic (18.04 to be)
2017-11-28 09:25:38 +00:00
TP Honey
9596929938 Merge pull request #274 from puppetlabs/release
Mergeback
2017-11-27 11:16:33 +00:00
Paula McMaw
e0ce74e1a0 Merge pull request #273 from jearls/MODULES-6105-fix-travis-block-for-sync-yml
MODULE-6105: Move `.sync.yml` travis configuration under `.travis.yml:`
2017-11-27 09:20:44 +00:00
Johnson Earls
f80686908c MODULE-6105: Move .sync.yml travis configuration under .travis.yml:
This allows `modulesync` to work again for this module.
2017-11-26 16:21:55 +00:00
david22swan
74d70dae04 Merge pull request #271 from willmeek/rubocopification
Cleanup ruby code via rubocop
2017-11-24 15:26:19 +00:00
Paula McMaw
5ad9e400a2 Merge pull request #272 from puppetlabs/MODULES-4179
MODULES-4179 Updated Oracle Java supported list
2017-11-23 14:50:18 +00:00
Davin Hanlon
078307484f Updated Oracle Java supported list
Added CentOs7 and RHEL7 to Oracle Java supported list
2017-11-23 13:57:21 +00:00
Will Meek
dec5136e11 Cleanup ruby code via rubocop
This commit will add code cleanup as corrected
and alerted by rubocop. It also adds rules to
execute rubocop on Travis.
2017-11-21 14:31:45 +00:00
Martin Jackson
71554f3067 Add support for Ubuntu artful (17.10) and bionic (18.04 to be) 2017-11-20 21:11:32 -06:00
Paula McMaw
692b490438 Release prep for 2.2.0 (#268) 2017-11-20 17:21:33 +00:00
Paula McMaw
7a271eef3e Module sync 1d81b6a (#267) 2017-11-17 15:32:24 +00:00
32 changed files with 1409 additions and 1395 deletions

40
.gitignore vendored
View File

@@ -1,24 +1,24 @@
#This file is generated by ModuleSync, do not edit. .git/
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
*.iml
/.bundle/
/.idea/
/.vagrant/
/coverage/
/bin/
/doc/
/Gemfile.local
/Gemfile.lock
/junit/
/log/
/pkg/
/spec/fixtures/manifests/
/spec/fixtures/modules/
/tmp/
/vendor/
/convert_report.txt
/update_report.txt
.DS_Store .DS_Store
tmp/
vendor/
doc/

24
.pdkignore Normal file
View File

@@ -0,0 +1,24 @@
.git/
.*.sw[op]
.metadata
.yardoc
.yardwarns
*.iml
/.bundle/
/.idea/
/.vagrant/
/coverage/
/bin/
/doc/
/Gemfile.local
/Gemfile.lock
/junit/
/log/
/pkg/
/spec/fixtures/manifests/
/spec/fixtures/modules/
/tmp/
/vendor/
/convert_report.txt
/update_report.txt
.DS_Store

View File

@@ -1,508 +1,118 @@
---
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 - "**/Puppetfile"
- "**/Vagrantfile"
Lint/ElseLayout: - "**/Guardfile"
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
RSpec/MessageSpies:
EnforcedStyle: receive
Style/Documentation:
Exclude:
- lib/puppet/parser/functions/**/*
- spec/**/*
Style/WordArray:
EnforcedStyle: brackets
Style/CollectionMethods:
Enabled: true
Style/MethodCalledOnDoEndBlock:
Enabled: true
Style/StringMethods:
Enabled: true
Layout/EndOfLine:
Enabled: false
Layout/IndentHeredoc:
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
View File

View File

@@ -1,5 +1,33 @@
--- ---
.travis.yml:
docker_sets:
- set: docker/centos-7
- set: docker/ubuntu-14.04
docker_defaults:
bundler_args: ""
secure: ""
branches:
- release
Gemfile:
optional:
':development':
- gem: 'github_changelog_generator'
git: 'https://github.com/skywinder/github-changelog-generator'
ref: '20ee04ba1234e9e83eb2ffb5056e23d641c7a018'
condition: "Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2')"
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
appveyor.yml: appveyor.yml:
delete: true delete: true
spec/spec_helper.rb:
allow_deprecations: true .gitlab-ci.yml:
unmanaged: true

View File

@@ -1,32 +1,61 @@
#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 -f Gemfile.lock
- gem update --system
- gem --version
- bundle -v
script:
- 'bundle exec rake $CHECK'
bundler_args: --without system_tests
rvm:
- 2.4.4
env:
global:
- BEAKER_PUPPET_COLLECTION=puppet5 PUPPET_GEM_VERSION="~> 5.0"
matrix: matrix:
fast_finish: true fast_finish: true
include: include:
- rvm: 2.3.1 -
bundler_args:
dist: trusty dist: trusty
env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_set=docker/ubuntu-14.04 env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_set=docker/centos-7 BEAKER_TESTMODE=apply
rvm: 2.4.4
script: bundle exec rake beaker script: bundle exec rake beaker
services: docker services: docker
sudo: required sudo: required
- rvm: 2.3.1 -
bundler_args:
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_PUPPET_COLLECTION=puppet5 BEAKER_set=docker/ubuntu-14.04 BEAKER_TESTMODE=apply
rvm: 2.4.4
script: bundle exec rake beaker script: bundle exec rake beaker
services: docker services: docker
sudo: required sudo: required
- rvm: 2.4.0 -
bundler_args: --without system_tests env: CHECK="syntax lint metadata_lint check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop"
env: PUPPET_GEM_VERSION="~> 5.0" -
- rvm: 2.1.9 env: CHECK=parallel_spec
bundler_args: --without system_tests -
env: PUPPET_GEM_VERSION="~> 4.0" env: PUPPET_GEM_VERSION="~> 4.0" CHECK=parallel_spec
rvm: 2.1.9
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"

1
.yardopts Normal file
View File

@@ -0,0 +1 @@
--markup markdown

View File

@@ -1,3 +1,54 @@
# Change log
All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org).
## [3.1.0](https://github.com/puppetlabs/puppetlabs-java/tree/3.1.0) (2018-09-06)
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/3.0.0...3.1.0)
### Added
- pdksync - \(MODULES-7705\) - Bumping stdlib dependency from \< 5.0.0 to \< 6.0.0 [\#310](https://github.com/puppetlabs/puppetlabs-java/pull/310) ([pmcmaw](https://github.com/pmcmaw))
## [3.0.0](https://github.com/puppetlabs/puppetlabs-java/tree/3.0.0) (2018-08-13)
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/2.4.0...3.0.0)
### Changed
- \[FM-6963\] Removal of unsupported OS from java [\#295](https://github.com/puppetlabs/puppetlabs-java/pull/295) ([david22swan](https://github.com/david22swan))
### Added
- \(MODULES-7561\) - Addition of support for Ubuntu 18.04 to java [\#299](https://github.com/puppetlabs/puppetlabs-java/pull/299) ([david22swan](https://github.com/david22swan))
### Fixed
- Remove ensure\_resource to avoid potential conflict [\#287](https://github.com/puppetlabs/puppetlabs-java/pull/287) ([sevencastles](https://github.com/sevencastles))
## 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] ## Supported Release [2.2.0]
### Summary ### Summary
This release is a maintenance release that includes a roll up of minor changes. This release is a maintenance release that includes a roll up of minor changes.
@@ -269,4 +320,8 @@ Jeff McCune <jeff@puppetlabs.com>
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 [2.2.0]:https://github.com/puppetlabs/puppetlabs-java/compare/2.1.1...2.2.0
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*

111
Gemfile
View File

@@ -1,76 +1,83 @@
#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}", '0.0.7', :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 "json", '<= 2.0.4', require: false if Gem::Version.new(RUBY_VERSION.dup) == Gem::Version.new('2.4.4')
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-default-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-posix-dev-r#{minor_version}", require: false, platforms: [:ruby]
gem "puppet-module-win-default-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw]
gem "puppet-module-win-dev-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw]
gem "github_changelog_generator", require: false, git: 'https://github.com/skywinder/github-changelog-generator', ref: '20ee04ba1234e9e83eb2ffb5056e23d641c7a018' if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2')
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-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 "puppet-blacksmith", '~> 3.4', :require => false
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. gems = {}
# Otherwise it can lead to strange bundler behavior. If you are seeing weird
# gem resolution behavior, try setting `DEBUG_RESOLVER` environment variable
# to `1` and then run bundle install.
gem 'facter', *location_for(ENV['FACTER_GEM_VERSION']) if ENV['FACTER_GEM_VERSION']
gem 'hiera', *location_for(ENV['HIERA_GEM_VERSION']) if ENV['HIERA_GEM_VERSION']
gems['puppet'] = location_for(puppet_version)
# Evaluate Gemfile.local if it exists # If facter or hiera versions have been specified via the environment
if File.exists? "#{__FILE__}.local" # variables
eval(File.read("#{__FILE__}.local"), binding)
gems['facter'] = location_for(facter_version) if facter_version
gems['hiera'] = location_for(hiera_version) if hiera_version
if Gem.win_platform? && puppet_version =~ %r{^(file:///|git://)}
# 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 end
# Evaluate ~/.gemfile if it exists gems.each do |gem_name, gem_params|
if File.exists?(File.join(Dir.home, '.gemfile')) gem gem_name, *gem_params
eval(File.read(File.join(Dir.home, '.gemfile')), binding)
end end
# vim:ft=ruby # 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

296
HISTORY.md Normal file
View File

@@ -0,0 +1,296 @@
## 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
### Summary
This release adds fixes to restore the ability to install Oracle Java. It also fixes the paths for the latest RHEL 7 1.7.0 and 1.8.0 OpenJDKs.
### Added
- java::oracle parameter `url`
- java::oracle parameter `url_hash`
### Fixed
- Let `java_default_home` fact work when /usr/bin/java does not exist
- Add puppet 4 parameter types
- Use `/usr/lib/jvm/java-1.x.0` symlinks for `java_home` defaults.
## Supported Release 2.0.0
### Summary
This is a major release including some bug fixes, new parameters, and general module updates.
**This release drops Puppet 3 support**
#### Added
- Debian Stretch, Yakkety Yak, Amazon Linux, Oracle Linux, Scientific Linux CERN compatibility
- `version_major` and `version_minor` parameters for specifying Java SE version to install
- `$JAVA_HOME` now set by the module on compatible systems. The `java_home` parameter is also provided for manual setting. [MODULES-2971](https://tickets.puppetlabs.com/browse/MODULES-2971)
- `proxy_server` and `proxy_type` for choosing a proxy server to get Java from
#### Changed
- Moved lower Puppet version requirement to 4.7.0
#### Fixed
- Module no longer downloads the Java archive on Puppet runs if Java is already installed.
- java_default_home fact is not always correct on oracle packages [MODULES-4050](https://tickets.puppetlabs.com/browse/MODULES-4050)
- Order of operations for archives [MODULES-4751](https://tickets.puppetlabs.com/browse/https://tickets.puppetlabs.com/browse/MODULES-4751)
- Increase Xmx setting for `java_version` fact [MODULES-4736](https://tickets.puppetlabs.com/browse/MODULES-4736)
## Supported Release 1.6.0
### Summary
Addition of a new supported OS, along with several other features and bugfixes.
#### Features
- Ubuntu 16.04 support.
- Addition example for installing Java 8.
- Update to newest modulesync_configs.
- Addition of RedHat for Oracle Java.
#### Bugfixes
- Custom archive type now given extract_path.
- Fix for rspec deprectation warnings.
- Typo fixes for readme.
- Fixed tests to run under strict variables.
- Updated Java package for SLES 11.4.
## Supported Release 1.5.0
### Summary
A release which has several support additions for different OSes. Also a couple of additional features and a few bug fixes.
#### Features
- Added Ubuntu 15.10 compatibility.
- Addition of two facts: java_libjvm_path and java_default_home.
- Added support for oracle-j2re1.8 and oracle-j2sdk1.8.
- Adds FreeBSD Support.
- Exposed the Puppet package resources install_options parameter via a new class parameter named package_options.
- Debian 8 support.
- Add support for official Oracle Java SE jdk and jre packages for CentOS.
- Use java 8 as the default on RHEL > 7.0.
#### Bugfixes
- Updated fixtures.yml to use git instead of http for stdlib.
- Updates to current msync configs.
- Small README updates and syntax error fixes.
## Supported Release 1.4.3
### Summary
Small release for support of newer PE versions. This increments the version of PE in the metadata.json file.
## 2015-10-07 - Supported Release 1.4.2
### Summary
This release fixes the fact to not trigger java every time on OS X when it is not available.
#### Bugfixes
- Causes java\_version fact to not run `java` when java is not installed on OS X
## 2015-07-16 - Supported Release 1.4.1
### Summary
This release updates the metadata for the upcoming release of PE and update params for OEL to match metadata
#### Bugfixes:
- Add missing OEL to params
## 2015-07-07 - Supported Release 1.4.0
### Summary
This release adds several new features, bugfixes, documentation updates, and test improvements.
#### Features:
- Puppet 4 support and testing
- Adds support for several Operating Systems
- Ubuntu 15.04
- OpenBSD 5.6, 5.7
- Fedora 20, 21, 22
#### Bugfixes:
- Fixes java_version fact to work on large systems. (MODULES-1749)
- Improves maintainability of java_version fact.
- Fixes java package names on Fedora 21+.
- Fixes java install problems on Puppet 3.7.5 - 3.8.1 (PUP-4520)
- Fixes create-java-alternatives commands on RedHat distros.
- Fixes bug with Debian systems missing java-common package.
## 2015-01-20 - Supported Release 1.3.0
### Summary
This release adds 3 new facts for determining Java version, adds RHEL alternatives support, adds utopic support, and fixes the flag for `update-java-alternatives` when installed from a headless pacakge.
#### Features
- Added RHEL support for alternatives
- New facts
- java_major_version
- java_patch_level
- java_version
- Add support for utopic
#### Bugfixes
- Use `--jre-headless` in the `update-java-alternatives` command when installed from a `headless` package
## 2014-11-11 - Supported Version 1.2.0
### Summary:
This release adds SLES 12 support and is tested for Future Parser Support
#### Bugfixes:
- Several readme updates
- Testcase flexability increased
#### Features:
- Add SLES 12 support
- Future Parser tested
- Validated against PE 3.7
## 2014-08-25 - Supported Version 1.1.2
### Summary:
This release begins the support coverage of the puppetlabs-java module.
### Bugfixes:
- Update java alternative values from deprecated names
- Readme updated
- Testing updated
## 2014-05-02 - Version 1.1.1
### Summary:
Add support for new versions of Debian and Ubuntu!
#### Features:
- Add support for Ubuntu Trusty (14.04)
- Add support for Debian Jessie (8.x)
## 2014-01-06 - Version 1.1.0
### Summary:
Primarily a release for Ubuntu users!
#### Features:
- Add support for Ubuntu Saucy (13.10)
- Add `java_home` parameter for centralized setting of JAVA_HOME.
- Add Scientific Linux
#### Bugfixes:
- Plus signs are valid in debian/ubuntu package names.
## 2013-08-01 - Version 1.0.1
Matthaus Owens <matthaus@puppetlabs.com>
* Update java packages for Fedora systems
## 2013-07-29 - Version 1.0.0
#### Detailed Changes
Krzysztof Suszyński <krzysztof.suszynski@coi.gov.pl>
* Adding support for Oracle Enterprise Linux
Peter Drake <pdrake@allplayers.com>
* Add support for natty
Robert Munteanu <rmuntean@adobe.com>
* Add support for OpenSUSE
Martin Jackson <martin@uncommonsense-uk.com>
* Added support Amazon Linux using facter >= 1.7.x
Gareth Rushgrove <gareth@morethanseven.net>
Brett Porter <brett@apache.org>
* Fixes for older versions of CentOS
* Improvements to module build and tests
Nathan R Valentine <nrvale0@gmail.com>
* Add support for Ubuntu quantal and raring
Sharif Nassar <sharif@mediatemple.net>
* Add support for Debian alternatives, and more than one JDK/JRE per platform.
## 2013-04-04 - Version 0.3.0
Reid Vandewiele <reid@puppetlabs.com> -
* Refactor, introduce params pattern
## 2012-11-15 - Version 0.2.0
Scott Schneider <sschneider@puppetlabs.com>
* Add Solaris support
## 2011-06-16 - Version 0.1.5
Jeff McCune <jeff@puppetlabs.com>
* Add Debian based distro (Lucid) support
## 2011-06-02 - Version 0.1.4
Jeff McCune <jeff@puppetlabs.com>
* Fix class composition ordering problems
## 2011-05-28 - Version 0.1.3
Jeff McCune <jeff@puppetlabs.com>
* Remove stages
## 2011-05-26 - Version 0.1.2
Jeff McCune <jeff@puppetlabs.com>
* Changes JRE/JDK selection class parameter to $distribution
## 2011-05-25 - Version 0.1.1
Jeff McCune <jeff@puppetlabs.com>
* Re-did versioning to follow semantic versioning
* Add validation of class parameters
## 2011-05-24 - Version 0.1.0
Jeff McCune <jeff@puppetlabs.com>
* Default to JDK version 6u25
## 2011-05-24 - Version 0.0.1
Jeff McCune <jeff@puppetlabs.com>
* Initial release
[2.3.0]:https://github.com/puppetlabs/puppetlabs-java/compare/2.2.0...2.3.0
[2.2.0]:https://github.com/puppetlabs/puppetlabs-java/compare/2.1.1...2.2.0

2
NOTICE
View File

@@ -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.

View File

@@ -175,6 +175,8 @@ The java module includes a few facts to describe the version of Java installed o
## Limitations ## Limitations
For an extensive list of supported operating systems, see [metadata.json](https://github.com/puppetlabs/puppetlabs-java/blob/master/metadata.json)
This module cannot guarantee installation of Java versions that are not available on platform repositories. This module cannot guarantee installation of Java versions that are not available on platform repositories.
This module only manages a singular installation of Java, meaning it is not possible to manage e.g. OpenJDK 7, Oracle Java 7 and Oracle Java 8 in parallel on the same system. This module only manages a singular installation of Java, meaning it is not possible to manage e.g. OpenJDK 7, Oracle Java 7 and Oracle Java 8 in parallel on the same system.
@@ -188,12 +190,11 @@ OpenJDK is supported on:
* Red Hat Enterprise Linux (RHEL) 5, 6, 7 * Red Hat Enterprise Linux (RHEL) 5, 6, 7
* CentOS 5, 6, 7 * CentOS 5, 6, 7
* Oracle Linux 6, 7 * Oracle Linux 6, 7
* Scientific Linux 5, 6 * Scientific Linux 6
* Debian 6, 7 * Debian 8, 9
* Ubuntu 10.04, 12.04, 14.04 * Ubuntu 14.04, 16.04, 18.04
* Solaris 11 * Solaris 11
* SLES 11 SP1, SP2, SP3, SP4; SLES 12, SP1, SP2 * SLES 11, 12
* OpenBSD 5.6, 5.7
Sun Java is supported on: Sun Java is supported on:
@@ -202,6 +203,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

View File

@@ -1,37 +1,75 @@
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' if Bundler.rubygems.find_name('puppet-blacksmith').any?
require 'github_changelog_generator/task' if Bundler.rubygems.find_name('github_changelog_generator').any?
PuppetLint.configuration.fail_on_warnings = true def changelog_user
PuppetLint.configuration.send('relative') return unless Rake.application.top_level_tasks.include? "changelog"
returnVal = nil || JSON.load(File.read('metadata.json'))['author']
desc 'Generate pooler nodesets' raise "unable to find the changelog_user in .sync.yml, or the author in metadata.json" if returnVal.nil?
task :gen_nodeset do puts "GitHubChangelogGenerator user:#{returnVal}"
require 'beaker-hostgenerator' returnVal
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 end
master_target = ENV['MASTER_TEST_TARGET'] def changelog_project
if ! master_target return unless Rake.application.top_level_tasks.include? "changelog"
STDERR.puts 'MASTER_TEST_TARGET environment variable is not set' returnVal = nil || JSON.load(File.read('metadata.json'))['name']
STDERR.puts 'setting to default value of "redhat7-64mdcl"' raise "unable to find the changelog_project in .sync.yml or the name in metadata.json" if returnVal.nil?
master_target = 'redhat7-64mdcl' puts "GitHubChangelogGenerator project:#{returnVal}"
returnVal
end end
targets = "#{master_target}-#{agent_target}" def changelog_future_release
cli = BeakerHostGenerator::CLI.new([targets]) return unless Rake.application.top_level_tasks.include? "changelog"
nodeset_dir = "tmp/nodesets" returnVal = JSON.load(File.read('metadata.json'))['version']
nodeset = "#{nodeset_dir}/#{targets}-#{SecureRandom.uuid}.yaml" raise "unable to find the future_release (version) in metadata.json" if returnVal.nil?
FileUtils.mkdir_p(nodeset_dir) puts "GitHubChangelogGenerator future_release:#{returnVal}"
File.open(nodeset, 'w') do |fh| returnVal
fh.print(cli.execute)
end end
puts nodeset
PuppetLint.configuration.send('disable_relative')
if Bundler.rubygems.find_name('github_changelog_generator').any?
GitHubChangelogGenerator::RakeTask.new :changelog do |config|
raise "Set CHANGELOG_GITHUB_TOKEN environment variable eg 'export CHANGELOG_GITHUB_TOKEN=valid_token_here'" if Rake.application.top_level_tasks.include? "changelog" and ENV['CHANGELOG_GITHUB_TOKEN'].nil?
config.user = "#{changelog_user}"
config.project = "#{changelog_project}"
config.future_release = "#{changelog_future_release}"
config.exclude_labels = ['maintenance']
config.header = "# Change log\n\nAll notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org)."
config.add_pr_wo_labels = true
config.issues = false
config.merge_prefix = "### UNCATEGORIZED PRS; GO LABEL THEM"
config.configure_sections = {
"Changed" => {
"prefix" => "### Changed",
"labels" => ["backwards-incompatible"],
},
"Added" => {
"prefix" => "### Added",
"labels" => ["feature", "enhancement"],
},
"Fixed" => {
"prefix" => "### Fixed",
"labels" => ["bugfix"],
},
}
end end
else
desc 'Generate a Changelog from GitHub'
task :changelog do
raise <<EOM
The changelog tasks depends on unreleased features of the github_changelog_generator gem.
Please manually add it to your .sync.yml for now, and run `pdk update`:
---
Gemfile:
optional:
':development':
- gem: 'github_changelog_generator'
git: 'https://github.com/skywinder/github-changelog-generator'
ref: '20ee04ba1234e9e83eb2ffb5056e23d641c7a018'
condition: "Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2')"
EOM
end
end

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -106,8 +106,6 @@ define java::oracle (
# archive module is used to download the java package # archive module is used to download the java package
include ::archive include ::archive
ensure_resource('class', 'stdlib')
# validate java Standard Edition to download # validate java Standard Edition to download
if $java_se !~ /(jre|jdk)/ { if $java_se !~ /(jre|jdk)/ {
fail('Java SE must be either jre or jdk.') fail('Java SE must be either jre or jdk.')

View File

@@ -155,7 +155,7 @@ class java::params {
}, },
} }
} }
'stretch', 'vivid', 'wily', 'xenial', 'yakkety', 'zesty': { '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'

View File

@@ -1,12 +1,22 @@
{ {
"name": "puppetlabs-java", "name": "puppetlabs-java",
"version": "2.2.0", "version": "3.1.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 < 6.0.0"
},
{
"name": "puppet/archive",
"version_requirement": ">= 1.1.0 < 4.0.0"
}
],
"operatingsystem_support": [ "operatingsystem_support": [
{ {
"operatingsystem": "RedHat", "operatingsystem": "RedHat",
@@ -34,22 +44,12 @@
{ {
"operatingsystem": "Scientific", "operatingsystem": "Scientific",
"operatingsystemrelease": [ "operatingsystemrelease": [
"5",
"6" "6"
] ]
}, },
{
"operatingsystem": "Fedora",
"operatingsystemrelease": [
"20",
"21",
"22"
]
},
{ {
"operatingsystem": "Debian", "operatingsystem": "Debian",
"operatingsystemrelease": [ "operatingsystemrelease": [
"7",
"8", "8",
"9" "9"
] ]
@@ -58,7 +58,8 @@
"operatingsystem": "Ubuntu", "operatingsystem": "Ubuntu",
"operatingsystemrelease": [ "operatingsystemrelease": [
"14.04", "14.04",
"16.04" "16.04",
"18.04"
] ]
}, },
{ {
@@ -86,14 +87,7 @@
"version_requirement": ">= 4.7.0 < 6.0.0" "version_requirement": ">= 4.7.0 < 6.0.0"
} }
], ],
"dependencies": [ "template-url": "https://github.com/puppetlabs/pdk-templates",
{ "template-ref": "1.7.0-0-g57412ed",
"name":"puppetlabs/stdlib", "pdk-version": "1.7.0"
"version_requirement": ">= 4.13.1 < 5.0.0"
},
{
"name":"puppet/archive",
"version_requirement": ">= 1.1.0 < 3.0.0"
}
]
} }

View File

@@ -3,8 +3,7 @@ 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 Jesse & Ubuntu 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
@@ -26,197 +25,133 @@ 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
# With the version of java that ships with pe on debian wheezy, update-alternatives java_class_jre = "class { 'java':\n"\
# throws an error on the first run due to missing alternative for policytool. It still " distribution => 'jre',\n"\
# updates the alternatives for java '}'
if fact('operatingsystem') == 'Debian' and fact('lsbdistcodename') == 'wheezy'
apply_manifest(pp)
else
apply_manifest(pp, :catch_failures => true)
end
apply_manifest(pp, :catch_changes => true)
end
end
describe "jdk" do
it 'should install jdk' do
pp = <<-EOS
class { 'java': }
EOS
apply_manifest(pp, :catch_failures => true) java_class = "class { 'java': }"
apply_manifest(pp, :catch_changes => true)
end
end
end
# C14686
describe 'sun', :if => (fact('operatingsystem') == 'Debian' and fact('operatingsystemrelease').match(/(5|6)/)) do
before :all do
pp = <<-EOS
file_line { 'non-free source':
path => '/etc/apt/sources.list',
match => "deb http://osmirror.delivery.puppetlabs.net/debian/ ${::lsbdistcodename} main",
line => "deb http://osmirror.delivery.puppetlabs.net/debian/ ${::lsbdistcodename} main non-free",
}
EOS
apply_manifest(pp)
shell('apt-get update')
shell('echo "sun-java6-jdk shared/accepted-sun-dlj-v1-1 select true" | debconf-set-selections')
shell('echo "sun-java6-jre shared/accepted-sun-dlj-v1-1 select true" | debconf-set-selections')
end
describe 'jre' do
it 'should install sun-jre' do
pp = <<-EOS
class { 'java':
distribution => 'sun-jre',
}
EOS
apply_manifest(pp, :catch_failures => true) _sources = "file_line { 'non-free source':\n"\
apply_manifest(pp, :catch_changes => true) " path => '/etc/apt/sources.list',\n"\
end " match => \"deb http://osmirror.delivery.puppetlabs.net/debian/ ${::lsbdistcodename} main\",\n"\
end " line => \"deb http://osmirror.delivery.puppetlabs.net/debian/ ${::lsbdistcodename} main non-free\",\n"\
describe 'jdk' do '}'
it 'should install sun-jdk' do
pp = <<-EOS
class { 'java':
distribution => 'sun-jdk',
}
EOS
apply_manifest(pp, :catch_failures => true) _sun_jre = "class { 'java':\n"\
apply_manifest(pp, :catch_changes => true) " 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"\
'}'
context 'installing java jre', unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
it 'installs jre' do
apply_manifest(java_class_jre, catch_failures: true)
apply_manifest(java_class_jre, catch_changes: true)
end end
end end
context 'installing java jdk', unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
it 'installs jdk' do
apply_manifest(java_class, catch_failures: true)
apply_manifest(java_class, catch_changes: true)
end
end end
# C14704 # C14704
# C14705 # C14705
# C15006 # C15006
describe 'oracle', :if => ( context 'oracle', if: (
(fact('operatingsystem') == 'Debian') and (fact('operatingsystemrelease').match(/^7/)) or (fact('operatingsystem') == 'Ubuntu') && fact('operatingsystemrelease').match(%r{^14\.04})
(fact('operatingsystem') == 'Ubuntu') and (fact('operatingsystemrelease').match(/^12\.04/)) or
(fact('operatingsystem') == 'Ubuntu') and (fact('operatingsystemrelease').match(/^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

View File

@@ -1,314 +1,241 @@
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 passed value for Centos 5.3' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '20', :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.7.0-openjdk-devel') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/') }
end
context 'select openjdk for Fedora 21' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '21', :architecture => 'x86_64'} }
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk-devel') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-x86_64/') }
end
context 'select passed value for Fedora 20' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '20', :architecture => 'x86_64'} }
let(:params) { { 'distribution' => 'jre', 'java_home' => '/usr/local/lib/jre/' } }
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/local/lib/jre/') }
end
context 'select passed value for Fedora 21' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '21', :architecture => 'x86_64'} }
let(:params) { { 'distribution' => 'jre', 'java_home' => '/usr/local/lib/jre/' } }
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/local/lib/jre/') }
end
context 'select passed value for Fedora 21 with yum option' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '21', :architecture => 'x86_64'} }
let(:params) { { 'distribution' => 'jre' } }
let(:params) { { 'package_options' => ['--skip-broken'] } }
it { is_expected.to contain_package('java') }
end
context 'select passed value for Centos 5.3' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '5.3', :architecture => 'x86_64'} }
let(: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 jdk for Ubuntu Vivid (15.04)' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} } let(:facts) { { osfamily: 'Debian', operatingsystem: 'Ubuntu', lsbdistcodename: 'vivid', operatingsystemrelease: '15.04', architecture: 'amd64' } }
it { is_expected.to contain_package('java').with_name('openjdk-7-jdk') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-1.7.0-openjdk-amd64 --jre') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/') }
end
context 'select Oracle JRE for Debian Wheezy' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} }
let(:params) { { 'distribution' => 'oracle-jre' } }
it { is_expected.to contain_package('java').with_name('oracle-j2re1.7') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set j2re1.7-oracle --jre') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/j2re1.7-oracle/') }
end
context 'select Oracle Java 8 JRE >=u100 for Debian Wheezy' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} }
let(:params) { { 'distribution' => 'oracle-java8-jre' } }
it { is_expected.to contain_package('java').with_name('oracle-java8-jre') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set jre-8-oracle-x64 --jre') }
end
context 'select Oracle Java 8 JDK >=u100 for Debian Wheezy' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} }
let(:params) { { 'distribution' => 'oracle-java8-jdk' } }
it { is_expected.to contain_package('java').with_name('oracle-java8-jdk') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set jdk-8-oracle-x64 --jre') }
end
context 'select OpenJDK JRE for Debian Wheezy' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} }
let(:params) { { 'distribution' => 'jre' } }
it { is_expected.to contain_package('java').with_name('openjdk-7-jre-headless') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-1.7.0-openjdk-amd64 --jre-headless') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/') }
end
context 'select default for Debian Squeeze' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'squeeze', :operatingsystemrelease => '6.0.5', :architecture => 'amd64',} }
it { is_expected.to contain_package('java').with_name('openjdk-6-jdk') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-openjdk-amd64 --jre') }
end
context 'select Oracle JRE for Debian Squeeze' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'squeeze', :operatingsystemrelease => '6.0.5', :architecture => 'amd64',} }
let(:params) { { 'distribution' => 'sun-jre', } }
it { is_expected.to contain_package('java').with_name('sun-java6-jre') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-sun --jre') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-6-sun/jre/') }
end
context 'select OpenJDK JRE for Debian Squeeze' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'squeeze', :operatingsystemrelease => '6.0.5', :architecture => 'amd64',} }
let(:params) { { 'distribution' => 'jre', } }
it { is_expected.to contain_package('java').with_name('openjdk-6-jre-headless') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-openjdk-amd64 --jre-headless') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-6-openjdk/jre/') }
end
context 'select random alternative for Debian Wheezy' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} }
let(:params) { { 'java_alternative' => 'bananafish' } }
it { is_expected.to contain_package('java').with_name('openjdk-7-jdk') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set bananafish --jre') }
end
context 'select jdk for Ubuntu Vivid (15.04)' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Ubuntu', :lsbdistcodename => 'vivid', :operatingsystemrelease => '15.04', :architecture => 'amd64',} }
let(: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_not contain_file_line('java-home-environment') } it { is_expected.not_to contain_file_line('java-home-environment') }
end end
context 'select jre for OpenBSD' do context '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 describe 'custom java package' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'jessie', :operatingsystemrelease => '8.6', :architecture => 'amd64',} } let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'jessie', operatingsystemrelease: '8.6', architecture: 'amd64' } }
context 'all params provided' do
let(:params) { { context 'when all params provided' do
let(:params) do
{
'distribution' => 'custom', 'distribution' => 'custom',
'package' => 'custom_jdk', 'package' => 'custom_jdk',
'java_alternative' => 'java-custom_jdk', 'java_alternative' => 'java-custom_jdk',
'java_alternative_path' => '/opt/custom_jdk/bin/java', 'java_alternative_path' => '/opt/custom_jdk/bin/java',
'java_home' => '/opt/custom_jdk', 'java_home' => '/opt/custom_jdk',
} } }
end
it { is_expected.to contain_package('java').with_name('custom_jdk') } it { is_expected.to contain_package('java').with_name('custom_jdk') }
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/opt/custom_jdk') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/opt/custom_jdk') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-custom_jdk --jre') } it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-custom_jdk --jre') }
end end
context 'missing parameters' do context 'with missing parameters' do
let(:params) { { let(:params) do
{
'distribution' => 'custom', 'distribution' => 'custom',
'package' => 'custom_jdk', 'package' => 'custom_jdk',
} } }
it do
expect { catalogue }.to raise_error Puppet::Error, /is not supported. Missing default values/
end
end
end end
it do
expect { catalogue }.to raise_error Puppet::Error, %r{is not supported. Missing default values}
end
end
end
describe 'incompatible OSs' do describe 'incompatible OSs' do
[ [
{ {
# C14706 # C14706
:osfamily => 'windows', osfamily: 'windows',
:operatingsystem => 'windows', operatingsystem: 'windows',
:operatingsystemrelease => '8.1', operatingsystemrelease: '8.1',
}, },
{ {
# C14707 # C14707
:osfamily => 'Darwin', osfamily: 'Darwin',
:operatingsystem => 'Darwin', operatingsystem: 'Darwin',
:operatingsystemrelease => '13.3.0', operatingsystemrelease: '13.3.0',
}, },
{ {
# C14708 # C14708
:osfamily => 'AIX', osfamily: 'AIX',
:operatingsystem => 'AIX', operatingsystem: 'AIX',
:operatingsystemrelease => '7100-02-00-000', operatingsystemrelease: '7100-02-00-000',
}, },
{ {
# C14708 # C14708
:osfamily => 'AIX', osfamily: 'AIX',
:operatingsystem => 'AIX', operatingsystem: 'AIX',
:operatingsystemrelease => '6100-07-04-1216', operatingsystemrelease: '6100-07-04-1216',
}, },
{ {
# C14708 # C14708
:osfamily => 'AIX', osfamily: 'AIX',
:operatingsystem => 'AIX', operatingsystem: 'AIX',
:operatingsystemrelease => '5300-12-01-1016', operatingsystemrelease: '5300-12-01-1016',
}, },
].each do |facts| ].each do |facts|
let(:facts) { facts } let(:facts) { facts }
it "is_expected.to fail on #{facts[:operatingsystem]} #{facts[:operatingsystemrelease]}" do it "is_expected.to fail on #{facts[:operatingsystem]} #{facts[:operatingsystemrelease]}" do
expect { catalogue }.to raise_error Puppet::Error, /unsupported platform/ expect { catalogue }.to raise_error Puppet::Error, %r{unsupported platform}
end end
end end
end end

8
spec/default_facts.yml Normal file
View File

@@ -0,0 +1,8 @@
# Use default_module_facts.yml for module specific facts.
#
# Facts specified here will override the values provided by rspec-puppet-facts.
---
concat_basedir: "/tmp"
ipaddress: "172.16.254.254"
is_pe: false
macaddress: "AA:AA:AA:AA:AA:AA"

View File

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

View File

@@ -1,8 +1,44 @@
#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'
# put local configuration and setup into spec_helper_local
begin begin
require 'spec_helper_local' require 'spec_helper_local' if File.file?(File.join(File.dirname(__FILE__), 'spec_helper_local.rb'))
rescue LoadError rescue LoadError => loaderror
warn "Could not require spec_helper_local: #{loaderror.message}"
end end
include RspecPuppetFacts
default_facts = {
puppetversion: Puppet.version,
facterversion: Facter.version,
}
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
c.before :each do
# set to strictest setting for testing
# by default Puppet runs at warning level
Puppet.settings[:strict] = :warning
end
end
def ensure_module_defined(module_name)
module_name.split('::').reduce(Object) do |last_module, next_module|
last_module.const_set(next_module, Module.new) unless last_module.const_defined?(next_module)
last_module.const_get(next_module)
end
end
# 'spec_overrides' from sync.yml will appear below this line

View File

@@ -1,16 +1,19 @@
require 'beaker-pe'
require 'beaker-puppet'
require 'beaker-rspec' require 'beaker-rspec'
require 'beaker/puppet_install_helper' require 'beaker/puppet_install_helper'
require 'beaker/module_install_helper' require 'beaker/module_install_helper'
run_puppet_install_helper run_puppet_install_helper
configure_type_defaults_on(hosts)
install_module_on(hosts) install_module_on(hosts)
install_module_dependencies_on(hosts) install_module_dependencies_on(hosts)
UNSUPPORTED_PLATFORMS = [ "Darwin", "windows" ] UNSUPPORTED_PLATFORMS = ['Darwin', 'windows'].freeze
unless ENV["RS_PROVISION"] == "no" or ENV["BEAKER_provision"] == "no" unless ENV['RS_PROVISION'] == 'no' || ENV['BEAKER_provision'] == 'no'
hosts.each do |host| hosts.each do |host|
install_puppet_module_via_pmt_on(host, {module_name: 'puppetlabs-apt'}) install_puppet_module_via_pmt_on(host, module_name: 'puppetlabs-apt')
end end
end end

View File

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

View File

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

View File

@@ -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
@@ -24,4 +23,3 @@ describe Facter::Util::Fact do
end end
end end
end end
end

View File

@@ -1,24 +1,20 @@
require "spec_helper" require 'spec_helper'
describe Facter::Util::Fact do describe 'java_patch_level' do
before { before(:each) do
Facter.clear Facter.clear
} end
describe "java_patch_level" do context '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
@@ -27,5 +23,3 @@ describe Facter::Util::Fact do
end end
end end
end end
end
end

View File

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