Compare commits

...

65 Commits
1.3.0 ... 1.4.2

Author SHA1 Message Date
Hunter Haugen
faede8c802 Fix fixtures 2015-10-06 18:08:48 -07:00
JT (Jonny)
a9198d235d Merge pull request #144 from hunner/release_1.4.2
Release 1.4.2
2015-10-07 01:30:20 +01:00
Hunter Haugen
c47711e36e Release 1.4.2 2015-10-06 16:29:23 -07:00
Jesse Lovelace
65476bd54b Merge pull request #143 from puppetlabs/master
Update 1.4.x with master changes
2015-10-06 18:20:34 -05:00
Hunter Haugen
8eee08c143 Merge pull request #142 from DavidS/MODULES-2637-java_version_on_OSX
(MODULES-2637) Checks java actually installed
2015-10-01 11:20:49 -07:00
David Schmitt
dadc7a6c22 (MODULES-2637) Checks java actually installed
The other method for running which java doesn't work on OSX, as java is installed as an empty shim when not installed in the base OSX image:

```
vagrant:~ vagrant$ java
No Java runtime present, requesting install.
vagrant:~ vagrant$ /usr/libexec/java_home --failfast
Unable to find any JVMs matching version "(null)".
vagrant:~ vagrant$
```

We can use the `/usr/libexec/java_home --failfast` command to check if
java is actually present first.

Originally-by: Peter Souter <peter.souter@puppetlabs.com>
2015-10-01 19:09:32 +01:00
David Schmitt
3645364e5b (MAINT) declare an exclusion filter for the tests using with_env on facter 1.6
The with_env function is not available in facter 1.6 and OpenBSD is not
supported.
2015-10-01 19:09:32 +01:00
Hunter Haugen
913a810bfd Merge pull request #141 from vrtdev/feature/fix_spec_deprecation_warnings
Fix rspec deprecation warnings. .should -> expect().to
2015-09-28 21:47:57 -07:00
Jan Vansteenkiste
8bef423733 Fix rspec deprecation warnings. .should -> expect().to 2015-09-29 06:44:30 +02:00
Bryan Jen
abd490dc6a Merge pull request #137 from puppetlabs/1.4.x
mergeback 1.4.x
2015-07-15 15:39:00 -07:00
Bryan Jen
7c70ceaed7 Merge pull request #136 from hunner/release_1.4.1
Release 1.4.1
2015-07-15 13:33:32 -07:00
Hunter Haugen
76c5d2c93d Release 1.4.1 2015-07-15 13:14:56 -07:00
Hunter Haugen
8e5b079fd7 Merge pull request #135 from zreichert/fix
Add OEL operatingsystem to java::params
2015-07-14 10:06:44 -07:00
Zach Reichert
e8b3dd534f Add OEL operatingsystem to java::params 2015-07-14 10:03:56 -07:00
Hunter Haugen
9efcb78c1f Merge pull request #134 from mhaskel/merge_1.4.x_to_master
Merge 1.4.x to master
2015-07-09 14:57:39 -07:00
Morgan Haskel
d07a3551c7 Merge pull request #133 from hunner/fix_metadata
Fix incorrect metadata
2015-07-07 10:12:18 -07:00
Hunter Haugen
911b497725 Fix incorrect metadata 2015-07-07 10:11:36 -07:00
Morgan Haskel
9e85843369 Merge pull request #132 from bmjen/1.4.0-prep
updates metadata.json to include support for PE up to 2015.2.x
2015-07-06 16:34:35 -07:00
Bryan Jen
b04fbac5af updates metadata.json to include support for PE up to 2015.2.x 2015-07-06 16:33:22 -07:00
Morgan Haskel
17dfb850db Merge pull request #131 from bmjen/1.4.0-prep
Release 1.4.0 prep
2015-07-06 13:27:40 -07:00
Bryan Jen
b058ce725c Release 1.4.0 prep 2015-07-06 13:17:27 -07:00
Bryan Jen
cf0c56b06f Merge pull request #126 from danielparks/require-update-java-alternatives
Install update-java-alternatives on Debian for the java::config class
2015-07-02 12:27:05 -07:00
Morgan Haskel
3a102bcde4 Merge pull request #129 from bmjen/fedora-support
(MODULES-2068) add fedora to metadata.json operatingsystem_support list
2015-07-01 16:43:13 -07:00
Joshua Hoblitt
907e727ad1 (MODULES-2068) add fedora to metadata.json operatingsystem_support list 2015-07-01 15:43:22 -07:00
Travis Fields
14cf5c4e5d Merge pull request #128 from bmjen/oracle-fun
(MODULES-2095) fixes create-java-alternatives command
2015-06-30 09:46:26 -07:00
Bryan Jen
4aac413e04 (MODULES-2095) fixes create-java-alternatives command 2015-06-29 14:07:40 -07:00
Hunter Haugen
a64efdff6e Merge pull request #127 from bmjen/fix-case-statement
re-orders case statements in manifests to workaround PUP-4520.
2015-06-24 13:50:44 -07:00
Bryan Jen
bfc03a54c5 re-orders case statements in manifests to workaround PUP-4520. 2015-06-24 13:49:19 -07:00
Daniel Parks
75fa927d72 Install update-java-alternatives on Debian for the java::config class. 2015-06-22 22:15:14 -07:00
Bryan Jen
a5500ff58e Merge pull request #123 from hunner/add_helper
Add helper to install puppet/pe/puppet-agent
2015-06-15 10:25:35 -07:00
Hunter Haugen
ec66670995 Add helper to install puppet/pe/puppet-agent 2015-06-11 16:54:34 -07:00
Bryan Jen
079c963e05 Merge pull request #122 from justinstoller/maint/master/set-puppet-version
(maint) allow setting PUPPET_VERSION in acceptance
2015-06-09 15:03:47 -07:00
Justin Stoller
ba817d0d56 (maint) allow setting PUPPET_VESION in acceptance 2015-06-08 22:16:59 -07:00
David Schmitt
42580b0121 Merge pull request #121 from puppetlabs/travisci_update
Updated travisci file to remove allow_failures on Puppet 4
2015-06-08 15:40:34 +01:00
Jonathan Tripathy
232258f290 Updated travisci file to remove allow_failures on Puppet 4 2015-06-08 14:24:41 +01:00
Hunter Haugen
0f194c7bb3 Add ability to unittest puppet 4 2015-05-27 08:12:30 -07:00
TP Honey
15909c4186 Merge pull request #109 from buzzdeee/master
Add support for OpenBSD, and also add some regression tests.
2015-05-15 11:48:47 +01:00
Bryan Jen
461209338f Merge pull request #118 from puppetlabs/modulesync_updates
Modulesync updates
2015-05-07 14:09:48 -07:00
Morgan Haskel
d1f6438adc beaker gemfile fixes 2015-05-06 14:32:38 -07:00
Morgan Haskel
0c73b6242b sync via modulesync 2015-05-06 14:30:49 -07:00
Morgan Haskel
d5aec12518 sync via modulesync 2015-05-06 14:10:14 -07:00
Sebastian Reitenbach
5815242f8e Add support for OpenBSD, and also add some regression tests.
Add info about OpenBSD support to README.md and metadata.json
Add a note about OpenBSD java_version fact to README.markdown.
Fixup wording on context in one of the java patch level regression tests.
No mentioning of OpenBSD in metdata.json

