Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
86a66d5732 | ||
|
|
cc50bff4e2 | ||
|
|
35dba98f4b | ||
|
|
35dcaf1cb5 | ||
|
|
2e72a1e255 | ||
|
|
84654700bc | ||
|
|
9651f5e630 | ||
|
|
1cdeba11f1 | ||
|
|
11c314814e | ||
|
|
358d1e85d0 | ||
|
|
415f1283d2 | ||
|
|
db27f84760 | ||
|
|
93cc972768 | ||
|
|
84546ca9a7 | ||
|
|
61ace5ea01 | ||
|
|
4f52cee832 | ||
|
|
4dbf9321eb | ||
|
|
da548082fe | ||
|
|
c0748f164f | ||
|
|
a88f01321d | ||
|
|
4c336b3ca7 | ||
|
|
f44bc27a17 |
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
@@ -7,7 +7,9 @@ on:
|
||||
|
||||
jobs:
|
||||
LitmusAcceptance:
|
||||
|
||||
env:
|
||||
HONEYCOMB_WRITEKEY: 7f3c63a70eecc61d635917de46bea4e6
|
||||
HONEYCOMB_DATASET: litmus tests
|
||||
runs-on: self-hosted
|
||||
|
||||
strategy:
|
||||
|
||||
115
.sync.yml
115
.sync.yml
@@ -2,115 +2,20 @@
|
||||
".gitlab-ci.yml":
|
||||
delete: true
|
||||
".travis.yml":
|
||||
global_env:
|
||||
- HONEYCOMB_WRITEKEY="7f3c63a70eecc61d635917de46bea4e6",HONEYCOMB_DATASET="litmus tests"
|
||||
deploy_to_forge:
|
||||
enabled: false
|
||||
branches:
|
||||
- release
|
||||
includes:
|
||||
- bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=deb_puppet5
|
||||
rvm: 2.5.1
|
||||
before_script:
|
||||
- bundle exec rake 'litmus:provision_list[travis_deb]'
|
||||
- bundle exec bolt command run 'apt-get install wget -y' --inventoryfile inventory.yaml --nodes='localhost*'
|
||||
- bundle exec rake 'litmus:install_agent[puppet5]'
|
||||
- bundle exec rake litmus:install_module
|
||||
script:
|
||||
- bundle exec rake litmus:acceptance:parallel
|
||||
services: docker
|
||||
sudo: required
|
||||
stage: acceptance
|
||||
- bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=deb_puppet6
|
||||
rvm: 2.5.1
|
||||
before_script:
|
||||
- bundle exec rake 'litmus:provision_list[travis_deb]'
|
||||
- bundle exec bolt command run 'apt-get install wget -y' --inventoryfile inventory.yaml --nodes='localhost*'
|
||||
- bundle exec rake 'litmus:install_agent[puppet6]'
|
||||
- bundle exec rake litmus:install_module
|
||||
script:
|
||||
- bundle exec rake litmus:acceptance:parallel
|
||||
services: docker
|
||||
- bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=ub_puppet5
|
||||
rvm: 2.5.1
|
||||
before_script:
|
||||
- bundle exec rake 'litmus:provision_list[travis_ub]'
|
||||
- bundle exec bolt command run 'apt-get install wget -y' --inventoryfile inventory.yaml --nodes='localhost*'
|
||||
- bundle exec rake 'litmus:install_agent[puppet5]'
|
||||
- bundle exec rake litmus:install_module
|
||||
script:
|
||||
- bundle exec rake litmus:acceptance:parallel
|
||||
services: docker
|
||||
sudo: required
|
||||
stage: acceptance
|
||||
- bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=ub_puppet6
|
||||
rvm: 2.5.1
|
||||
before_script:
|
||||
- bundle exec rake 'litmus:provision_list[travis_ub]'
|
||||
- bundle exec bolt command run 'apt-get install wget -y' --inventoryfile inventory.yaml --nodes='localhost*'
|
||||
- bundle exec rake 'litmus:install_agent[puppet6]'
|
||||
- bundle exec rake litmus:install_module
|
||||
script:
|
||||
- bundle exec rake litmus:acceptance:parallel
|
||||
services: docker
|
||||
- bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=el6_puppet5
|
||||
rvm: 2.5.1
|
||||
before_script:
|
||||
- bundle exec rake 'litmus:provision_list[travis_el6]'
|
||||
- bundle exec rake 'litmus:install_agent[puppet5]'
|
||||
- bundle exec rake litmus:install_module
|
||||
script:
|
||||
- bundle exec rake litmus:acceptance:parallel
|
||||
services: docker
|
||||
sudo: required
|
||||
stage: acceptance
|
||||
- bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=el6_puppet6
|
||||
rvm: 2.5.1
|
||||
before_script:
|
||||
- bundle exec rake 'litmus:provision_list[travis_el6]'
|
||||
- bundle exec rake 'litmus:install_agent[puppet6]'
|
||||
- bundle exec rake litmus:install_module
|
||||
script:
|
||||
- bundle exec rake litmus:acceptance:parallel
|
||||
services: docker
|
||||
sudo: required
|
||||
stage: acceptance
|
||||
- bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=el7_puppet5
|
||||
rvm: 2.5.1
|
||||
before_script:
|
||||
- bundle exec rake 'litmus:provision_list[travis_el7]'
|
||||
- bundle exec rake 'litmus:install_agent[puppet5]'
|
||||
- bundle exec rake litmus:install_module
|
||||
script:
|
||||
- bundle exec rake litmus:acceptance:parallel
|
||||
services: docker
|
||||
sudo: required
|
||||
stage: acceptance
|
||||
- bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=el7_puppet6
|
||||
rvm: 2.5.1
|
||||
before_script:
|
||||
- bundle exec rake 'litmus:provision_list[travis_el7]'
|
||||
- bundle exec rake 'litmus:install_agent[puppet6]'
|
||||
- bundle exec rake litmus:install_module
|
||||
script:
|
||||
- bundle exec rake litmus:acceptance:parallel
|
||||
services: docker
|
||||
sudo: required
|
||||
stage: acceptance
|
||||
use_litmus: true
|
||||
litmus:
|
||||
provision_list:
|
||||
- travis_deb
|
||||
- travis_ub
|
||||
- travis_el6
|
||||
- travis_el7
|
||||
- ---travis_el
|
||||
simplecov: true
|
||||
notifications:
|
||||
slack:
|
||||
|
||||
181
.travis.yml
181
.travis.yml
@@ -1,4 +1,5 @@
|
||||
---
|
||||
os: linux
|
||||
dist: xenial
|
||||
language: ruby
|
||||
cache: bundler
|
||||
@@ -7,7 +8,8 @@ before_install:
|
||||
- rm -f Gemfile.lock
|
||||
- "# Update system gems if requested. This is useful to temporarily workaround troubles in the test runner"
|
||||
- "# See https://github.com/puppetlabs/pdk-templates/commit/705154d5c437796b821691b707156e1b056d244f for an example of how this was used"
|
||||
- '[ -z "$RUBYGEMS_VERSION" ] || gem update --system $RUBYGEMS_VERSION'
|
||||
- "# Ignore exit code of SIGPIPE'd yes to not fail with shell's pipefail set"
|
||||
- '[ -z "$RUBYGEMS_VERSION" ] || (yes || true) | gem update --system $RUBYGEMS_VERSION'
|
||||
- gem --version
|
||||
- bundle -v
|
||||
script:
|
||||
@@ -15,13 +17,112 @@ script:
|
||||
bundler_args: --without system_tests
|
||||
rvm:
|
||||
- 2.5.3
|
||||
env:
|
||||
global:
|
||||
- HONEYCOMB_WRITEKEY="7f3c63a70eecc61d635917de46bea4e6",HONEYCOMB_DATASET="litmus tests"
|
||||
stages:
|
||||
- static
|
||||
- spec
|
||||
- acceptance
|
||||
matrix:
|
||||
jobs:
|
||||
fast_finish: true
|
||||
include:
|
||||
-
|
||||
before_script:
|
||||
- "bundle exec rake 'litmus:provision_list[travis_deb]'"
|
||||
- "bundle exec rake 'litmus:install_agent[puppet5]'"
|
||||
- "bundle exec rake litmus:install_module"
|
||||
bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=travis_deb_puppet5
|
||||
rvm: 2.5.3
|
||||
script: ["bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
-
|
||||
before_script:
|
||||
- "bundle exec rake 'litmus:provision_list[travis_ub]'"
|
||||
- "bundle exec rake 'litmus:install_agent[puppet5]'"
|
||||
- "bundle exec rake litmus:install_module"
|
||||
bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=travis_ub_puppet5
|
||||
rvm: 2.5.3
|
||||
script: ["bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
-
|
||||
before_script:
|
||||
- "bundle exec rake 'litmus:provision_list[travis_el6]'"
|
||||
- "bundle exec rake 'litmus:install_agent[puppet5]'"
|
||||
- "bundle exec rake litmus:install_module"
|
||||
bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=travis_el6_puppet5
|
||||
rvm: 2.5.3
|
||||
script: ["bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
-
|
||||
before_script:
|
||||
- "bundle exec rake 'litmus:provision_list[travis_el7]'"
|
||||
- "bundle exec rake 'litmus:install_agent[puppet5]'"
|
||||
- "bundle exec rake litmus:install_module"
|
||||
bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=travis_el7_puppet5
|
||||
rvm: 2.5.3
|
||||
script: ["bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
-
|
||||
before_script:
|
||||
- "bundle exec rake 'litmus:provision_list[travis_deb]'"
|
||||
- "bundle exec rake 'litmus:install_agent[puppet6]'"
|
||||
- "bundle exec rake litmus:install_module"
|
||||
bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=travis_deb_puppet6
|
||||
rvm: 2.5.3
|
||||
script: ["bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
-
|
||||
before_script:
|
||||
- "bundle exec rake 'litmus:provision_list[travis_ub]'"
|
||||
- "bundle exec rake 'litmus:install_agent[puppet6]'"
|
||||
- "bundle exec rake litmus:install_module"
|
||||
bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=travis_ub_puppet6
|
||||
rvm: 2.5.3
|
||||
script: ["bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
-
|
||||
before_script:
|
||||
- "bundle exec rake 'litmus:provision_list[travis_el6]'"
|
||||
- "bundle exec rake 'litmus:install_agent[puppet6]'"
|
||||
- "bundle exec rake litmus:install_module"
|
||||
bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=travis_el6_puppet6
|
||||
rvm: 2.5.3
|
||||
script: ["bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
-
|
||||
before_script:
|
||||
- "bundle exec rake 'litmus:provision_list[travis_el7]'"
|
||||
- "bundle exec rake 'litmus:install_agent[puppet6]'"
|
||||
- "bundle exec rake litmus:install_module"
|
||||
bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=travis_el7_puppet6
|
||||
rvm: 2.5.3
|
||||
script: ["bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
-
|
||||
env: CHECK="check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop syntax lint metadata_lint"
|
||||
stage: static
|
||||
@@ -33,82 +134,6 @@ matrix:
|
||||
env: PUPPET_GEM_VERSION="~> 6.0" CHECK=parallel_spec
|
||||
rvm: 2.5.3
|
||||
stage: spec
|
||||
-
|
||||
before_script: ["bundle exec rake 'litmus:provision_list[travis_deb]'", "bundle exec bolt command run 'apt-get install wget -y' --inventoryfile inventory.yaml --nodes='localhost*'", "bundle exec rake 'litmus:install_agent[puppet5]'", "bundle exec rake litmus:install_module"]
|
||||
bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=deb_puppet5
|
||||
rvm: 2.5.1
|
||||
script: ["bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
sudo: required
|
||||
-
|
||||
before_script: ["bundle exec rake 'litmus:provision_list[travis_deb]'", "bundle exec bolt command run 'apt-get install wget -y' --inventoryfile inventory.yaml --nodes='localhost*'", "bundle exec rake 'litmus:install_agent[puppet6]'", "bundle exec rake litmus:install_module"]
|
||||
bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=deb_puppet6
|
||||
rvm: 2.5.1
|
||||
script: ["bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
-
|
||||
before_script: ["bundle exec rake 'litmus:provision_list[travis_ub]'", "bundle exec bolt command run 'apt-get install wget -y' --inventoryfile inventory.yaml --nodes='localhost*'", "bundle exec rake 'litmus:install_agent[puppet5]'", "bundle exec rake litmus:install_module"]
|
||||
bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=ub_puppet5
|
||||
rvm: 2.5.1
|
||||
script: ["bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
sudo: required
|
||||
-
|
||||
before_script: ["bundle exec rake 'litmus:provision_list[travis_ub]'", "bundle exec bolt command run 'apt-get install wget -y' --inventoryfile inventory.yaml --nodes='localhost*'", "bundle exec rake 'litmus:install_agent[puppet6]'", "bundle exec rake litmus:install_module"]
|
||||
bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=ub_puppet6
|
||||
rvm: 2.5.1
|
||||
script: ["bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
-
|
||||
before_script: ["bundle exec rake 'litmus:provision_list[travis_el6]'", "bundle exec rake 'litmus:install_agent[puppet5]'", "bundle exec rake litmus:install_module"]
|
||||
bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=el6_puppet5
|
||||
rvm: 2.5.1
|
||||
script: ["bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
sudo: required
|
||||
-
|
||||
before_script: ["bundle exec rake 'litmus:provision_list[travis_el6]'", "bundle exec rake 'litmus:install_agent[puppet6]'", "bundle exec rake litmus:install_module"]
|
||||
bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=el6_puppet6
|
||||
rvm: 2.5.1
|
||||
script: ["bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
sudo: required
|
||||
-
|
||||
before_script: ["bundle exec rake 'litmus:provision_list[travis_el7]'", "bundle exec rake 'litmus:install_agent[puppet5]'", "bundle exec rake litmus:install_module"]
|
||||
bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=el7_puppet5
|
||||
rvm: 2.5.1
|
||||
script: ["bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
sudo: required
|
||||
-
|
||||
before_script: ["bundle exec rake 'litmus:provision_list[travis_el7]'", "bundle exec rake 'litmus:install_agent[puppet6]'", "bundle exec rake litmus:install_module"]
|
||||
bundler_args:
|
||||
dist: trusty
|
||||
env: PLATFORMS=el7_puppet6
|
||||
rvm: 2.5.1
|
||||
script: ["bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
sudo: required
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
|
||||
18
CHANGELOG.md
18
CHANGELOG.md
@@ -2,6 +2,22 @@
|
||||
|
||||
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).
|
||||
|
||||
## [v6.2.0](https://github.com/puppetlabs/puppetlabs-java/tree/v6.2.0) (2020-02-18)
|
||||
|
||||
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v6.1.0...v6.2.0)
|
||||
|
||||
### Added
|
||||
|
||||
- Support AdoptOpenJDK [\#370](https://github.com/puppetlabs/puppetlabs-java/pull/370) ([timdeluxe](https://github.com/timdeluxe))
|
||||
|
||||
### Fixed
|
||||
|
||||
- Replace legacy facts by modern facts [\#406](https://github.com/puppetlabs/puppetlabs-java/pull/406) ([hdeheer](https://github.com/hdeheer))
|
||||
|
||||
## [v6.1.0](https://github.com/puppetlabs/puppetlabs-java/tree/v6.1.0) (2020-02-03)
|
||||
|
||||
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v6.0.0...v6.1.0)
|
||||
|
||||
## [v6.0.0](https://github.com/puppetlabs/puppetlabs-java/tree/v6.0.0) (2019-11-11)
|
||||
|
||||
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v5.0.1...v6.0.0)
|
||||
@@ -32,7 +48,6 @@ All notable changes to this project will be documented in this file. The format
|
||||
|
||||
- \(FM-8223\) converted to use litmus [\#376](https://github.com/puppetlabs/puppetlabs-java/pull/376) ([tphoney](https://github.com/tphoney))
|
||||
- Add buster support, default to 11 [\#369](https://github.com/puppetlabs/puppetlabs-java/pull/369) ([mhjacks](https://github.com/mhjacks))
|
||||
- Add support for debian buster [\#364](https://github.com/puppetlabs/puppetlabs-java/pull/364) ([TomRitserveldt](https://github.com/TomRitserveldt))
|
||||
|
||||
### Fixed
|
||||
|
||||
@@ -57,6 +72,7 @@ All notable changes to this project will be documented in this file. The format
|
||||
|
||||
### Added
|
||||
|
||||
- Add support for debian buster [\#364](https://github.com/puppetlabs/puppetlabs-java/pull/364) ([TomRitserveldt](https://github.com/TomRitserveldt))
|
||||
- \(FM-7921\) - Implement Puppet Strings [\#353](https://github.com/puppetlabs/puppetlabs-java/pull/353) ([david22swan](https://github.com/david22swan))
|
||||
- Update default version & java 8 version from 8u192 to 8u201 [\#347](https://github.com/puppetlabs/puppetlabs-java/pull/347) ([valentinsavenko](https://github.com/valentinsavenko))
|
||||
- Add ability to override basedir and package type for oracle java [\#345](https://github.com/puppetlabs/puppetlabs-java/pull/345) ([fraenki](https://github.com/fraenki))
|
||||
|
||||
8
Gemfile
8
Gemfile
@@ -24,10 +24,10 @@ group :development do
|
||||
gem "json", '= 2.0.4', require: false if Gem::Requirement.create('~> 2.4.2').satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
|
||||
gem "json", '= 2.1.0', require: false if Gem::Requirement.create(['>= 2.5.0', '< 2.7.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
|
||||
gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
||||
gem "puppet-module-posix-default-r#{minor_version}", '~> 0.3', require: false, platforms: [:ruby]
|
||||
gem "puppet-module-posix-dev-r#{minor_version}", '~> 0.3', require: false, platforms: [:ruby]
|
||||
gem "puppet-module-win-default-r#{minor_version}", '~> 0.3', require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
||||
gem "puppet-module-win-dev-r#{minor_version}", '~> 0.3', require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
||||
gem "puppet-module-posix-default-r#{minor_version}", '~> 0.4', require: false, platforms: [:ruby]
|
||||
gem "puppet-module-posix-dev-r#{minor_version}", '~> 0.4', require: false, platforms: [:ruby]
|
||||
gem "puppet-module-win-default-r#{minor_version}", '~> 0.4', require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
||||
gem "puppet-module-win-dev-r#{minor_version}", '~> 0.4', 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
|
||||
|
||||
|
||||
57
README.md
57
README.md
@@ -55,6 +55,56 @@ java::download { 'jdk8' :
|
||||
}
|
||||
```
|
||||
|
||||
The defined type `java::adopt` installs one or more versions of AdoptOpenJDK Java. `java::adopt` depends on [puppet/archive](https://github.com/voxpupuli/puppet-archive).
|
||||
|
||||
```puppet
|
||||
java::adopt { 'jdk8' :
|
||||
ensure => 'present',
|
||||
version => '8',
|
||||
java => 'jdk',
|
||||
}
|
||||
|
||||
java::adopt { 'jdk11' :
|
||||
ensure => 'present',
|
||||
version => '11',
|
||||
java => 'jdk',
|
||||
}
|
||||
```
|
||||
#TODO
|
||||
To install a specific release of a AdoptOpenJDK Java version, e.g. 8u202-b08, provide both parameters `version_major` and `version_minor` as follows:
|
||||
|
||||
```puppet
|
||||
java::adopt { 'jdk8' :
|
||||
ensure => 'present',
|
||||
version_major => '8u202',
|
||||
version_minor => 'b08',
|
||||
java => 'jdk',
|
||||
}
|
||||
```
|
||||
|
||||
To install AdoptOpenJDK Java to a non-default basedir (defaults: /usr/lib/jvm for Debian; /usr/java for RedHat):
|
||||
```puppet
|
||||
java::adopt { 'jdk8' :
|
||||
ensure => 'present',
|
||||
version_major => '8u202',
|
||||
version_minor => 'b08',
|
||||
java => 'jdk',
|
||||
basedir => '/custom/java',
|
||||
}
|
||||
```
|
||||
|
||||
To ensure that a custom basedir is a directory before AdoptOpenJDK Java is installed (note: manage separately for custom ownership or perms):
|
||||
```puppet
|
||||
java::adopt { 'jdk8' :
|
||||
ensure => 'present',
|
||||
version_major => '8u202',
|
||||
version_minor => 'b08',
|
||||
java => 'jdk',
|
||||
manage_basedir => true,
|
||||
basedir => '/custom/java',
|
||||
}
|
||||
```
|
||||
|
||||
## Reference
|
||||
|
||||
For information on the classes and types, see the [REFERENCE.md](https://github.com/puppetlabs/puppetlabs-java/blob/master/REFERENCE.md). For information on the facts, see below.
|
||||
@@ -104,6 +154,13 @@ Oracle Java is supported on:
|
||||
* CentOS 7
|
||||
* Red Hat Enterprise Linux (RHEL) 7
|
||||
|
||||
AdoptOpenJDK Java is supported on:
|
||||
|
||||
* CentOS
|
||||
* Red Hat Enterprise Linux (RHEL)
|
||||
* Amazon Linux
|
||||
* Debian
|
||||
|
||||
### Known issues
|
||||
|
||||
Where Oracle change the format of the URLs to different installer packages, the curl to fetch the package may fail with a HTTP/404 error. In this case, passing a full known good URL using the `url` parameter will allow the module to still be able to install specific versions of the JRE/JDK. Note the `version_major` and `version_minor` parameters must be passed and must match the version downloaded using the known URL in the `url` parameter.
|
||||
|
||||
201
REFERENCE.md
201
REFERENCE.md
@@ -18,6 +18,7 @@ options, even though those are not in the package repositories.
|
||||
|
||||
**Defined types**
|
||||
|
||||
* [`java::adopt`](#javaadopt): Defined Type java::adopt Description Installs OpenJDK Java built with AdoptOpenJDK with the Hotspot JVM. Install one or more versions of Ad
|
||||
* [`java::download`](#javadownload): Installs Java from a url location.
|
||||
|
||||
## Classes
|
||||
@@ -101,6 +102,206 @@ Default value: `undef`
|
||||
|
||||
## Defined types
|
||||
|
||||
### java::adopt
|
||||
|
||||
Defined Type java::adopt
|
||||
|
||||
Description
|
||||
Installs OpenJDK Java built with AdoptOpenJDK with the Hotspot JVM.
|
||||
|
||||
Install one or more versions of AdoptOpenJDK Java.
|
||||
|
||||
Currently only Linux RedHat, Amazon and Debian are supported.
|
||||
|
||||
Parameters
|
||||
[*version*]
|
||||
Version of Java to install, e.g. '8' or '9'. Default values for major and minor
|
||||
versions will be used.
|
||||
|
||||
[*version_major*]
|
||||
Major version which should be installed, e.g. '8u101' or '9.0.4'. Must be used together with
|
||||
version_minor.
|
||||
|
||||
[*version_minor*]
|
||||
Minor version which should be installed, e.g. 'b12' (for version = '8') or '11' (for version != '8').
|
||||
Must be used together with version_major.
|
||||
|
||||
[*java_edition*]
|
||||
Type of Java Edition to install, jdk or jre.
|
||||
|
||||
[*ensure*]
|
||||
Install or remove the package.
|
||||
|
||||
[*proxy_server*]
|
||||
Specify a proxy server, with port number if needed. ie: https://example.com:8080. (passed to archive)
|
||||
|
||||
[*proxy_type*]
|
||||
Proxy server type (none|http|https|ftp). (passed to archive)
|
||||
|
||||
[*basedir*]
|
||||
Directory under which the installation will occur. If not set, defaults to
|
||||
/usr/lib/jvm for Debian and /usr/java for RedHat.
|
||||
|
||||
[*manage_basedir*]
|
||||
Whether to manage the basedir directory. Defaults to false.
|
||||
Note: /usr/lib/jvm is managed for Debian by default, separate from this parameter.
|
||||
|
||||
[*package_type*]
|
||||
Type of installation package for specified version of java. java 6 comes
|
||||
in a few installation package flavors and we need to account for them.
|
||||
Optional forced package types: rpm, rpmbin, tar.gz
|
||||
|
||||
Variables
|
||||
[*release_major*]
|
||||
Major version release number for java. Used to construct download URL.
|
||||
|
||||
[*release_minor*]
|
||||
Minor version release number for java. Used to construct download URL.
|
||||
|
||||
[*install_path*]
|
||||
Base install path for specified version of java. Used to determine if java
|
||||
has already been installed.
|
||||
|
||||
[*os*]
|
||||
java OS type.
|
||||
|
||||
[*destination*]
|
||||
Destination directory to save java installer to. Usually /tmp on Linux and
|
||||
C:\TEMP on Windows.
|
||||
|
||||
[*creates_path*]
|
||||
Fully qualified path to java after it is installed. Used to determine if
|
||||
java is already installed.
|
||||
|
||||
[*arch*]
|
||||
java architecture type.
|
||||
|
||||
[*package_name*]
|
||||
Name of the java installation package to download from github.
|
||||
|
||||
[*install_command*]
|
||||
Installation command used to install java. Installation commands
|
||||
differ by package_type. 'bin' types are installed via shell command. 'rpmbin'
|
||||
types have the rpms extracted and then forcibly installed. 'rpm' types are
|
||||
forcibly installed.
|
||||
|
||||
[*spacer*]
|
||||
Spacer to be used in github download url. In major version 8 this is a simple dash
|
||||
in later versions they use a crazy plus sign, which needs to be used in urlencoded
|
||||
format
|
||||
|
||||
[*download_folder_prefix*]
|
||||
Download folder name begins differently depending on the release. After major release
|
||||
8, they have given it a dash. Be aware that even if you want to have a JRE, the folder
|
||||
still begins with "jdk"
|
||||
|
||||
[*release_minor_url*]
|
||||
filled depending on major release. Until major release 8 the minor part needs to be given
|
||||
with a 'b' for build, in later versions it is a underscore or a plus sign, which needs
|
||||
to be stripped for the download url and is replaced with the given spaces (see above)
|
||||
|
||||
[*_package_type*]
|
||||
Helper variable which gets filled depending on parameter package_type
|
||||
|
||||
[*_basedir*]
|
||||
Helper variable which gets filled depending on parameter basedir
|
||||
|
||||
[*_version*]
|
||||
Helper variable which gets filled depending on parameter version
|
||||
|
||||
[*_version_int*]
|
||||
Helper variable which gets the value of $_version converted to integer
|
||||
|
||||
[*_append_jre*]
|
||||
Helper variable which gets filled with the string "-jre" if jre was selected to build the correct install path
|
||||
|
||||
[*_release_minor_package_name*]
|
||||
Helper variable which gets filled with the right minor string depending on the major version
|
||||
|
||||
#### Parameters
|
||||
|
||||
The following parameters are available in the `java::adopt` defined type.
|
||||
|
||||
##### `ensure`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
|
||||
|
||||
Default value: 'present'
|
||||
|
||||
##### `version`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
|
||||
|
||||
Default value: '8'
|
||||
|
||||
##### `version_major`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
|
||||
|
||||
Default value: `undef`
|
||||
|
||||
##### `version_minor`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
|
||||
|
||||
Default value: `undef`
|
||||
|
||||
##### `java`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
|
||||
|
||||
Default value: 'jdk'
|
||||
|
||||
##### `proxy_server`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
|
||||
|
||||
Default value: `undef`
|
||||
|
||||
##### `proxy_type`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
|
||||
|
||||
Default value: `undef`
|
||||
|
||||
##### `basedir`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
|
||||
|
||||
Default value: `undef`
|
||||
|
||||
##### `manage_basedir`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
|
||||
|
||||
Default value: `true`
|
||||
|
||||
##### `package_type`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
|
||||
|
||||
Default value: `undef`
|
||||
|
||||
### java::download
|
||||
|
||||
Defined Type java::download
|
||||
|
||||
2
Rakefile
2
Rakefile
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'puppet_litmus/rake_tasks' if Bundler.rubygems.find_name('puppet_litmus').any?
|
||||
require 'puppetlabs_spec_helper/rake_tasks'
|
||||
require 'puppet-syntax/tasks/puppet-syntax'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
class { 'java':
|
||||
package => 'jdk-8u25-linux-x64',
|
||||
java_alternative => 'jdk1.8.0_25',
|
||||
java_alternative_path => '/usr/java/jdk1.8.0_25/jre/bin/java'
|
||||
java_alternative_path => '/usr/java/jdk1.8.0_25/jre/bin/java',
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#
|
||||
# Caveats:
|
||||
# Needs to list files recursively. Returns the first match
|
||||
# Needs working java_major_version fact
|
||||
#
|
||||
# Notes:
|
||||
# None
|
||||
@@ -14,8 +15,12 @@ Facter.add(:java_libjvm_path) do
|
||||
confine kernel: ['Linux', 'OpenBSD']
|
||||
setcode do
|
||||
java_default_home = Facter.value(:java_default_home)
|
||||
if java_default_home
|
||||
java_libjvm_file = Dir.glob("#{java_default_home}/**/lib/**/libjvm.so")
|
||||
java_major_version = Facter.value(:java_major_version)
|
||||
unless java_major_version.nil?
|
||||
java_libjvm_file = if java_major_version.to_i >= 11
|
||||
Dir.glob("#{java_default_home}/lib/**/libjvm.so")
|
||||
else
|
||||
Dir.glob("#{java_default_home}/jre/lib/**/libjvm.so")
|
||||
end
|
||||
if java_libjvm_file.nil? || java_libjvm_file.empty?
|
||||
nil
|
||||
@@ -23,4 +28,5 @@ Facter.add(:java_libjvm_path) do
|
||||
File.dirname(java_libjvm_file[0])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -17,12 +17,10 @@ Facter.add(:java_major_version) do
|
||||
setcode do
|
||||
java_version = Facter.value(:java_version)
|
||||
unless java_version.nil?
|
||||
# First part > 1, use the first part as major version
|
||||
java_version_first_number = java_version.strip.split('.')[0]
|
||||
java_major_version = if java_version_first_number.to_i > 1
|
||||
java_version_first_number
|
||||
else
|
||||
java_major_version = if java_version.strip[0..1] == '1.'
|
||||
java_version.strip.split('_')[0].split('.')[1]
|
||||
else
|
||||
java_version.strip.split('.')[0]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# Purpose: get Java's patch level
|
||||
#
|
||||
# Resolution:
|
||||
# Uses java_version fact splits on the patch number (after _)
|
||||
# Uses java_version fact splits on the patch number (after _ for 1.x and patch number for semver'ed javas)
|
||||
#
|
||||
# Caveats:
|
||||
# none
|
||||
@@ -15,12 +15,10 @@ Facter.add(:java_patch_level) do
|
||||
setcode do
|
||||
java_version = Facter.value(:java_version)
|
||||
unless java_version.nil?
|
||||
# First part > 1, use . as seperator to get patch level
|
||||
java_version_first_number = java_version.strip.split('.')[0]
|
||||
java_patch_level = if java_version_first_number.to_i > 1
|
||||
java_version.strip.split('.')[2]
|
||||
if java_version.strip[0..1] == '1.'
|
||||
java_patch_level = java_version.strip.split('_')[1] unless java_version.nil?
|
||||
else
|
||||
java_version.strip.split('_')[1]
|
||||
java_patch_level = java_version.strip.split('.')[2] unless java_version.nil?
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# Resolution:
|
||||
# Tests for presence of java, returns nil if not present
|
||||
# returns output of "java -version" and splits on \n + '"'
|
||||
# returns output of "java -version" and splits on '"'
|
||||
#
|
||||
# Caveats:
|
||||
# none
|
||||
@@ -24,8 +24,7 @@ Facter.add(:java_version) do
|
||||
unless ['darwin'].include? Facter.value(:operatingsystem).downcase
|
||||
version = nil
|
||||
if Facter::Util::Resolution.which('java')
|
||||
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = $LAST_MATCH_INFO[1] if %r{^.+ version \"(.+)\".*$} =~ line }
|
||||
|
||||
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = Regexp.last_match(1) if %r{^.+ version \"(.+)\"} =~ line }
|
||||
end
|
||||
version
|
||||
end
|
||||
@@ -38,7 +37,7 @@ Facter.add(:java_version) do
|
||||
setcode do
|
||||
unless %r{Unable to find any JVMs matching version} =~ Facter::Util::Resolution.exec('/usr/libexec/java_home --failfast 2>&1')
|
||||
version = nil
|
||||
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = $LAST_MATCH_INFO[1] if %r{^.+ version \"(.+)\"$} =~ line }
|
||||
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = Regexp.last_match(1) if %r{^.+ version \"(.+)\"} =~ line }
|
||||
version
|
||||
end
|
||||
end
|
||||
|
||||
371
manifests/adopt.pp
Normal file
371
manifests/adopt.pp
Normal file
@@ -0,0 +1,371 @@
|
||||
# Defined Type java::adopt
|
||||
#
|
||||
# Description
|
||||
# Installs OpenJDK Java built with AdoptOpenJDK with the Hotspot JVM.
|
||||
#
|
||||
# Install one or more versions of AdoptOpenJDK Java.
|
||||
#
|
||||
# Currently only Linux RedHat, Amazon and Debian are supported.
|
||||
#
|
||||
# Parameters
|
||||
# [*version*]
|
||||
# Version of Java to install, e.g. '8' or '9'. Default values for major and minor
|
||||
# versions will be used.
|
||||
#
|
||||
# [*version_major*]
|
||||
# Major version which should be installed, e.g. '8u101' or '9.0.4'. Must be used together with
|
||||
# version_minor.
|
||||
#
|
||||
# [*version_minor*]
|
||||
# Minor version which should be installed, e.g. 'b12' (for version = '8') or '11' (for version != '8').
|
||||
# Must be used together with version_major.
|
||||
#
|
||||
# [*java_edition*]
|
||||
# Type of Java Edition to install, jdk or jre.
|
||||
#
|
||||
# [*ensure*]
|
||||
# Install or remove the package.
|
||||
#
|
||||
# [*proxy_server*]
|
||||
# Specify a proxy server, with port number if needed. ie: https://example.com:8080. (passed to archive)
|
||||
#
|
||||
# [*proxy_type*]
|
||||
# Proxy server type (none|http|https|ftp). (passed to archive)
|
||||
#
|
||||
# [*basedir*]
|
||||
# Directory under which the installation will occur. If not set, defaults to
|
||||
# /usr/lib/jvm for Debian and /usr/java for RedHat.
|
||||
#
|
||||
# [*manage_basedir*]
|
||||
# Whether to manage the basedir directory. Defaults to false.
|
||||
# Note: /usr/lib/jvm is managed for Debian by default, separate from this parameter.
|
||||
#
|
||||
# [*package_type*]
|
||||
# Type of installation package for specified version of java. java 6 comes
|
||||
# in a few installation package flavors and we need to account for them.
|
||||
# Optional forced package types: rpm, rpmbin, tar.gz
|
||||
#
|
||||
# Variables
|
||||
# [*release_major*]
|
||||
# Major version release number for java. Used to construct download URL.
|
||||
#
|
||||
# [*release_minor*]
|
||||
# Minor version release number for java. Used to construct download URL.
|
||||
#
|
||||
# [*install_path*]
|
||||
# Base install path for specified version of java. Used to determine if java
|
||||
# has already been installed.
|
||||
#
|
||||
# [*os*]
|
||||
# java OS type.
|
||||
#
|
||||
# [*destination*]
|
||||
# Destination directory to save java installer to. Usually /tmp on Linux and
|
||||
# C:\TEMP on Windows.
|
||||
#
|
||||
# [*creates_path*]
|
||||
# Fully qualified path to java after it is installed. Used to determine if
|
||||
# java is already installed.
|
||||
#
|
||||
# [*arch*]
|
||||
# java architecture type.
|
||||
#
|
||||
# [*package_name*]
|
||||
# Name of the java installation package to download from github.
|
||||
#
|
||||
# [*install_command*]
|
||||
# Installation command used to install java. Installation commands
|
||||
# differ by package_type. 'bin' types are installed via shell command. 'rpmbin'
|
||||
# types have the rpms extracted and then forcibly installed. 'rpm' types are
|
||||
# forcibly installed.
|
||||
#
|
||||
# [*spacer*]
|
||||
# Spacer to be used in github download url. In major version 8 this is a simple dash
|
||||
# in later versions they use a crazy plus sign, which needs to be used in urlencoded
|
||||
# format
|
||||
#
|
||||
# [*download_folder_prefix*]
|
||||
# Download folder name begins differently depending on the release. After major release
|
||||
# 8, they have given it a dash. Be aware that even if you want to have a JRE, the folder
|
||||
# still begins with "jdk"
|
||||
#
|
||||
# [*release_minor_url*]
|
||||
# filled depending on major release. Until major release 8 the minor part needs to be given
|
||||
# with a 'b' for build, in later versions it is a underscore or a plus sign, which needs
|
||||
# to be stripped for the download url and is replaced with the given spaces (see above)
|
||||
#
|
||||
# [*_package_type*]
|
||||
# Helper variable which gets filled depending on parameter package_type
|
||||
#
|
||||
# [*_basedir*]
|
||||
# Helper variable which gets filled depending on parameter basedir
|
||||
#
|
||||
# [*_version*]
|
||||
# Helper variable which gets filled depending on parameter version
|
||||
#
|
||||
# [*_version_int*]
|
||||
# Helper variable which gets the value of $_version converted to integer
|
||||
#
|
||||
# [*_append_jre*]
|
||||
# Helper variable which gets filled with the string "-jre" if jre was selected to build the correct install path
|
||||
#
|
||||
# [*_release_minor_package_name*]
|
||||
# Helper variable which gets filled with the right minor string depending on the major version
|
||||
#
|
||||
define java::adopt (
|
||||
$ensure = 'present',
|
||||
$version = '8',
|
||||
$version_major = undef,
|
||||
$version_minor = undef,
|
||||
$java = 'jdk',
|
||||
$proxy_server = undef,
|
||||
$proxy_type = undef,
|
||||
$basedir = undef,
|
||||
$manage_basedir = true,
|
||||
$package_type = undef,
|
||||
) {
|
||||
|
||||
# archive module is used to download the java package
|
||||
include ::archive
|
||||
|
||||
# validate java Standard Edition to download
|
||||
if $java !~ /(jre|jdk)/ {
|
||||
fail('java must be either jre or jdk.')
|
||||
}
|
||||
|
||||
# determine AdoptOpenJDK Java major and minor version, and installation path
|
||||
if $version_major and $version_minor {
|
||||
|
||||
$release_major = $version_major
|
||||
$release_minor = $version_minor
|
||||
|
||||
if ( $version_major[0] == '8' or $version_major[0] == '9' ) {
|
||||
$_version = $version_major[0]
|
||||
} else {
|
||||
$_version = $version_major[0,2]
|
||||
}
|
||||
|
||||
$_version_int = Numeric($_version)
|
||||
|
||||
if ( $java == 'jre' ) {
|
||||
$_append_jre = '-jre'
|
||||
} else {
|
||||
$_append_jre = ''
|
||||
}
|
||||
|
||||
# extracted folders look like this:
|
||||
# jdk8u202-b08
|
||||
# jdk-9.0.4+11
|
||||
# jdk-10.0.2+13
|
||||
# jdk-11.0.2+9
|
||||
# jdk-12.0.1+12
|
||||
# jdk8u202-b08-jre
|
||||
# jdk-9.0.4+11-jre
|
||||
# hence we need to check for the major version and build the install path according to it
|
||||
if ( $_version_int == 8 ) {
|
||||
$install_path = "jdk${release_major}-${release_minor}${_append_jre}"
|
||||
} elsif ( $_version_int > 8 ) {
|
||||
$install_path = "jdk-${release_major}+${release_minor}${_append_jre}"
|
||||
} else {
|
||||
fail ("unsupported version ${_version}")
|
||||
}
|
||||
|
||||
} else {
|
||||
$_version = $version
|
||||
$_version_int = Numeric($_version)
|
||||
# use default versions if no specific major and minor version parameters are provided
|
||||
case $version {
|
||||
'8' : {
|
||||
$release_major = '8u202'
|
||||
$release_minor = 'b08'
|
||||
$install_path = "${java}8u202-b08"
|
||||
}
|
||||
'9' : {
|
||||
$release_major = '9.0.4'
|
||||
$release_minor = '11'
|
||||
$install_path = "${java}-9.0.4+11"
|
||||
}
|
||||
# minor release is given with +<number>, however package etc. works with underscore, so we use underscore here
|
||||
'10' : {
|
||||
$release_major = '10.0.2'
|
||||
$release_minor = '13'
|
||||
$install_path = "${java}-10.0.2+13"
|
||||
}
|
||||
'11' : {
|
||||
$release_major = '11.0.2'
|
||||
$release_minor = '9'
|
||||
$install_path = "${java}-11.0.2+9"
|
||||
}
|
||||
# minor release is given with +<number>, however package etc. works with underscore, so we use underscore here
|
||||
'12' : {
|
||||
$release_major = '12.0.1'
|
||||
$release_minor = '12'
|
||||
$install_path = "${java}-12.0.1+12"
|
||||
}
|
||||
default : {
|
||||
$release_major = '8u202'
|
||||
$release_minor = 'b08'
|
||||
$install_path = "${java}8u202-b08"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# determine package type (exe/tar/rpm), destination directory based on OS
|
||||
case $facts['kernel'] {
|
||||
'Linux' : {
|
||||
case $facts['os']['family'] {
|
||||
'RedHat', 'Amazon' : {
|
||||
if $package_type {
|
||||
$_package_type = $package_type
|
||||
} else {
|
||||
$_package_type = 'tar.gz'
|
||||
}
|
||||
if $basedir {
|
||||
$_basedir = $basedir
|
||||
} else {
|
||||
$_basedir = '/usr/java'
|
||||
}
|
||||
}
|
||||
'Debian' : {
|
||||
if $package_type {
|
||||
$_package_type = $package_type
|
||||
} else {
|
||||
$_package_type = 'tar.gz'
|
||||
}
|
||||
if $basedir {
|
||||
$_basedir = $basedir
|
||||
} else {
|
||||
$_basedir = '/usr/lib/jvm'
|
||||
}
|
||||
}
|
||||
default : {
|
||||
fail ("unsupported platform ${$facts['os']['name']}") }
|
||||
}
|
||||
|
||||
$creates_path = "${_basedir}/${install_path}"
|
||||
$os = 'linux'
|
||||
$destination_dir = '/tmp/'
|
||||
}
|
||||
default : {
|
||||
fail ( "unsupported platform ${$facts['kernel']}" ) }
|
||||
}
|
||||
|
||||
# set java architecture nomenclature
|
||||
$os_architecture = $facts['os']['architecture'] ? {
|
||||
undef => $facts['architecture'],
|
||||
default => $facts['os']['architecture']
|
||||
}
|
||||
|
||||
case $os_architecture {
|
||||
'i386' : { $arch = 'x86-32' }
|
||||
'x86_64' : { $arch = 'x64' }
|
||||
'amd64' : { $arch = 'x64' }
|
||||
default : {
|
||||
fail ("unsupported platform ${$os_architecture}")
|
||||
}
|
||||
}
|
||||
|
||||
# package name and path for download from github
|
||||
#
|
||||
# following are build based on this real life example full URLs:
|
||||
#
|
||||
# https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u202-b08/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz
|
||||
# https://github.com/AdoptOpenJDK/openjdk9-binaries/releases/download/jdk-9.0.4%2B11/OpenJDK9U-jdk_x64_linux_hotspot_9.0.4_11.tar.gz
|
||||
# https://github.com/AdoptOpenJDK/openjdk10-binaries/releases/download/jdk-10.0.2%2B13/OpenJDK10U-jdk_x64_linux_hotspot_10.0.2_13.tar.gz
|
||||
# https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.2%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz
|
||||
# https://github.com/AdoptOpenJDK/openjdk12-binaries/releases/download/jdk-12.0.1%2B12/OpenJDK12U-jdk_x64_linux_hotspot_12.0.1_12.tar.gz
|
||||
# jre just replaces jdk with jre in the archive name, but not in the path name!
|
||||
# https://github.com/AdoptOpenJDK/openjdk9-binaries/releases/download/jdk-9.0.4%2B11/OpenJDK9U-jre_x64_linux_hotspot_9.0.4_11.tar.gz
|
||||
|
||||
if ( $_version_int == 8 ) {
|
||||
$_release_minor_package_name = $release_minor
|
||||
} else {
|
||||
$_release_minor_package_name = "_${release_minor}"
|
||||
}
|
||||
|
||||
case $_package_type {
|
||||
'tar.gz': {
|
||||
$package_name = "OpenJDK${_version}U-${java}_${arch}_${os}_hotspot_${release_major}${_release_minor_package_name}.tar.gz"
|
||||
}
|
||||
default: {
|
||||
$package_name = "OpenJDK${_version}U-${java}_${arch}_${os}_hotspot_${release_major}${_release_minor_package_name}.tar.gz"
|
||||
}
|
||||
}
|
||||
|
||||
# naming convention changed after major version 8, setting variables to consider that
|
||||
# download_folder_prefix always begins with "jdk", even for jre! see comments for package_name above
|
||||
if ( $_version_int == 8 ) {
|
||||
$spacer = '-'
|
||||
$download_folder_prefix = 'jdk'
|
||||
} else {
|
||||
$spacer = '%2B'
|
||||
$download_folder_prefix = 'jdk-'
|
||||
}
|
||||
$source = "https://github.com/AdoptOpenJDK/openjdk${_version}-binaries/releases/download/${download_folder_prefix}${release_major}${spacer}${release_minor}/${package_name}"
|
||||
|
||||
# full path to the installer
|
||||
$destination = "${destination_dir}${package_name}"
|
||||
notice ("Destination is ${destination}")
|
||||
|
||||
case $_package_type {
|
||||
'tar.gz' : {
|
||||
$install_command = "tar -zxf ${destination} -C ${_basedir}"
|
||||
}
|
||||
default : {
|
||||
$install_command = "tar -zxf ${destination} -C ${_basedir}"
|
||||
}
|
||||
}
|
||||
|
||||
case $ensure {
|
||||
'present' : {
|
||||
archive { $destination :
|
||||
ensure => present,
|
||||
source => $source,
|
||||
extract_path => '/tmp',
|
||||
cleanup => false,
|
||||
creates => $creates_path,
|
||||
proxy_server => $proxy_server,
|
||||
proxy_type => $proxy_type,
|
||||
}
|
||||
case $facts['kernel'] {
|
||||
'Linux' : {
|
||||
case $facts['os']['family'] {
|
||||
'Debian' : {
|
||||
ensure_resource('file', $_basedir, {
|
||||
ensure => directory,
|
||||
})
|
||||
$install_requires = [Archive[$destination], File[$_basedir]]
|
||||
}
|
||||
default : {
|
||||
$install_requires = [Archive[$destination]]
|
||||
}
|
||||
}
|
||||
|
||||
if $manage_basedir {
|
||||
if (!defined(File[$_basedir])) {
|
||||
file { $_basedir:
|
||||
ensure => 'directory',
|
||||
before => Exec["Install AdoptOpenJDK java ${java} ${_version} ${release_major} ${release_minor}"],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
exec { "Install AdoptOpenJDK java ${java} ${_version} ${release_major} ${release_minor}" :
|
||||
path => '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin',
|
||||
command => $install_command,
|
||||
creates => $creates_path,
|
||||
require => $install_requires
|
||||
}
|
||||
|
||||
}
|
||||
default : {
|
||||
fail ("unsupported platform ${$facts['kernel']}")
|
||||
}
|
||||
}
|
||||
}
|
||||
default : {
|
||||
notice ("Action ${ensure} not supported.")
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
# @api private
|
||||
class java::config ( ) {
|
||||
case $::osfamily {
|
||||
case $facts['os']['family'] {
|
||||
'Debian': {
|
||||
if $java::use_java_alternative != undef and $java::use_java_alternative_path != undef {
|
||||
exec { 'update-java-alternatives':
|
||||
@@ -26,7 +26,7 @@ class java::config ( ) {
|
||||
path => '/usr/bin:/usr/sbin:/bin:/sbin',
|
||||
command => "alternatives --install /usr/bin/java java ${$java::use_java_alternative_path} 20000" ,
|
||||
unless => "alternatives --display java | grep -q ${$java::use_java_alternative_path}",
|
||||
before => Exec['update-java-alternatives']
|
||||
before => Exec['update-java-alternatives'],
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ define java::download(
|
||||
) {
|
||||
|
||||
# archive module is used to download the java package
|
||||
include ::archive
|
||||
include archive
|
||||
|
||||
# validate java Standard Edition to download
|
||||
if $java_se !~ /(jre|jdk)/ {
|
||||
@@ -183,7 +183,7 @@ define java::download(
|
||||
|
||||
# set java architecture nomenclature
|
||||
$os_architecture = $facts['os']['architecture'] ? {
|
||||
undef => $facts['architecture'],
|
||||
undef => $facts['os']['architecture'],
|
||||
default => $facts['os']['architecture']
|
||||
}
|
||||
|
||||
@@ -284,14 +284,14 @@ define java::download(
|
||||
path => '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin',
|
||||
command => $install_command,
|
||||
creates => $creates_path,
|
||||
require => $install_requires
|
||||
require => $install_requires,
|
||||
}
|
||||
|
||||
if ($manage_symlink and $symlink_name) {
|
||||
file { "${_basedir}/${symlink_name}":
|
||||
ensure => link,
|
||||
target => $creates_path,
|
||||
require => Exec["Install Oracle java_se ${java_se} ${version} ${release_major} ${release_minor}"]
|
||||
require => Exec["Install Oracle java_se ${java_se} ${version} ${release_major} ${release_minor}"],
|
||||
}
|
||||
}
|
||||
|
||||
@@ -312,7 +312,7 @@ define java::download(
|
||||
require => [
|
||||
Package['unzip'],
|
||||
Exec["Install Oracle java_se ${java_se} ${version} ${release_major} ${release_minor}"]
|
||||
]
|
||||
],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ class java(
|
||||
$use_java_package_name == undef or $use_java_alternative == undef or
|
||||
$use_java_alternative_path == undef or $use_java_home == undef
|
||||
) and (
|
||||
! has_key($::java::params::java, $distribution)
|
||||
! has_key($java::params::java, $distribution)
|
||||
)) {
|
||||
fail("Java distribution ${distribution} is not supported. Missing default values.")
|
||||
}
|
||||
@@ -111,7 +111,7 @@ class java(
|
||||
default => '--jre'
|
||||
}
|
||||
|
||||
if $::osfamily == 'Debian' {
|
||||
if $facts['os']['family'] == 'Debian' {
|
||||
# Needed for update-java-alternatives
|
||||
package { 'java-common':
|
||||
ensure => present,
|
||||
|
||||
@@ -6,23 +6,23 @@
|
||||
# @api private
|
||||
class java::params {
|
||||
|
||||
case $::osfamily {
|
||||
case $facts['os']['family'] {
|
||||
'RedHat': {
|
||||
case $::operatingsystem {
|
||||
case $facts['os']['name'] {
|
||||
'RedHat', 'CentOS', 'OracleLinux', 'Scientific', 'OEL', 'SLC', 'CloudLinux': {
|
||||
if (versioncmp($::operatingsystemrelease, '5.0') < 0) {
|
||||
if (versioncmp($facts['os']['release']['full'], '5.0') < 0) {
|
||||
$jdk_package = 'java-1.6.0-sun-devel'
|
||||
$jre_package = 'java-1.6.0-sun'
|
||||
$java_home = '/usr/lib/jvm/java-1.6.0-sun/jre/'
|
||||
}
|
||||
# See cde7046 for why >= 5.0 < 6.3
|
||||
elsif (versioncmp($::operatingsystemrelease, '6.3') < 0) {
|
||||
elsif (versioncmp($facts['os']['release']['full'], '6.3') < 0) {
|
||||
$jdk_package = 'java-1.6.0-openjdk-devel'
|
||||
$jre_package = 'java-1.6.0-openjdk'
|
||||
$java_home = '/usr/lib/jvm/java-1.6.0/'
|
||||
}
|
||||
# See PR#160 / c8e46b5 for why >= 6.3 < 7.1
|
||||
elsif (versioncmp($::operatingsystemrelease, '7.1') < 0) {
|
||||
elsif (versioncmp($facts['os']['release']['full'], '7.1') < 0) {
|
||||
$jdk_package = 'java-1.7.0-openjdk-devel'
|
||||
$jre_package = 'java-1.7.0-openjdk'
|
||||
$java_home = '/usr/lib/jvm/java-1.7.0/'
|
||||
@@ -34,23 +34,23 @@ class java::params {
|
||||
}
|
||||
}
|
||||
'Fedora': {
|
||||
if (versioncmp($::operatingsystemrelease, '21') < 0) {
|
||||
if (versioncmp($facts['os']['release']['full'], '21') < 0) {
|
||||
$jdk_package = 'java-1.7.0-openjdk-devel'
|
||||
$jre_package = 'java-1.7.0-openjdk'
|
||||
$java_home = "/usr/lib/jvm/java-1.7.0-openjdk-${::architecture}/"
|
||||
$java_home = "/usr/lib/jvm/java-1.7.0-openjdk-${facts['os']['architecture']}/"
|
||||
}
|
||||
else {
|
||||
$jdk_package = 'java-1.8.0-openjdk-devel'
|
||||
$jre_package = 'java-1.8.0-openjdk'
|
||||
$java_home = "/usr/lib/jvm/java-1.8.0-openjdk-${::architecture}/"
|
||||
$java_home = "/usr/lib/jvm/java-1.8.0-openjdk-${facts['os']['architecture']}/"
|
||||
}
|
||||
}
|
||||
'Amazon': {
|
||||
$jdk_package = 'java-1.7.0-openjdk-devel'
|
||||
$jre_package = 'java-1.7.0-openjdk'
|
||||
$java_home = "/usr/lib/jvm/java-1.7.0-openjdk-${::architecture}/"
|
||||
$java_home = "/usr/lib/jvm/java-1.7.0-openjdk-${facts['os']['architecture']}/"
|
||||
}
|
||||
default: { fail("unsupported os ${::operatingsystem}") }
|
||||
default: { fail("unsupported os ${facts['os']['name']}") }
|
||||
}
|
||||
$java = {
|
||||
'jdk' => {
|
||||
@@ -64,16 +64,16 @@ class java::params {
|
||||
}
|
||||
}
|
||||
'Debian': {
|
||||
$oracle_architecture = $::architecture ? {
|
||||
$oracle_architecture = $facts['os']['architecture'] ? {
|
||||
'amd64' => 'x64',
|
||||
default => $::architecture
|
||||
default => $facts['os']['architecture']
|
||||
}
|
||||
$openjdk_architecture = $::architecture ? {
|
||||
$openjdk_architecture = $facts['os']['architecture'] ? {
|
||||
'aarch64' => 'arm64',
|
||||
'armv7l' => 'armhf',
|
||||
default => $::architecture
|
||||
default => $facts['os']['architecture']
|
||||
}
|
||||
case $::operatingsystemmajrelease {
|
||||
case $facts['os']['release']['major'] {
|
||||
'7', '8', '14.04': {
|
||||
$java = {
|
||||
'jdk' => {
|
||||
@@ -84,7 +84,7 @@ class java::params {
|
||||
},
|
||||
'jre' => {
|
||||
'package' => 'openjdk-7-jre-headless',
|
||||
'alternative' => "java-1.7.0-openjdk-${::architecture}",
|
||||
'alternative' => "java-1.7.0-openjdk-${facts['os']['architecture']}",
|
||||
'alternative_path' => "/usr/lib/jvm/java-1.7.0-openjdk-${openjdk_architecture}/bin/java",
|
||||
'java_home' => "/usr/lib/jvm/java-1.7.0-openjdk-${openjdk_architecture}/",
|
||||
},
|
||||
@@ -139,7 +139,7 @@ class java::params {
|
||||
'alternative' => "java-1.8.0-openjdk-${openjdk_architecture}",
|
||||
'alternative_path' => "/usr/lib/jvm/java-1.8.0-openjdk-${openjdk_architecture}/bin/java",
|
||||
'java_home' => "/usr/lib/jvm/java-1.8.0-openjdk-${openjdk_architecture}/",
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
'10', '18.04', '18.10', '19.04', '19.10': {
|
||||
@@ -155,10 +155,10 @@ class java::params {
|
||||
'alternative' => "java-1.11.0-openjdk-${openjdk_architecture}",
|
||||
'alternative_path' => "/usr/lib/jvm/java-1.11.0-openjdk-${openjdk_architecture}/bin/java",
|
||||
'java_home' => "/usr/lib/jvm/java-1.11.0-openjdk-${openjdk_architecture}/",
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
default: { fail("unsupported release ${::operatingsystemmajrelease}") }
|
||||
default: { fail("unsupported release ${facts['os']['release']['major']}") }
|
||||
}
|
||||
}
|
||||
'OpenBSD': {
|
||||
@@ -198,17 +198,17 @@ class java::params {
|
||||
}
|
||||
}
|
||||
'Suse': {
|
||||
case $::operatingsystem {
|
||||
case $facts['os']['name'] {
|
||||
'SLES': {
|
||||
if (versioncmp($::operatingsystemrelease, '12.1') >= 0) {
|
||||
if (versioncmp($facts['os']['release']['full'], '12.1') >= 0) {
|
||||
$jdk_package = 'java-1_8_0-openjdk-devel'
|
||||
$jre_package = 'java-1_8_0-openjdk'
|
||||
$java_home = '/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/'
|
||||
} elsif (versioncmp($::operatingsystemrelease, '12') >= 0) {
|
||||
} elsif (versioncmp($facts['os']['release']['full'], '12') >= 0) {
|
||||
$jdk_package = 'java-1_7_0-openjdk-devel'
|
||||
$jre_package = 'java-1_7_0-openjdk'
|
||||
$java_home = '/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/'
|
||||
} elsif (versioncmp($::operatingsystemrelease, '11.4') >= 0) {
|
||||
} elsif (versioncmp($facts['os']['release']['full'], '11.4') >= 0) {
|
||||
$jdk_package = 'java-1_7_1-ibm-devel'
|
||||
$jre_package = 'java-1_7_1-ibm'
|
||||
$java_home = '/usr/lib64/jvm/java-1.7.1-ibm-1.7.1/'
|
||||
@@ -255,6 +255,6 @@ class java::params {
|
||||
},
|
||||
}
|
||||
}
|
||||
default: { fail("unsupported platform ${::osfamily}") }
|
||||
default: { fail("unsupported platform ${facts['os']['family']}") }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "puppetlabs-java",
|
||||
"version": "6.1.0",
|
||||
"version": "6.2.0",
|
||||
"author": "puppetlabs",
|
||||
"summary": "Installs the correct Java package on various platforms.",
|
||||
"license": "Apache-2.0",
|
||||
@@ -81,6 +81,6 @@
|
||||
}
|
||||
],
|
||||
"template-url": "https://github.com/puppetlabs/pdk-templates#master",
|
||||
"template-ref": "heads/master-0-gcaed9d7",
|
||||
"pdk-version": "1.15.0"
|
||||
"template-ref": "heads/master-0-g88c96ab",
|
||||
"pdk-version": "1.16.0"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
require 'spec_helper_acceptance'
|
||||
require 'pry'
|
||||
|
||||
java_class_jre = "class { 'java':\n"\
|
||||
" distribution => 'jre',\n"\
|
||||
@@ -41,6 +42,102 @@ bogus_alternative = "class { 'java':\n"\
|
||||
" java_alternative_path => '/whatever',\n"\
|
||||
'}'
|
||||
|
||||
# Oracle installs are disabled by default, because the links to valid oracle installations
|
||||
# change often. Look the parameters up from the Oracle download URLs at https://java.oracle.com and
|
||||
# enable the tests:
|
||||
|
||||
oracle_enabled = false
|
||||
oracle_version_major = '8'
|
||||
oracle_version_minor = '201'
|
||||
oracle_version_build = '09'
|
||||
oracle_hash = '42970487e3af4f5aa5bca3f542482c60'
|
||||
|
||||
install_oracle_jdk_jre = <<EOL
|
||||
java::oracle {
|
||||
'test_oracle_jre':
|
||||
version => '#{oracle_version_major}',
|
||||
version_major => '#{oracle_version_major}u#{oracle_version_minor}',
|
||||
version_minor => 'b#{oracle_version_build}',
|
||||
url_hash => '#{oracle_hash}',
|
||||
java_se => 'jre',
|
||||
}
|
||||
java::oracle {
|
||||
'test_oracle_jdk':
|
||||
version => '#{oracle_version_major}',
|
||||
version_major => '#{oracle_version_major}u#{oracle_version_minor}',
|
||||
version_minor => 'b#{oracle_version_build}',
|
||||
url_hash => '#{oracle_hash}',
|
||||
java_se => 'jdk',
|
||||
}
|
||||
EOL
|
||||
|
||||
install_oracle_jre_jce = <<EOL
|
||||
java::oracle {
|
||||
'test_oracle_jre':
|
||||
version => '#{oracle_version_major}',
|
||||
version_major => '#{oracle_version_major}u#{oracle_version_minor}',
|
||||
version_minor => 'b#{oracle_version_build}',
|
||||
url_hash => '#{oracle_hash}',
|
||||
java_se => 'jre',
|
||||
jce => true,
|
||||
}
|
||||
|
||||
EOL
|
||||
|
||||
install_oracle_jdk_jce = <<EOL
|
||||
java::oracle {
|
||||
'test_oracle_jdk':
|
||||
version => '#{oracle_version_major}',
|
||||
version_major => '#{oracle_version_major}u#{oracle_version_minor}',
|
||||
version_minor => 'b#{oracle_version_build}',
|
||||
url_hash => '#{oracle_hash}',
|
||||
java_se => 'jdk',
|
||||
jce => true,
|
||||
}
|
||||
EOL
|
||||
|
||||
# AdoptOpenJDK URLs are quite generic, so tests are enabled by default
|
||||
# We need to test version 8 and >8 (here we use 9), because namings are different after version 8
|
||||
|
||||
adopt_enabled = true unless os[:family].casecmp('SLES').zero?
|
||||
adopt_version8_major = '8'
|
||||
adopt_version8_minor = '202'
|
||||
adopt_version8_build = '08'
|
||||
adopt_version9_major = '9'
|
||||
adopt_version9_full = '9.0.4'
|
||||
adopt_version9_build = '11'
|
||||
|
||||
install_adopt_jdk_jre = <<EOL
|
||||
java::adopt {
|
||||
'test_adopt_jre_version8':
|
||||
version => '#{adopt_version8_major}',
|
||||
version_major => '#{adopt_version8_major}u#{adopt_version8_minor}',
|
||||
version_minor => 'b#{adopt_version8_build}',
|
||||
java => 'jre',
|
||||
}
|
||||
java::adopt {
|
||||
'test_adopt_jdk_version8':
|
||||
version => '#{adopt_version8_major}',
|
||||
version_major => '#{adopt_version8_major}u#{adopt_version8_minor}',
|
||||
version_minor => 'b#{adopt_version8_build}',
|
||||
java => 'jdk',
|
||||
}
|
||||
java::adopt {
|
||||
'test_adopt_jre_version9':
|
||||
version => '#{adopt_version9_major}',
|
||||
version_major => '#{adopt_version9_full}',
|
||||
version_minor => '#{adopt_version9_build}',
|
||||
java => 'jre',
|
||||
}
|
||||
java::adopt {
|
||||
'test_adopt_jdk_version9':
|
||||
version => '#{adopt_version9_major}',
|
||||
version_major => '#{adopt_version9_full}',
|
||||
version_minor => '#{adopt_version9_build}',
|
||||
java => 'jdk',
|
||||
}
|
||||
EOL
|
||||
|
||||
context 'installing java jre', unless: UNSUPPORTED_PLATFORMS.include?(os[:family]) do
|
||||
it 'installs jre' do
|
||||
idempotent_apply(java_class_jre)
|
||||
@@ -78,3 +175,47 @@ context 'with failure cases' do
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'java::oracle', if: oracle_enabled, unless: UNSUPPORTED_PLATFORMS.include?(os[:family]) do
|
||||
let(:install_path) do
|
||||
(os[:family] == 'redhat') ? '/usr/java' : '/usr/lib/jvm'
|
||||
end
|
||||
|
||||
let(:version_suffix) do
|
||||
(os[:family] == 'redhat') ? '-amd64' : ''
|
||||
end
|
||||
|
||||
it 'installs oracle jdk and jre' do
|
||||
idempotent_apply(install_oracle_jdk_jre)
|
||||
jdk_result = shell("test ! -e #{install_path}/jdk1.#{oracle_version_major}.0_#{oracle_version_minor}#{version_suffix}/jre/lib/security/local_policy.jar")
|
||||
jre_result = shell("test ! -e #{install_path}/jre1.#{oracle_version_major}.0_#{oracle_version_minor}#{version_suffix}/lib/security/local_policy.jar")
|
||||
expect(jdk_result.exit_code).to eq(0)
|
||||
expect(jre_result.exit_code).to eq(0)
|
||||
end
|
||||
|
||||
it 'installs oracle jdk with jce' do
|
||||
idempotent_apply(install_oracle_jdk_jce)
|
||||
result = shell("test -e #{install_path}/jdk1.#{oracle_version_major}.0_#{oracle_version_minor}#{version_suffix}/jre/lib/security/local_policy.jar")
|
||||
expect(result.exit_code).to eq(0)
|
||||
end
|
||||
|
||||
it 'installs oracle jre with jce' do
|
||||
idempotent_apply(install_oracle_jre_jce)
|
||||
result = shell("test -e #{install_path}/jre1.#{oracle_version_major}.0_#{oracle_version_minor}#{version_suffix}/lib/security/local_policy.jar")
|
||||
expect(result.exit_code).to eq(0)
|
||||
end
|
||||
end
|
||||
|
||||
context 'java::adopt', if: adopt_enabled, unless: UNSUPPORTED_PLATFORMS.include?(os[:family]) do
|
||||
let(:install_path) do
|
||||
(os[:family] == 'redhat') ? '/usr/java' : '/usr/lib/jvm'
|
||||
end
|
||||
|
||||
let(:version_suffix) do
|
||||
(os[:family] == 'redhat') ? '-amd64' : ''
|
||||
end
|
||||
|
||||
it 'installs adopt jdk and jre' do
|
||||
idempotent_apply(install_adopt_jdk_jre)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,36 +1,36 @@
|
||||
require 'spec_helper'
|
||||
|
||||
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 'when select openjdk for CentOS 5.8' do
|
||||
let(:facts) { { os: { family: 'RedHat', name: 'CentOS', release: { full: '5.8' }, architecture: 'x86_64' } } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.6.0/') }
|
||||
end
|
||||
|
||||
context 'when select openjdk for Centos 6.3' do
|
||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '6.3', architecture: 'x86_64' } }
|
||||
context 'when select openjdk for CentOS 6.3' do
|
||||
let(:facts) { { os: { family: 'RedHat', name: 'CentOS', release: { full: '6.3' }, architecture: 'x86_64' } } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
|
||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0/') }
|
||||
end
|
||||
|
||||
context 'when select openjdk for Centos 7.1.1503' do
|
||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '7.1.1503', architecture: 'x86_64' } }
|
||||
context 'when select openjdk for CentOS 7.1.1503' do
|
||||
let(:facts) { { os: { family: 'RedHat', name: 'CentOS', release: { full: '7.1.1503' }, architecture: 'x86_64' } } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk-devel') }
|
||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0/') }
|
||||
end
|
||||
|
||||
context 'when select openjdk for Centos 6.2' do
|
||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '6.2', architecture: 'x86_64' } }
|
||||
context 'when select openjdk for CentOS 6.2' do
|
||||
let(:facts) { { os: { family: 'RedHat', name: 'CentOS', release: { full: '6.2' }, architecture: 'x86_64' } } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
||||
it { is_expected.not_to contain_exec('update-java-alternatives') }
|
||||
end
|
||||
|
||||
context 'when select Oracle JRE with alternatives for Centos 6.3' do
|
||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '6.3', architecture: 'x86_64' } }
|
||||
context 'when select Oracle JRE with alternatives for CentOS 6.3' do
|
||||
let(:facts) { { os: { family: 'RedHat', name: 'CentOS', release: { full: '6.3' }, architecture: 'x86_64' } } }
|
||||
let(:params) { { 'package' => 'jre', 'java_alternative' => '/usr/bin/java', 'java_alternative_path' => '/usr/java/jre1.7.0_67/bin/java' } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('jre') }
|
||||
@@ -38,23 +38,23 @@ describe 'java', type: :class do
|
||||
it { is_expected.to contain_exec('update-java-alternatives').with_command('alternatives --set java /usr/java/jre1.7.0_67/bin/java') }
|
||||
end
|
||||
|
||||
context 'when select passed value for Centos 5.3' do
|
||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '5.3', architecture: 'x86_64' } }
|
||||
context 'when select passed value for CentOS 5.3' do
|
||||
let(:facts) { { os: { family: 'RedHat', name: 'CentOS', release: { full: '5.3' }, architecture: 'x86_64' } } }
|
||||
let(:params) { { 'package' => 'jdk', 'java_home' => '/usr/local/lib/jre' } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('jdk') }
|
||||
it { is_expected.not_to contain_exec('update-java-alternatives') }
|
||||
end
|
||||
|
||||
context 'when select default for Centos 5.3' do
|
||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '5.3', architecture: 'x86_64' } }
|
||||
context 'when select default for CentOS 5.3' do
|
||||
let(:facts) { { os: { family: 'RedHat', name: 'CentOS', release: { full: '5.3' }, architecture: 'x86_64' } } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
||||
it { is_expected.not_to contain_exec('update-java-alternatives') }
|
||||
end
|
||||
|
||||
context 'when select jdk for Debian Buster (10.0)' do
|
||||
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'buster', operatingsystemmajrelease: '10', architecture: 'amd64' } }
|
||||
let(:facts) { { os: { family: 'Debian', name: 'Debian', lsb: { distcodename: 'buster' }, release: { major: '10' }, architecture: 'amd64' } } }
|
||||
let(:params) { { 'distribution' => 'jdk' } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('openjdk-11-jdk') }
|
||||
@@ -62,7 +62,7 @@ describe 'java', type: :class do
|
||||
end
|
||||
|
||||
context 'when select jre for Debian Buster (10.0)' do
|
||||
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'buster', operatingsystemmajrelease: '10', architecture: 'amd64' } }
|
||||
let(:facts) { { os: { family: 'Debian', name: 'Debian', lsb: { distcodename: 'buster' }, release: { major: '10' }, architecture: 'amd64' } } }
|
||||
let(:params) { { 'distribution' => 'jre' } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('openjdk-11-jre-headless') }
|
||||
@@ -70,7 +70,7 @@ describe 'java', type: :class do
|
||||
end
|
||||
|
||||
context 'when select jdk for Ubuntu Trusty (14.04)' do
|
||||
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Ubuntu', lsbdistcodename: 'trusty', operatingsystemmajrelease: '14.04', architecture: 'amd64' } }
|
||||
let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', lsb: { distcodename: 'trusty' }, release: { major: '14.04' }, architecture: 'amd64' } } }
|
||||
let(:params) { { 'distribution' => 'jdk' } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('openjdk-7-jdk') }
|
||||
@@ -78,7 +78,7 @@ describe 'java', type: :class do
|
||||
end
|
||||
|
||||
context 'when select jre for Ubuntu Trusty (14.04)' do
|
||||
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Ubuntu', lsbdistcodename: 'trusty', operatingsystemmajrelease: '14.04', architecture: 'amd64' } }
|
||||
let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', lsb: { distcodename: 'trusty' }, release: { major: '14.04' }, architecture: 'amd64' } } }
|
||||
let(:params) { { 'distribution' => 'jre' } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('openjdk-7-jre-headless') }
|
||||
@@ -86,7 +86,7 @@ describe 'java', type: :class do
|
||||
end
|
||||
|
||||
context 'when select jdk for Ubuntu xenial (16.04) on ARM' do
|
||||
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Ubuntu', lsbdistcodename: 'xenial', operatingsystemmajrelease: '16.04', architecture: 'armv7l' } }
|
||||
let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', lsb: { distcodename: 'xenial' }, release: { major: '16.04' }, architecture: 'armv7l' } } }
|
||||
let(:params) { { 'distribution' => 'jdk' } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('openjdk-8-jdk') }
|
||||
@@ -94,7 +94,7 @@ describe 'java', type: :class do
|
||||
end
|
||||
|
||||
context 'when select jdk for Ubuntu xenial (16.04) on ARM64' do
|
||||
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Ubuntu', lsbdistcodename: 'xenial', operatingsystemmajrelease: '16.04', architecture: 'aarch64' } }
|
||||
let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', lsb: { distcodename: 'xenial' }, release: { major: '16.04' }, architecture: 'aarch64' } } }
|
||||
let(:params) { { 'distribution' => 'jdk' } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('openjdk-8-jdk') }
|
||||
@@ -102,26 +102,26 @@ describe 'java', type: :class do
|
||||
end
|
||||
|
||||
context 'when select openjdk for Oracle Linux' do
|
||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'OracleLinux', operatingsystemrelease: '6.4', architecture: 'x86_64' } }
|
||||
let(:facts) { { os: { family: 'RedHat', name: 'OracleLinux', release: { full: '6.4' }, architecture: 'x86_64' } } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
|
||||
end
|
||||
|
||||
context 'when select openjdk for Oracle Linux 6.2' do
|
||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'OracleLinux', operatingsystemrelease: '6.2', architecture: 'x86_64' } }
|
||||
let(:facts) { { os: { family: 'RedHat', name: 'OracleLinux', release: { full: '6.2' }, architecture: 'x86_64' } } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
||||
end
|
||||
|
||||
context 'when select passed value for Oracle Linux' do
|
||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'OracleLinux', operatingsystemrelease: '6.3', architecture: 'x86_64' } }
|
||||
let(:facts) { { os: { family: 'RedHat', name: 'OracleLinux', release: { full: '6.3' }, architecture: 'x86_64' } } }
|
||||
let(:params) { { 'distribution' => 'jre' } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
||||
end
|
||||
|
||||
context 'when select passed value for Scientific Linux' do
|
||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Scientific', operatingsystemrelease: '6.4', architecture: 'x86_64' } }
|
||||
let(:facts) { { os: { family: 'RedHat', name: 'Scientific', release: { full: '6.4' }, architecture: 'x86_64' } } }
|
||||
let(:params) { { 'distribution' => 'jre' } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
||||
@@ -129,7 +129,7 @@ describe 'java', type: :class do
|
||||
end
|
||||
|
||||
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) { { os: { family: 'RedHat', name: 'SLC', release: { full: '6.4' }, architecture: 'x86_64' } } }
|
||||
let(:params) { { 'distribution' => 'jre' } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
||||
@@ -137,42 +137,42 @@ describe 'java', type: :class do
|
||||
end
|
||||
|
||||
context 'when select default for OpenSUSE 12.3' do
|
||||
let(:facts) { { osfamily: 'Suse', operatingsystem: 'OpenSUSE', operatingsystemrelease: '12.3', architecture: 'x86_64' } }
|
||||
let(:facts) { { os: { family: 'Suse', name: 'OpenSUSE', release: { major: '12.3' }, architecture: 'x86_64' } } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('java-1_7_0-openjdk-devel') }
|
||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/') }
|
||||
end
|
||||
|
||||
context 'when select default for SLES 11.3' do
|
||||
let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '11.3', architecture: 'x86_64' } }
|
||||
let(:facts) { { os: { family: 'Suse', name: 'SLES', release: { full: '11.3' }, architecture: 'x86_64' } } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('java-1_6_0-ibm-devel') }
|
||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.6.0-ibm-1.6.0/') }
|
||||
end
|
||||
|
||||
context 'when select default for SLES 11.4' do
|
||||
let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '11.4', architecture: 'x86_64' } }
|
||||
let(:facts) { { os: { family: 'Suse', name: 'SLES', release: { full: '11.4' }, architecture: 'x86_64' } } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('java-1_7_1-ibm-devel') }
|
||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.1-ibm-1.7.1/') }
|
||||
end
|
||||
|
||||
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) { { os: { family: 'Suse', name: 'SLES', release: { full: '12.0', major: '12' }, architecture: 'x86_64' } } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('java-1_7_0-openjdk-devel') }
|
||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/') }
|
||||
end
|
||||
|
||||
context 'when select default for SLES 12.1' do
|
||||
let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '12.1', operatingsystemmajrelease: '12', architecture: 'x86_64' } }
|
||||
let(:facts) { { os: { family: 'Suse', name: 'SLES', release: { full: '12.1', major: '12' }, architecture: 'x86_64' } } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('java-1_8_0-openjdk-devel') }
|
||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/') }
|
||||
end
|
||||
|
||||
describe 'custom java package' do
|
||||
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'jessie', operatingsystemmajrelease: '8', architecture: 'amd64' } }
|
||||
let(:facts) { { os: { family: 'Debian', name: 'Debian', lsb: { distcodename: 'jessie' }, release: { major: '8' }, architecture: 'amd64' } } }
|
||||
|
||||
context 'when all params provided' do
|
||||
let(:params) do
|
||||
@@ -206,34 +206,44 @@ describe 'java', type: :class do
|
||||
describe 'incompatible OSs' do
|
||||
[
|
||||
{
|
||||
osfamily: 'windows',
|
||||
operatingsystem: 'windows',
|
||||
operatingsystemrelease: '8.1',
|
||||
os: {
|
||||
family: 'windows',
|
||||
name: 'windows',
|
||||
release: { full: '8.1' },
|
||||
},
|
||||
},
|
||||
{
|
||||
osfamily: 'Darwin',
|
||||
operatingsystem: 'Darwin',
|
||||
operatingsystemrelease: '13.3.0',
|
||||
os: {
|
||||
family: 'Darwin',
|
||||
name: 'Darwin',
|
||||
release: { full: '13.3.0' },
|
||||
},
|
||||
},
|
||||
{
|
||||
osfamily: 'AIX',
|
||||
operatingsystem: 'AIX',
|
||||
operatingsystemrelease: '7100-02-00-000',
|
||||
os: {
|
||||
family: 'AIX',
|
||||
name: 'AIX',
|
||||
release: { full: '7100-02-00-000' },
|
||||
},
|
||||
},
|
||||
{
|
||||
osfamily: 'AIX',
|
||||
operatingsystem: 'AIX',
|
||||
operatingsystemrelease: '6100-07-04-1216',
|
||||
os: {
|
||||
family: 'AIX',
|
||||
name: 'AIX',
|
||||
release: { full: '6100-07-04-1216' },
|
||||
},
|
||||
},
|
||||
{
|
||||
osfamily: 'AIX',
|
||||
operatingsystem: 'AIX',
|
||||
operatingsystemrelease: '5300-12-01-1016',
|
||||
os: {
|
||||
family: 'AIX',
|
||||
name: 'AIX',
|
||||
release: { full: '5300-12-01-1016' },
|
||||
},
|
||||
},
|
||||
].each do |facts|
|
||||
let(:facts) { facts }
|
||||
|
||||
it "is_expected.to fail on #{facts[:operatingsystem]} #{facts[:operatingsystemrelease]}" do
|
||||
it "is_expected.to fail on #{facts[:os][:name]} #{facts[:os][:release][:full]}" do
|
||||
expect { catalogue }.to raise_error Puppet::Error, %r{unsupported platform}
|
||||
end
|
||||
end
|
||||
|
||||
335
spec/defines/adopt_spec.rb
Normal file
335
spec/defines/adopt_spec.rb
Normal file
@@ -0,0 +1,335 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'java::adopt', 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 AdoptOpenJDK Java 8 JDK' do
|
||||
let(:params) { { ensure: 'present', version: '8', java: 'jdk' } }
|
||||
let(:title) { 'jdk8' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 8 8u202 b08').with_command('tar -zxf /tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz -C /usr/java') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 8 8u202 b08').that_requires('Archive[/tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when AdoptOpenJDK Java 9 JDK' do
|
||||
let(:params) { { ensure: 'present', version: '9', java: 'jdk' } }
|
||||
let(:title) { 'jdk9' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK9U-jdk_x64_linux_hotspot_9.0.4_11.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 9 9.0.4 11').with_command('tar -zxf /tmp/OpenJDK9U-jdk_x64_linux_hotspot_9.0.4_11.tar.gz -C /usr/java') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 9 9.0.4 11').that_requires('Archive[/tmp/OpenJDK9U-jdk_x64_linux_hotspot_9.0.4_11.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when AdoptOpenJDK Java 10 JDK' do
|
||||
let(:params) { { ensure: 'present', version: '10', java: 'jdk' } }
|
||||
let(:title) { 'jdk10' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK10U-jdk_x64_linux_hotspot_10.0.2_13.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 10 10.0.2 13').with_command('tar -zxf /tmp/OpenJDK10U-jdk_x64_linux_hotspot_10.0.2_13.tar.gz -C /usr/java') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 10 10.0.2 13').that_requires('Archive[/tmp/OpenJDK10U-jdk_x64_linux_hotspot_10.0.2_13.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when AdoptOpenJDK Java 11 JDK' do
|
||||
let(:params) { { ensure: 'present', version: '11', java: 'jdk' } }
|
||||
let(:title) { 'jdk11' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 11 11.0.2 9').with_command('tar -zxf /tmp/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz -C /usr/java') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 11 11.0.2 9').that_requires('Archive[/tmp/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when AdoptOpenJDK Java 12 JDK' do
|
||||
let(:params) { { ensure: 'present', version: '12', java: 'jdk' } }
|
||||
let(:title) { 'jdk12' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK12U-jdk_x64_linux_hotspot_12.0.1_12.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 12 12.0.1 12').with_command('tar -zxf /tmp/OpenJDK12U-jdk_x64_linux_hotspot_12.0.1_12.tar.gz -C /usr/java') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 12 12.0.1 12').that_requires('Archive[/tmp/OpenJDK12U-jdk_x64_linux_hotspot_12.0.1_12.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when AdoptOpenJDK Java 8 JRE' do
|
||||
let(:params) { { ensure: 'present', version: '8', java: 'jre' } }
|
||||
let(:title) { 'jre8' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 8 8u202 b08').with_command('tar -zxf /tmp/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gz -C /usr/java') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 8 8u202 b08').that_requires('Archive[/tmp/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when AdoptOpenJDK Java 9 JRE' do
|
||||
let(:params) { { ensure: 'present', version: '9', java: 'jre' } }
|
||||
let(:title) { 'jre9' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK9U-jre_x64_linux_hotspot_9.0.4_11.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 9 9.0.4 11').with_command('tar -zxf /tmp/OpenJDK9U-jre_x64_linux_hotspot_9.0.4_11.tar.gz -C /usr/java') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 9 9.0.4 11').that_requires('Archive[/tmp/OpenJDK9U-jre_x64_linux_hotspot_9.0.4_11.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when AdoptOpenJDK Java 10 JRE' do
|
||||
let(:params) { { ensure: 'present', version: '10', java: 'jre' } }
|
||||
let(:title) { 'jre11' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK10U-jre_x64_linux_hotspot_10.0.2_13.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 10 10.0.2 13').with_command('tar -zxf /tmp/OpenJDK10U-jre_x64_linux_hotspot_10.0.2_13.tar.gz -C /usr/java') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 10 10.0.2 13').that_requires('Archive[/tmp/OpenJDK10U-jre_x64_linux_hotspot_10.0.2_13.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when AdoptOpenJDK Java 11 JRE' do
|
||||
let(:params) { { ensure: 'present', version: '11', java: 'jre' } }
|
||||
let(:title) { 'jre11' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK11U-jre_x64_linux_hotspot_11.0.2_9.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 11 11.0.2 9').with_command('tar -zxf /tmp/OpenJDK11U-jre_x64_linux_hotspot_11.0.2_9.tar.gz -C /usr/java') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 11 11.0.2 9').that_requires('Archive[/tmp/OpenJDK11U-jre_x64_linux_hotspot_11.0.2_9.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when AdoptOpenJDK Java 12 JRE' do
|
||||
let(:params) { { ensure: 'present', version: '12', java: 'jre' } }
|
||||
let(:title) { 'jre12' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK12U-jre_x64_linux_hotspot_12.0.1_12.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 12 12.0.1 12').with_command('tar -zxf /tmp/OpenJDK12U-jre_x64_linux_hotspot_12.0.1_12.tar.gz -C /usr/java') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 12 12.0.1 12').that_requires('Archive[/tmp/OpenJDK12U-jre_x64_linux_hotspot_12.0.1_12.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when installing multiple versions' do
|
||||
let(:params) do
|
||||
{
|
||||
ensure: 'present',
|
||||
version_major: '8u202',
|
||||
version_minor: 'b08',
|
||||
java: 'jdk',
|
||||
}
|
||||
end
|
||||
let(:title) { 'jdk8' }
|
||||
|
||||
let(:pre_condition) do
|
||||
<<-EOL
|
||||
java::adopt {
|
||||
'jdk8172':
|
||||
ensure => 'present',
|
||||
version_major => '8u172',
|
||||
version_minor => 'b11',
|
||||
java => 'jdk',
|
||||
}
|
||||
EOL
|
||||
end
|
||||
|
||||
it { is_expected.to compile }
|
||||
end
|
||||
|
||||
context 'when specifying package_type tar.gz and basedir' do
|
||||
let(:params) do
|
||||
{
|
||||
ensure: 'present',
|
||||
version: '8',
|
||||
java: 'jdk',
|
||||
basedir: '/usr/java',
|
||||
package_type: 'tar.gz',
|
||||
}
|
||||
end
|
||||
let(:title) { 'jdk8' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 8 8u202 b08').with_command('tar -zxf /tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz -C /usr/java') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 8 8u202 b08').that_requires('Archive[/tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz]') }
|
||||
end
|
||||
context 'when manage_basedir is set to true' do
|
||||
let(:params) do
|
||||
{
|
||||
ensure: 'present',
|
||||
version: '8',
|
||||
java: 'jdk',
|
||||
basedir: '/usr/java',
|
||||
manage_basedir: true,
|
||||
}
|
||||
end
|
||||
let(:title) { 'jdk8' }
|
||||
|
||||
it { is_expected.to contain_file('/usr/java') }
|
||||
end
|
||||
end
|
||||
|
||||
context 'with Ubuntu 64-bit' do
|
||||
let(:facts) { { kernel: 'Linux', os: { family: 'Debian', architecture: 'amd64', name: 'Ubuntu', release: { full: '16.04' } } } }
|
||||
|
||||
context 'when AdoptOpenJDK Java 8 JDK' do
|
||||
let(:params) { { ensure: 'present', version: '8', java: 'jdk' } }
|
||||
let(:title) { 'jdk8' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 8 8u202 b08').with_command('tar -zxf /tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz -C /usr/lib/jvm') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 8 8u202 b08').that_requires('Archive[/tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when AdoptOpenJDK Java 9 JDK' do
|
||||
let(:params) { { ensure: 'present', version: '9', java: 'jdk' } }
|
||||
let(:title) { 'jdk9' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK9U-jdk_x64_linux_hotspot_9.0.4_11.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 9 9.0.4 11').with_command('tar -zxf /tmp/OpenJDK9U-jdk_x64_linux_hotspot_9.0.4_11.tar.gz -C /usr/lib/jvm') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 9 9.0.4 11').that_requires('Archive[/tmp/OpenJDK9U-jdk_x64_linux_hotspot_9.0.4_11.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when AdoptOpenJDK Java 10 JDK' do
|
||||
let(:params) { { ensure: 'present', version: '10', java: 'jdk' } }
|
||||
let(:title) { 'jdk10' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK10U-jdk_x64_linux_hotspot_10.0.2_13.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 10 10.0.2 13').with_command('tar -zxf /tmp/OpenJDK10U-jdk_x64_linux_hotspot_10.0.2_13.tar.gz -C /usr/lib/jvm') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 10 10.0.2 13').that_requires('Archive[/tmp/OpenJDK10U-jdk_x64_linux_hotspot_10.0.2_13.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when AdoptOpenJDK Java 11 JDK' do
|
||||
let(:params) { { ensure: 'present', version: '11', java: 'jdk' } }
|
||||
let(:title) { 'jdk11' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 11 11.0.2 9').with_command('tar -zxf /tmp/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz -C /usr/lib/jvm') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 11 11.0.2 9').that_requires('Archive[/tmp/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when AdoptOpenJDK Java 12 JDK' do
|
||||
let(:params) { { ensure: 'present', version: '12', java: 'jdk' } }
|
||||
let(:title) { 'jdk12' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK12U-jdk_x64_linux_hotspot_12.0.1_12.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 12 12.0.1 12').with_command('tar -zxf /tmp/OpenJDK12U-jdk_x64_linux_hotspot_12.0.1_12.tar.gz -C /usr/lib/jvm') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 12 12.0.1 12').that_requires('Archive[/tmp/OpenJDK12U-jdk_x64_linux_hotspot_12.0.1_12.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when AdoptOpenJDK Java 8 JRE' do
|
||||
let(:params) { { ensure: 'present', version: '8', java: 'jre' } }
|
||||
let(:title) { 'jre8' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 8 8u202 b08').with_command('tar -zxf /tmp/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gz -C /usr/lib/jvm') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 8 8u202 b08').that_requires('Archive[/tmp/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when AdoptOpenJDK Java 9 JRE' do
|
||||
let(:params) { { ensure: 'present', version: '9', java: 'jre' } }
|
||||
let(:title) { 'jre9' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK9U-jre_x64_linux_hotspot_9.0.4_11.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 9 9.0.4 11').with_command('tar -zxf /tmp/OpenJDK9U-jre_x64_linux_hotspot_9.0.4_11.tar.gz -C /usr/lib/jvm') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 9 9.0.4 11').that_requires('Archive[/tmp/OpenJDK9U-jre_x64_linux_hotspot_9.0.4_11.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when AdoptOpenJDK Java 10 JRE' do
|
||||
let(:params) { { ensure: 'present', version: '10', java: 'jre' } }
|
||||
let(:title) { 'jre11' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK10U-jre_x64_linux_hotspot_10.0.2_13.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 10 10.0.2 13').with_command('tar -zxf /tmp/OpenJDK10U-jre_x64_linux_hotspot_10.0.2_13.tar.gz -C /usr/lib/jvm') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 10 10.0.2 13').that_requires('Archive[/tmp/OpenJDK10U-jre_x64_linux_hotspot_10.0.2_13.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when AdoptOpenJDK Java 11 JRE' do
|
||||
let(:params) { { ensure: 'present', version: '11', java: 'jre' } }
|
||||
let(:title) { 'jre11' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK11U-jre_x64_linux_hotspot_11.0.2_9.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 11 11.0.2 9').with_command('tar -zxf /tmp/OpenJDK11U-jre_x64_linux_hotspot_11.0.2_9.tar.gz -C /usr/lib/jvm') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 11 11.0.2 9').that_requires('Archive[/tmp/OpenJDK11U-jre_x64_linux_hotspot_11.0.2_9.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when AdoptOpenJDK Java 12 JRE' do
|
||||
let(:params) { { ensure: 'present', version: '12', java: 'jre' } }
|
||||
let(:title) { 'jre12' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK12U-jre_x64_linux_hotspot_12.0.1_12.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 12 12.0.1 12').with_command('tar -zxf /tmp/OpenJDK12U-jre_x64_linux_hotspot_12.0.1_12.tar.gz -C /usr/lib/jvm') }
|
||||
it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 12 12.0.1 12').that_requires('Archive[/tmp/OpenJDK12U-jre_x64_linux_hotspot_12.0.1_12.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when installing multiple versions' do
|
||||
let(:params) do
|
||||
{
|
||||
ensure: 'present',
|
||||
version_major: '8u202',
|
||||
version_minor: 'b08',
|
||||
java: 'jdk',
|
||||
}
|
||||
end
|
||||
let(:title) { 'jdk8' }
|
||||
|
||||
let(:pre_condition) do
|
||||
<<-EOL
|
||||
java::adopt {
|
||||
'jdk8172':
|
||||
ensure => 'present',
|
||||
version_major => '8u172',
|
||||
version_minor => 'b11',
|
||||
java => 'jdk',
|
||||
}
|
||||
EOL
|
||||
end
|
||||
|
||||
it { is_expected.to compile }
|
||||
end
|
||||
end
|
||||
describe 'incompatible OSes' do
|
||||
[
|
||||
{
|
||||
kernel: 'Windows',
|
||||
os: {
|
||||
family: 'Windows',
|
||||
name: 'Windows',
|
||||
release: {
|
||||
full: '8.1',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
kernel: 'Darwin',
|
||||
os: {
|
||||
family: 'Darwin',
|
||||
name: 'Darwin',
|
||||
release: {
|
||||
full: '13.3.0',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
kernel: 'AIX',
|
||||
os: {
|
||||
family: 'AIX',
|
||||
name: 'AIX',
|
||||
release: {
|
||||
full: '7100-02-00-000',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
kernel: 'AIX',
|
||||
os: {
|
||||
family: 'AIX',
|
||||
name: 'AIX',
|
||||
release: {
|
||||
full: '6100-07-04-1216',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
kernel: 'AIX',
|
||||
os: {
|
||||
family: 'AIX',
|
||||
name: 'AIX',
|
||||
release: {
|
||||
full: '5300-12-01-1016',
|
||||
},
|
||||
},
|
||||
},
|
||||
].each do |facts|
|
||||
let(:facts) { facts }
|
||||
let(:title) { 'jdk' }
|
||||
|
||||
it "is_expected.to fail on #{facts[:os][:name]} #{facts[:os][:release][:full]}" do
|
||||
expect { catalogue }.to raise_error Puppet::Error, %r{unsupported platform}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
RSpec.configure do |c|
|
||||
c.mock_with :rspec
|
||||
end
|
||||
|
||||
@@ -5,20 +5,21 @@ describe 'java_libjvm_path' do
|
||||
|
||||
before(:each) do
|
||||
Facter.clear
|
||||
allow(Facter.fact(:kernel)).to receive(:value).once.and_return('Linux')
|
||||
allow(Facter.fact(:java_default_home)).to receive(:value).once.and_return(java_default_home)
|
||||
allow(Facter.fact(:kernel)).to receive(:value).and_return('Linux')
|
||||
allow(Facter.fact(:java_default_home)).to receive(:value).and_return(java_default_home)
|
||||
end
|
||||
|
||||
context 'when libjvm exists' do
|
||||
it do
|
||||
allow(Dir).to receive(:glob).with("#{java_default_home}/**/lib/**/libjvm.so").and_return(['/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so'])
|
||||
allow(Facter.fact(:java_major_version)).to receive(:value).and_return(8)
|
||||
allow(Dir).to receive(:glob).with("#{java_default_home}/jre/lib/**/libjvm.so").and_return(['/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so'])
|
||||
expect(Facter.value(:java_libjvm_path)).to eql '/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server'
|
||||
end
|
||||
end
|
||||
|
||||
context 'when libjvm does not exist' do
|
||||
it do
|
||||
allow(Dir).to receive(:glob).with("#{java_default_home}/**/lib/**/libjvm.so").and_return([])
|
||||
allow(Dir).to receive(:glob).with("#{java_default_home}/lib/**/libjvm.so").and_return([])
|
||||
expect(Facter.value(:java_libjvm_path)).to be nil
|
||||
end
|
||||
end
|
||||
|
||||
@@ -16,7 +16,7 @@ describe 'java_major_version' do
|
||||
|
||||
context 'when java not present, returns nil' do
|
||||
before :each do
|
||||
allow(Facter.fact(:java_version)).to receive(:value).and_return('nil')
|
||||
allow(Facter.fact(:java_version)).to receive(:value).and_return(nil)
|
||||
end
|
||||
it do
|
||||
expect(Facter.fact(:java_major_version).value).to be_nil
|
||||
|
||||
Reference in New Issue
Block a user