38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
# File 'manifests/init.pp', line 38
class java (
String $distribution = 'jdk',
Pattern[/present|installed|latest|^[.+_0-9a-zA-Z:~-]+$/] $version = 'present',
Optional[String] $package = undef,
Optional[Array] $package_options = undef,
Optional[String] $java_alternative = undef,
Optional[String] $java_alternative_path = undef,
Optional[String] $java_home = undef
) {
contain java::params
$default_package_name = $distribution in $java::params::java ? {
false => undef,
default => $java::params::java[$distribution]['package'],
}
$use_java_package_name = $package ? {
undef => $default_package_name,
default => $package,
}
## Weird logic........
## If $java_alternative is set, use that.
## Elsif the DEFAULT package is being used, then use $default_alternative.
## Else undef
$use_java_alternative = $java_alternative ? {
undef => $use_java_package_name ? {
$default_package_name => $distribution in $java::params::java ? {
default => $java::params::java[$distribution]['alternative'],
false => undef,
},
default => undef,
},
default => $java_alternative,
}
## Same logic as $java_alternative above.
$use_java_alternative_path = $java_alternative_path ? {
undef => $use_java_package_name ? {
$default_package_name => $distribution in $java::params::java ? {
default => $java::params::java[$distribution]['alternative_path'],
false => undef,
},
default => undef,
},
default => $java_alternative_path,
}
$use_java_home = $java_home ? {
undef => $use_java_package_name ? {
$default_package_name => $distribution in $java::params::java ? {
default => $java::params::java[$distribution]['java_home'],
false => undef,
},
default => undef,
},
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 (
!($distribution in $java::params::java)
)) {
fail("Java distribution ${distribution} is not supported. Missing default values.")
}
$jre_flag = $use_java_package_name ? {
/headless/ => '--jre-headless',
default => '--jre'
}
# Enable legacy repo to install net-tools-deprecated package
# If SUSE OS major version is >= 15 and minor version is > 3
if ($facts['os']['family'] in ['SLES', 'SUSE']) and (versioncmp($facts['os']['release']['major'], '15') >= 0 and versioncmp($facts['os']['release']['minor'], '3') == 1) {
exec { 'Enable legacy repos':
path => '/bin:/usr/bin/:/sbin:/usr/sbin',
command => 'SUSEConnect --product sle-module-legacy/15.5/x86_64',
unless => 'SUSEConnect --status-text | grep sle-module-legacy/15.5/x86_64',
}
}
if $facts['os']['family'] == 'Debian' {
# Needed for update-java-alternatives
package { 'java-common':
ensure => present,
before => Class['java::config'],
}
}
package { 'java':
ensure => $version,
install_options => $package_options,
name => $use_java_package_name,
}
-> class { 'java::config': }
}
|