Cleanup wording of context as suggested by @elyscape
update contexts as suggested by @elyscape
2015-04-23 12:29:11 +02:00
Morgan Haskel
586195d6c9 Merge pull request #112 from haw-hh-ai-lab/support_ubuntu_vivid
Support ubuntu vivid
2015-04-06 10:02:22 -07:00
Lutz Behnke
e22aa3a36a add support for ubuntu vivid (15.04) using openjdk-8
add acceptance test node without really understanding what it does.
add test for distribution type jdk for Ubuntu vivid
2015-04-01 08:16:07 +02:00
Justin Stoller
1b9bb75de8 Merge pull request #115 from anodelman/master
(BKR-147) add Gemfile setting for BEAKER_VERSION for puppet...
2015-03-26 16:47:45 -07:00
Alice Nodelman
868fd0b920 (BKR-147) add Gemfile setting for BEAKER_VERSION for puppet...
puppetdb, etc

- support for BEAKER_VERSION and BEAKER_RSPEC_VERSION in gemfile
2015-03-24 14:48:58 -07:00
Morgan Haskel
0fa3f1a775 Merge pull request #114 from cmurphy/rspec-puppet-2
Test changes
2015-03-24 15:45:32 -04:00
Colleen Murphy
8db7120eed Update .travis.yml
This commit makes the following changes to the test matrix:

- Runs tests on ruby 2.1.5 instead of 2.0.0
- Runs tests on ruby 1.8.7 with puppet 3.x
- Adds an environment to run on an intermediate 3.x puppet version
  instead of latest (specifically 3.4.x)
- Adds an environment to run with the future parser on latest puppet.
  This would affect the test runs for the validate and spec checks.
