Merge pull request #203 from vrtdev/bugfix/override_package_alt_home
#MODULES-4069: Fail when required params are not available in params.
This commit is contained in:
@@ -53,15 +53,11 @@ class java(
|
|||||||
Optional[String] $java_alternative_path = undef,
|
Optional[String] $java_alternative_path = undef,
|
||||||
Optional[String] $java_home = undef
|
Optional[String] $java_home = undef
|
||||||
) {
|
) {
|
||||||
include java::params
|
include ::java::params
|
||||||
|
|
||||||
if has_key($java::params::java, $distribution) {
|
$default_package_name = has_key($java::params::java, $distribution) ? {
|
||||||
$default_package_name = $java::params::java[$distribution]['package']
|
false => undef,
|
||||||
$default_alternative = $java::params::java[$distribution]['alternative']
|
default => $java::params::java[$distribution]['package'],
|
||||||
$default_alternative_path = $java::params::java[$distribution]['alternative_path']
|
|
||||||
$default_java_home = $java::params::java[$distribution]['java_home']
|
|
||||||
} else {
|
|
||||||
fail("Java distribution ${distribution} is not supported.")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$use_java_package_name = $package ? {
|
$use_java_package_name = $package ? {
|
||||||
@@ -69,12 +65,17 @@ class java(
|
|||||||
default => $package,
|
default => $package,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
## Weird logic........
|
||||||
## If $java_alternative is set, use that.
|
## If $java_alternative is set, use that.
|
||||||
## Elsif the DEFAULT package is being used, then use $default_alternative.
|
## Elsif the DEFAULT package is being used, then use $default_alternative.
|
||||||
## Else undef
|
## Else undef
|
||||||
$use_java_alternative = $java_alternative ? {
|
$use_java_alternative = $java_alternative ? {
|
||||||
undef => $use_java_package_name ? {
|
undef => $use_java_package_name ? {
|
||||||
$default_package_name => $default_alternative,
|
$default_package_name => has_key($java::params::java, $distribution) ? {
|
||||||
|
default => $java::params::java[$distribution]['alternative'],
|
||||||
|
false => undef,
|
||||||
|
},
|
||||||
default => undef,
|
default => undef,
|
||||||
},
|
},
|
||||||
default => $java_alternative,
|
default => $java_alternative,
|
||||||
@@ -82,21 +83,38 @@ class java(
|
|||||||
|
|
||||||
## Same logic as $java_alternative above.
|
## Same logic as $java_alternative above.
|
||||||
$use_java_alternative_path = $java_alternative_path ? {
|
$use_java_alternative_path = $java_alternative_path ? {
|
||||||
undef => $use_java_package_name ? {
|
undef => $use_java_package_name ? {
|
||||||
$default_package_name => $default_alternative_path,
|
$default_package_name => has_key($java::params::java, $distribution) ? {
|
||||||
|
default => $java::params::java[$distribution]['alternative_path'],
|
||||||
|
false => undef,
|
||||||
|
},
|
||||||
default => undef,
|
default => undef,
|
||||||
},
|
},
|
||||||
default => $java_alternative_path,
|
default => $java_alternative_path,
|
||||||
}
|
}
|
||||||
|
|
||||||
$use_java_home = $java_home ? {
|
$use_java_home = $java_home ? {
|
||||||
undef => $use_java_package_name ? {
|
undef => $use_java_package_name ? {
|
||||||
$default_package_name => $default_java_home,
|
$default_package_name => has_key($java::params::java, $distribution) ? {
|
||||||
|
default => $java::params::java[$distribution]['java_home'],
|
||||||
|
false => undef,
|
||||||
|
},
|
||||||
default => undef,
|
default => undef,
|
||||||
},
|
},
|
||||||
default => $java_home,
|
default => $java_home,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
## This should only be required if we did not override all the information we need.
|
||||||
|
# One of the defaults is missing and its not intentional:
|
||||||
|
if ((
|
||||||
|
$use_java_package_name == undef or $use_java_alternative == undef or
|
||||||
|
$use_java_alternative_path == undef or $use_java_home == undef
|
||||||
|
) and (
|
||||||
|
! has_key($::java::params::java, $distribution)
|
||||||
|
)) {
|
||||||
|
fail("Java distribution ${distribution} is not supported. Missing default values.")
|
||||||
|
}
|
||||||
|
|
||||||
$jre_flag = $use_java_package_name ? {
|
$jre_flag = $use_java_package_name ? {
|
||||||
/headless/ => '--jre-headless',
|
/headless/ => '--jre-headless',
|
||||||
default => '--jre'
|
default => '--jre'
|
||||||
|
|||||||
@@ -245,6 +245,34 @@ describe 'java', :type => :class do
|
|||||||
it { is_expected.to contain_package('java').with_name('jre') }
|
it { is_expected.to contain_package('java').with_name('jre') }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'custom java package' do
|
||||||
|
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'jessie', :operatingsystemrelease => '8.6', :architecture => 'amd64',} }
|
||||||
|
context 'all params provided' do
|
||||||
|
let(:params) { {
|
||||||
|
'distribution' => 'custom',
|
||||||
|
'package' => 'custom_jdk',
|
||||||
|
'java_alternative' => 'java-custom_jdk',
|
||||||
|
'java_alternative_path' => '/opt/custom_jdk/bin/java',
|
||||||
|
'java_home' => '/opt/custom_jdk',
|
||||||
|
} }
|
||||||
|
|
||||||
|
it { is_expected.to contain_package('java').with_name('custom_jdk') }
|
||||||
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/opt/custom_jdk') }
|
||||||
|
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-custom_jdk --jre') }
|
||||||
|
|
||||||
|
end
|
||||||
|
context 'missing parameters' do
|
||||||
|
let(:params) { {
|
||||||
|
'distribution' => 'custom',
|
||||||
|
'package' => 'custom_jdk',
|
||||||
|
} }
|
||||||
|
it do
|
||||||
|
expect { catalogue }.to raise_error Puppet::Error, /is not supported. Missing default values/
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
describe 'incompatible OSs' do
|
describe 'incompatible OSs' do
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user