- Adds environments to run with strict variables on latest puppet.
- Runs the tests on docker
2015-03-23 21:57:34 -07:00
Colleen Murphy
44a1992e83 Keep testing on puppet 2.7
The modulesync config repo is dropping universal support for puppet
2.7, but individual repos should still keep support until the next
naturally-occuring major release.
2015-03-23 12:12:38 -07:00
Colleen Murphy
d0a03f66c7 Ensure lint fails on warnings 2015-03-19 14:10:09 -07:00
Colleen Murphy
ce5529a03d Remove unneeded dependencies
puppetlabs_spec_helper handles these dependencies for us.
2015-03-19 14:10:03 -07:00
Colleen Murphy
5b45d1fede Update rspec tests for rspec-puppet 2
This patch uses `catalogue` instead of `subject` for the raise_error
matcher since `subject` is not evaluated the way it used to be. We also
unpin rspec-puppet.
2015-03-19 14:09:58 -07:00
Morgan Haskel
7a39d596bd Merge pull request #113 from jtappa/readme-edits
Edits to param descriptions and other small changes in the README.
2015-03-06 15:54:10 -08:00
Jorie Tappa
75fb20d0eb Edits to params and other small changes.
params are now alphabetized, descriptions are mostly the same but now
all include valid options and defaults.
2015-03-06 15:51:49 -08:00
TP Honey
87ac311761 Merge pull request #110 from antaflos/patch-1
Extend Limitations section
2015-02-26 10:36:35 +00:00
Andreas Ntaflos
412f80a7ba Extend Limitations section
Add note that this module doesn't support managing multiple Java installations in parallel.
2015-02-22 21:08:06 +01:00
Colleen Murphy
9861651c02 Merge pull request #107 from elyscape/fix/improve_java_version_fact
Improve java_version fact maintainability
2015-02-12 11:51:09 -08:00
Eli Young
8dd715a599 Improve java_version fact maintainability 2015-02-09 15:26:53 -08:00
Morgan Haskel
97b48f12d1 Merge pull request #104 from cottsay/master
Fix Fedora 21+ package name
2015-02-06 18:46:22 +01:00
Morgan Haskel
1a53dd3ff4 Merge pull request #106 from petems/improve_java_version_fact_with_args
(MODULES-1749) Update java_version fact with maximum memory size
2015-02-06 16:24:51 +01:00
Oliver Falk
79805000cc (MODULES-1749) Update java_version fact...
with maximum memory size

Add -Xmx8m to make large systems happy.
2015-02-06 12:47:23 +00:00
Hunter Haugen
3124798492 Merge pull request #105 from cmurphy/rspec
Pin rspec gems
2015-02-04 12:03:31 -08:00
Colleen Murphy
65010255b6 Pin rspec gems 2015-02-04 17:02:04 +01:00
Scott K Logan
98447f03e7 Fix Fedora 21+ package name
java-1.7.0-openjdk is no longer available in Fedora 21+
2015-01-31 22:50:06 -08:00
Hunter Haugen
b01d529af3 Merge pull request #100 from mhaskel/merge_1.3.x_to_master
Merge 1.3.x to master
2015-01-20 10:25:58 -08:00
19 changed files with 343 additions and 86 deletions

View File

@@ -1,5 +1,5 @@
fixtures:
repositories:
stdlib: http://github.com/puppetlabs/puppetlabs-stdlib.git
stdlib: "git://github.com/puppetlabs/puppetlabs-stdlib.git"
symlinks:
java: "#{source_dir}"

7
.sync.yml Normal file
View File

@@ -0,0 +1,7 @@
---
.travis.yml:
extras:
- rvm: 1.8.7
env: PUPPET_GEM_VERSION="~> 2.7.0" FACTER_GEM_VERSION="~> 1.6.0"
- rvm: 1.8.7
env: PUPPET_GEM_VERSION="~> 2.7.0" FACTER_GEM_VERSION="~> 1.7.0"

View File

@@ -1,17 +1,24 @@
---
sudo: false
language: ruby
bundler_args: --without system_tests
script: "bundle exec rake validate && bundle exec rake lint && bundle exec rake spec SPEC_OPTS='--format documentation'"
matrix:
fast_finish: true
include:
- rvm: 1.8.7
env: PUPPET_GEM_VERSION="~> 3.0"
- rvm: 1.9.3
env: PUPPET_GEM_VERSION="~> 3.0"
- rvm: 2.1.5
env: PUPPET_GEM_VERSION="~> 3.0"
- rvm: 2.1.5
env: PUPPET_GEM_VERSION="~> 3.0" FUTURE_PARSER="yes"
- rvm: 2.1.6
env: PUPPET_GEM_VERSION="~> 4.0" STRICT_VARIABLES="yes"
- rvm: 1.8.7
env: PUPPET_GEM_VERSION="~> 2.7.0" FACTER_GEM_VERSION="~> 1.6.0"
- rvm: 1.8.7
env: PUPPET_GEM_VERSION="~> 2.7.0" FACTER_GEM_VERSION="~> 1.7.0"
- rvm: 1.9.3
env: PUPPET_GEM_VERSION="~> 3.0"
- rvm: 2.0.0
env: PUPPET_GEM_VERSION="~> 3.0"
notifications:
email: false

View File

@@ -1,3 +1,36 @@
## 2015-10-07 - Supported Release 1.4.2
### Summary
This release fixes the fact to not trigger java every time on OS X when it is not available.
#### Bugfixes
- Causes java\_version fact to not run `java` when java is not installed on OS X
## 2015-07-16 - Supported Release 1.4.1
### Summary
This release updates the metadata for the upcoming release of PE and update params for OEL to match metadata
#### Bugfixes:
- Add missing OEL to params
##2015-07-07 - Supported Release 1.4.0
###Summary
This release adds several new features, bugfixes, documentation updates, and test improvements.
####Features:
- Puppet 4 support and testing
- Adds support for several Operating Systems
- Ubuntu 15.04
- OpenBSD 5.6, 5.7
- Fedora 20, 21, 22
####Bugfixes:
- Fixes java_version fact to work on large systems. (MODULES-1749)
- Improves maintainability of java_version fact.
- Fixes java package names on Fedora 21+.
- Fixes java install problems on Puppet 3.7.5 - 3.8.1 (PUP-4520)
- Fixes create-java-alternatives commands on RedHat distros.
- Fixes bug with Debian systems missing java-common package.
##2015-01-20 - Supported Release 1.3.0
###Summary
This release adds 3 new facts for determining Java version, adds RHEL alternatives support, adds utopic support, and fixes the flag for `update-java-alternatives` when installed from a headless pacakge.

26
Gemfile
View File

@@ -1,20 +1,38 @@
source ENV['GEM_SOURCE'] || "https://rubygems.org"
def location_for(place, fake_version = nil)
if place =~ /^(git:[^#]*)#(.*)/
[fake_version, { :git => $1, :branch => $2, :require => false }].compact
elsif place =~ /^file:\/\/(.*)/
['>= 0', { :path => File.expand_path($1), :require => false }]
else
[place, { :require => false }]
end
end
group :development, :unit_tests do
gem 'rake', :require => false
gem 'rspec-puppet', :require => false
gem 'rspec-core', '3.1.7', :require => false
gem 'puppetlabs_spec_helper', :require => false
gem 'puppet-lint', :require => false
gem 'simplecov', :require => false
gem 'puppet_facts', :require => false
gem 'json', :require => false
end
group :system_tests do
gem 'beaker-rspec', :require => false
if beaker_version = ENV['BEAKER_VERSION']
gem 'beaker', *location_for(beaker_version)
end
if beaker_rspec_version = ENV['BEAKER_RSPEC_VERSION']
gem 'beaker-rspec', *location_for(beaker_rspec_version)
else
gem 'beaker-rspec', :require => false
end
gem 'serverspec', :require => false
gem 'beaker-puppet_install_helper', :require => false
end
if facterversion = ENV['FACTER_GEM_VERSION']
gem 'facter', facterversion, :require => false
else

View File

@@ -28,11 +28,11 @@ To install the correct Java package on your system, include the `java` class: `i
The java module installs the correct jdk or jre package on a wide variety of systems. By default, the module will install the jdk package, but you can set different installation parameters as needed. For example, to install jre instead of jdk, you would set the distribution parameter:
```
~~~
class { 'java':
distribution => 'jre',
}
```
~~~
##Reference
@@ -40,27 +40,37 @@ class { 'java':
####Public classes
* `java`: This is the module's main class, which installs and manages the Java package.
* `java`: Installs and manages the Java package.
####Private classes
* `java::params`: Builds a hash of jdk/jre packages for all compatible operating systems.
* `java::config`: Configures the Java alternatives.
###Parameters:
* `java::params`: Builds a hash of jdk/jre packages for all compatible operating systems.
The following parameters are available in the java module:
####Parameters
The following parameters are available in `java`:
* `distribution`: The Java distribution to install. Can be 'jdk','jre', or, where the platform supports alternative packages, 'sun-jdk', 'sun-jre', 'oracle-jdk', 'oracle-jre'. Defaults to 'jdk'.
##### `distribution`
Specifies the Java distribution to install.
Valid options: 'jdk', 'jre', or, where the platform supports alternative packages, 'sun-jdk', 'sun-jre', 'oracle-jdk', 'oracle-jre'. Default: 'jdk'.
* `version`: The version of Java to install, if you want to ensure a particular version. By default, the module ensures that Java is present but does not require a specific version.
#####`java_alternative`
Specifies the name of the Java alternative to use. If you set this parameter, *you must also set the `java_alternative_path`.*
Valid options: Run command `update-java-alternatives -l` for a list of available choices. Default: OS and distribution dependent defaults on *deb systems, undef on others.
* `package`: The name of the Java package. This is configurable in case you want to install a non-standard Java package. If not set, the module will install the appropriate package for the `distribution` parameter and target platform. If you set `package`, the `distribution` parameter will do nothing.
#####`java_alternative_path`
*Required when `java_alternative` is specified.* Defines the path to the `java` command.
Valid option: String. Default: OS and distribution dependent defaults on *deb systems, undef on others.
* `java_alternative`: The name of the Java alternative to use. The command 'update-java-alternatives -l' will show which choices are available. If you specify a particular package, you will usually want to specify which Java alternative to use. If you set this parameter, you also need to set the `java_alternative_path`.
#####`package`
Specifies the name of the Java package. This is configurable in case you want to install a non-standard Java package. If not set, the module will install the appropriate package for the `distribution` parameter and target platform. If you set `package`, the `distribution` parameter will do nothing.
Valid option: String. Default: undef.
#####`version`
Sets the version of Java to install, if you want to ensure a particular version.
Valid options: 'present', 'installed', 'latest', or a string matching `/^[.+_0-9a-zA-Z:-]+$/`. Default: 'present'.
* `java_alternative_path`: The path to the 'java' command. Since the alternatives system makes it difficult to verify which alternative is actually enabled, this is required to ensure the correct JVM is enabled.
###Facts
@@ -76,11 +86,14 @@ The java module includes a few facts to describe the version of Java installed o
This module cannot guarantee installation of Java versions that are not available on platform repositories.
This module only manages a singular installation of Java, meaning it is not possible to manage e.g. OpenJDK 7, Oracle Java 7 and Oracle Java 8 in parallel on the same system.
Oracle Java packages are not included in Debian 7 and Ubuntu 12.04/14.04 repositories. To install Java on those systems, you'll need to package Oracle JDK/JRE, and then the module will be able to install the package. For more information on how to package Oracle JDK/JRE, see the [Debian wiki](http://wiki.debian.org/JavaPackage).
This module is officially [supported](https://forge.puppetlabs.com/supported) for the following Java versions and platforms:
OpenJDK is supported on:
* Red Hat Enterprise Linux (RHEL) 5, 6, 7
* CentOS 5, 6, 7
* Oracle Linux 6, 7
@@ -89,17 +102,21 @@ OpenJDK is supported on:
* Ubuntu 10.04, 12.04, 14.04
* Solaris 11
* SLES 11 SP1, 12
* OpenBSD 5.6, 5.7
Sun Java is supported on:
* Debian 6
### A note to OpenBSD
OpenBSD packages install Java JRE/JDK in a unique directory structure, not linking
the binaries to a standard directory. Because of that, the path to this location
is hardcoded in the java_version fact. Whenever a Java upgrade to a newer
version/path will be done on OpenBSD, it has to be adapted there.
##Development
Puppet Labs modules on the Puppet Forge are open projects, and community contributions are essential for keeping them great. We cant access the huge number of platforms and myriad of hardware, software, and deployment configurations that Puppet is intended to serve.
We want to keep it as easy as possible to contribute changes so that our modules work in your environment. There are a few guidelines that we need contributors to follow so that we can have a chance of keeping on top of things.
You can read the complete module contribution guide on the [Puppet Labs wiki](http://projects.puppetlabs.com/projects/module-site/wiki/Module_contributing).
Puppet Labs modules on the Puppet Forge are open projects, and community contributions are essential for keeping them great. We cant access the huge number of platforms and myriad hardware, software, and deployment configurations that Puppet is intended to serve. We want to keep it as easy as possible to contribute changes so that our modules work in your environment. There are a few guidelines that we need contributors to follow so that we can have a chance of keeping on top of things. For more information, see our [module contribution guide.](https://docs.puppetlabs.com/forge/contributing.html)
##Contributors

View File

@@ -1,7 +1,7 @@
require 'puppetlabs_spec_helper/rake_tasks'
require 'puppet-lint/tasks/puppet-lint'
PuppetLint.configuration.fail_on_warnings
PuppetLint.configuration.fail_on_warnings = true
PuppetLint.configuration.send('relative')
PuppetLint.configuration.send('disable_80chars')
PuppetLint.configuration.send('disable_class_inherits_from_params_class')

View File

@@ -11,10 +11,42 @@
#
# Notes:
# None
if Facter::Util::Resolution.which('java')
Facter.add(:java_version) do
setcode do
Facter::Util::Resolution.exec('java -version 2>&1').lines.first.split(/"/)[1].strip
Facter.add(:java_version) do
# the OS-specific overrides need to be able to return nil,
# to indicate "no java available". Usually returning nil
# would mean that facter falls back to a lower priority
# resolution, which would then trigger MODULES-2637. To
# avoid that, we confine the "default" here to not run
# on those OS.
# Additionally, facter versions prior to 2.0.1 only support
# positive matches, so this needs to be done manually in setcode.
setcode do
unless [ 'openbsd', 'darwin' ].include? Facter.value(:operatingsystem).downcase
if Facter::Util::Resolution.which('java')
Facter::Util::Resolution.exec('java -Xmx8m -version 2>&1').lines.first.split(/"/)[1].strip
end
end
end
end
Facter.add(:java_version) do
confine :operatingsystem => 'OpenBSD'
has_weight 100
setcode do
Facter::Util::Resolution.with_env("PATH" => '/usr/local/jdk-1.7.0/jre/bin:/usr/local/jre-1.7.0/bin') do
if Facter::Util::Resolution.which('java')
Facter::Util::Resolution.exec('java -Xmx8m -version 2>&1').lines.first.split(/"/)[1].strip
end
end
end
end
Facter.add(:java_version) do
confine :operatingsystem => 'Darwin'
has_weight 100
setcode do
unless /Unable to find any JVMs matching version/ =~ Facter::Util::Resolution.exec('/usr/libexec/java_home --failfast 2>&1')
Facter::Util::Resolution.exec('java -Xmx8m -version 2>&1').lines.first.split(/"/)[1].strip
end
end
end

View File

@@ -17,7 +17,7 @@ class java::config ( ) {
if $java::use_java_package_name != $java::default_package_name {
exec { 'create-java-alternatives':
path => '/usr/bin:/usr/sbin:/bin:/sbin',
command => "alternatives --install ${java::use_java_alternative} java ${$java::use_java_alternative_path} 20000" ,
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']
}

View File

@@ -87,6 +87,14 @@ class java(
default => '--jre'
}
if $::osfamily == 'Debian' {
# Needed for update-java-alternatives
package { 'java-common':
ensure => present,
before => Class['java::config'],
}
}
anchor { 'java::begin:': }
->
package { 'java':

View File

@@ -15,7 +15,7 @@ class java::params {
case $::osfamily {
'RedHat': {
case $::operatingsystem {
'RedHat', 'CentOS', 'OracleLinux', 'Scientific': {
'RedHat', 'CentOS', 'OracleLinux', 'Scientific', 'OEL': {
if (versioncmp($::operatingsystemrelease, '5.0') < 0) {
$jdk_package = 'java-1.6.0-sun-devel'
$jre_package = 'java-1.6.0-sun'
@@ -30,8 +30,14 @@ class java::params {
}
}
'Fedora': {
$jdk_package = 'java-1.7.0-openjdk-devel'
$jre_package = 'java-1.7.0-openjdk'
if (versioncmp($::operatingsystemrelease, '21') < 0) {
$jdk_package = 'java-1.7.0-openjdk-devel'
$jre_package = 'java-1.7.0-openjdk'
}
else {
$jdk_package = 'java-1.8.0-openjdk-devel'
$jre_package = 'java-1.8.0-openjdk'
}
}
'Amazon': {
$jdk_package = 'java-1.7.0-openjdk-devel'
@@ -46,7 +52,6 @@ class java::params {
}
'Debian': {
case $::lsbdistcodename {
default: { fail("unsupported release ${::lsbdistcodename}") }
'lenny', 'squeeze', 'lucid', 'natty': {
$java = {
'jdk' => {
@@ -103,6 +108,29 @@ class java::params {
},
}
}
'vivid': {
$java = {
'jdk' => {
'package' => 'openjdk-8-jdk',
'alternative' => "java-1.8.0-openjdk-${::architecture}",
'alternative_path' => "/usr/lib/jvm/java-1.8.0-openjdk-${::architecture}/bin/java",
'java_home' => "/usr/lib/jvm/java-1.8.0-openjdk-${::architecture}/",
},
'jre' => {
'package' => 'openjdk-8-jre-headless',
'alternative' => "java-1.8.0-openjdk-${::architecture}",
'alternative_path' => "/usr/lib/jvm/java-1.8.0-openjdk-${::architecture}/bin/java",
'java_home' => "/usr/lib/jvm/java-1.8.0-openjdk-${::architecture}/",
}
}
}
default: { fail("unsupported release ${::lsbdistcodename}") }
}
}
'OpenBSD': {
$java = {
'jdk' => { 'package' => 'jdk', },
'jre' => { 'package' => 'jre', },
}
}
'Solaris': {
@@ -113,11 +141,6 @@ class java::params {
}
'Suse': {
case $::operatingsystem {
default: {
$jdk_package = 'java-1_6_0-ibm-devel'
$jre_package = 'java-1_6_0-ibm'
}
'SLES': {
case $::operatingsystemmajrelease{
default: {
@@ -130,11 +153,14 @@ class java::params {
}
}
}
'OpenSuSE': {
$jdk_package = 'java-1_7_0-openjdk-devel'
$jre_package = 'java-1_7_0-openjdk'
}
default: {
$jdk_package = 'java-1_6_0-ibm-devel'
$jre_package = 'java-1_6_0-ibm'
}
}
$java = {
'jdk' => { 'package' => $jdk_package, },

View File

@@ -1,6 +1,6 @@
{
"name": "puppetlabs-java",
"version": "1.3.0",
"version": "1.4.2",
"author": "puppetlabs",
"summary": "Installs the correct Java package on various platforms.",
"license": "Apache-2.0",
@@ -38,6 +38,14 @@
"6"
]
},
{
"operatingsystem": "Fedora",
"operatingsystemrelease": [
"20",
"21",
"22"
]
},
{
"operatingsystem": "Debian",
"operatingsystemrelease": [
@@ -70,14 +78,14 @@
"requirements": [
{
"name": "pe",
"version_requirement": "3.x"
"version_requirement": ">= 3.0.0 < 2015.3.0"
},
{
"name": "puppet",
"version_requirement": "3.x"
"version_requirement": ">= 3.0.0 < 5.0.0"
}
],
"dependencies": [
{"name":"puppetlabs/stdlib","version_requirement":">= 2.4.0"}
{"name":"puppetlabs/stdlib","version_requirement":">= 2.4.0 < 5.0.0"}
]
}

View File

@@ -0,0 +1,11 @@
HOSTS:
ubuntu-server-1504-x64:
roles:
- master
platform: ubuntu-15.04-amd64
box : puppetlabs/ubuntu-15.04-64-nocm
box_url : https://vagrantcloud.com/puppetlabs/ubuntu-15.04-64-nocm
hypervisor : vagrant
CONFIG:
log_level : debug
type: git

View File

@@ -26,17 +26,28 @@ describe 'java', :type => :class do
it { should contain_exec('update-java-alternatives').with_command('alternatives --set java /usr/java/jre1.7.0_67/bin/java') }
end
context 'select openjdk for Fedora' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora'} }
context 'select openjdk for Fedora 20' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '20'} }
it { should contain_package('java').with_name('java-1.7.0-openjdk-devel') }
end
context 'select passed value for Fedora' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora'} }
context 'select openjdk for Fedora 21' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '21'} }
it { should contain_package('java').with_name('java-1.8.0-openjdk-devel') }
end
context 'select passed value for Fedora 20' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '20'} }
let(:params) { { 'distribution' => 'jre' } }
it { should contain_package('java').with_name('java-1.7.0-openjdk') }
end
context 'select passed value for Fedora 21' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '21'} }
let(:params) { { 'distribution' => 'jre' } }
it { should contain_package('java').with_name('java-1.8.0-openjdk') }
end
context 'select passed value for Centos 5.3' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '5.3'} }
let(:params) { { 'package' => 'jdk' } }
@@ -97,6 +108,18 @@ describe 'java', :type => :class do
it { should contain_exec('update-java-alternatives').with_command('update-java-alternatives --set bananafish --jre') }
end
context 'select jdk for Ubuntu Vivid (15.04)' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Ubuntu', :lsbdistcodename => 'vivid', :operatingsystemrelease => '15.04', :architecture => 'amd64',} }
let(:params) { { 'distribution' => 'jdk' } }
it { should contain_package('java').with_name('openjdk-8-jdk') }
end
context 'select jre for Ubuntu Vivid (15.04)' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Ubuntu', :lsbdistcodename => 'vivid', :operatingsystemrelease => '15.04', :architecture => 'amd64',} }
let(:params) { { 'distribution' => 'jre' } }
it { should contain_package('java').with_name('openjdk-8-jre-headless') }
end
context 'select openjdk for Amazon Linux' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Amazon', :operatingsystemrelease => '3.4.43-43.43.amzn1.x86_64'} }
it { should contain_package('java').with_name('java-1.7.0-openjdk-devel') }
@@ -135,6 +158,17 @@ describe 'java', :type => :class do
it { should contain_package('java').with_name('java-1_7_0-openjdk-devel')}
end
context 'select jdk for OpenBSD' do
let(:facts) { {:osfamily => 'OpenBSD'} }
it { should contain_package('java').with_name('jdk') }
end
context 'select jre for OpenBSD' do
let(:facts) { {:osfamily => 'OpenBSD'} }
let(:params) { { 'distribution' => 'jre' } }
it { should contain_package('java').with_name('jre') }
end
describe 'incompatible OSs' do
[
{
@@ -170,7 +204,7 @@ describe 'java', :type => :class do
].each do |facts|
let(:facts) { facts }
it "should fail on #{facts[:operatingsystem]} #{facts[:operatingsystemrelease]}" do
expect { subject }.to raise_error Puppet::Error, /unsupported platform/
expect { catalogue }.to raise_error Puppet::Error, /unsupported platform/
end
end
end

View File

@@ -1 +1,6 @@
require 'puppetlabs_spec_helper/module_spec_helper'
RSpec.configure do |c|
# declare an exclusion filter for the tests using with_env on facter 1.6, as the function is not available on 1.6
c.filter_run_excluding :with_env => true if Facter.version =~ /^1\.6\./
end

View File

@@ -1,23 +1,12 @@
require 'beaker-rspec'
require 'beaker/puppet_install_helper'
run_puppet_install_helper
UNSUPPORTED_PLATFORMS = [ "Darwin", "windows" ]
unless ENV["RS_PROVISION"] == "no" or ENV["BEAKER_provision"] == "no"
# This will install the latest available package on el and deb based
# systems fail on windows and osx, and install via gem on other *nixes
foss_opts = { :default_action => 'gem_install' }
if default.is_pe?; then install_pe; else install_puppet( foss_opts ); end
hosts.each do |host|
if host["platform"] =~ /solaris/
on host, "echo 'export PATH=/opt/puppet/bin:/var/ruby/1.8/gem_home/bin:${PATH}' >> ~/.bashrc"
end
unless host.is_pe?
on host, "/bin/mkdir -p #{host["puppetpath"]}"
on host, "/bin/echo '' > #{host["hieraconf"]}"
end
on host, "mkdir -p #{host["distmoduledir"]}"
if host['platform'] =~ /sles-1/i || host['platform'] =~ /solaris-1/i
get_stdlib = <<-stdlib
package{'wget':}

View File

@@ -11,7 +11,7 @@ describe Facter::Util::Fact do
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
end
it do
Facter.fact(:java_major_version).value.should == "7"
expect(Facter.fact(:java_major_version).value).to eq("7")
end
end
@@ -20,7 +20,7 @@ describe Facter::Util::Fact do
Facter.fact(:java_version).stubs(:value).returns(nil)
end
it do
Facter.fact(:java_major_version).value.should be_nil
expect(Facter.fact(:java_major_version).value).to be_nil
end
end
end

View File

@@ -12,18 +12,18 @@ describe Facter::Util::Fact do
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
end
it do
Facter.fact(:java_patch_level).value.should == "71"
expect(Facter.fact(:java_patch_level).value).to eq("71")
end
end
end
context "if java is installed" do
context 'returns java patch version extracted from java_version fact' do
context "if java is not installed" do
context 'returns nil' do
before :each do
Facter.fact(:java_version).stubs(:value).returns(nil)
end
it do
Facter.fact(:java_patch_level).value.should be_nil
expect(Facter.fact(:java_patch_level).value).to be_nil
end
end
end

View File

@@ -7,23 +7,85 @@ describe Facter::Util::Fact do
describe "java_version" do
context 'returns java version when java present' do
it do
java_version_output = <<-EOS
context 'on OpenBSD', :with_env => true do
before do
Facter.fact(:operatingsystem).stubs(:value).returns("OpenBSD")
end
let(:facts) { {:operatingsystem => 'OpenBSD'} }
it do
java_version_output = <<-EOS
openjdk version "1.7.0_71"
OpenJDK Runtime Environment (build 1.7.0_71-b14)
OpenJDK 64-Bit Server VM (build 24.71-b01, mixed mode)
EOS
Facter::Util::Resolution.expects(:which).with("java").returns('/usr/local/jdk-1.7.0/jre/bin/java')
Facter::Util::Resolution.expects(:exec).with("java -Xmx8m -version 2>&1").returns(java_version_output)
expect(Facter.value(:java_version)).to eq("1.7.0_71")
end
end
context 'on Darwin' do
before do
Facter.fact(:operatingsystem).stubs(:value).returns("Darwin")
end
let(:facts) { {:operatingsystem => 'Darwin'} }
it do
java_version_output = <<-EOS
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
EOS
Facter::Util::Resolution.expects(:which).with("java").returns(true)
Facter::Util::Resolution.expects(:exec).with("java -version 2>&1").returns(java_version_output)
Facter.fact(:java_version).value.should == "1.7.0_71"
EOS
Facter::Util::Resolution.expects(:exec).with("/usr/libexec/java_home --failfast 2>&1").returns("/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home")
Facter::Util::Resolution.expects(:exec).with("java -Xmx8m -version 2>&1").returns(java_version_output)
Facter.value(:java_version).should == "1.7.0_71"
end
end
context 'on other systems' do
before do
Facter.fact(:operatingsystem).stubs(:value).returns("MyOS")
end
let(:facts) { {:operatingsystem => 'MyOS'} }
it do
java_version_output = <<-EOS
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
EOS
Facter::Util::Resolution.expects(:exec).with("java -Xmx8m -version 2>&1").returns(java_version_output)
expect(Facter.value(:java_version)).to eq("1.7.0_71")
end
end
end
context 'returns nil when java not present' do
it do
Facter::Util::Resolution.stubs(:exec)
Facter::Util::Resolution.expects(:which).with("java").returns(false)
Facter.fact(:java_version).should be_nil
context 'on OpenBSD', :with_env => true do
before do
Facter.fact(:operatingsystem).stubs(:value).returns("OpenBSD")
end
let(:facts) { {:operatingsystem => 'OpenBSD'} }
it do
Facter::Util::Resolution.stubs(:exec)
expect(Facter.value(:java_version)).to be_nil
end
end
context 'on Darwin' do
before do
Facter.fact(:operatingsystem).stubs(:value).returns("Darwin")
end
let(:facts) { {:operatingsystem => 'Darwin'} }
it do
Facter::Util::Resolution.expects(:exec).at_least(1).with("/usr/libexec/java_home --failfast 2>&1").returns('Unable to find any JVMs matching version "(null)".')
Facter.value(:java_version).should be_nil
end
end
context 'on other systems' do
before do
Facter.fact(:operatingsystem).stubs(:value).returns("MyOS")
end
let(:facts) { {:operatingsystem => 'MyOS'} }
it do
Facter::Util::Resolution.expects(:which).at_least(1).with("java").returns(false)
expect(Facter.value(:java_version)).to be_nil
end
end
end
end