Skip to content

Commit 9df2f3d

Browse files
author
Nate Potter
committed
Change exec to file_line
This commit updates the setting of JAVA_HOME in /etc/environment to be done with file_line rather than exec.
1 parent 9093da3 commit 9df2f3d

2 files changed

Lines changed: 45 additions & 51 deletions

File tree

‎manifests/config.pp‎

Lines changed: 24 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,10 @@
1010
}
1111
}
1212
if $java::use_java_home != undef {
13-
exec { 'java-home-environment':
14-
path => '/bin',
15-
user => 'root',
16-
command => "echo JAVA_HOME=${$java::use_java_home} >> /etc/environment",
17-
unless => "grep -Fx \"JAVA_HOME=${$java::use_java_home}\" \"/etc/environment\"",
13+
file_line { 'java-home-environment':
14+
path => '/etc/environment',
15+
line => "JAVA_HOME=${$java::use_java_home}",
16+
match => 'JAVA_HOME=',
1817
}
1918
}
2019
}
@@ -38,51 +37,46 @@
3837
}
3938
}
4039
if $java::use_java_home != undef {
41-
exec { 'java-home-environment':
42-
path => '/bin',
43-
user => 'root',
44-
command => "echo JAVA_HOME=${$java::use_java_home} >> /etc/environment",
45-
unless => "grep -Fx \"JAVA_HOME=${$java::use_java_home}\" \"/etc/environment\"",
40+
file_line { 'java-home-environment':
41+
path => '/etc/environment',
42+
line => "JAVA_HOME=${$java::use_java_home}",
43+
match => 'JAVA_HOME=',
4644
}
4745
}
4846
}
4947
'OpenBSD': {
5048
if $java::use_java_home != undef {
51-
exec { 'java-home-environment':
52-
path => '/bin',
53-
user => 'root',
54-
command => "echo JAVA_HOME=${$java::use_java_home} >> /etc/environment",
55-
unless => "grep -Fx \"JAVA_HOME=${$java::use_java_home}\" \"/etc/environment\"",
49+
file_line { 'java-home-environment':
50+
path => '/etc/environment',
51+
line => "JAVA_HOME=${$java::use_java_home}",
52+
match => 'JAVA_HOME=',
5653
}
5754
}
5855
}
5956
'FreeBSD': {
6057
if $java::use_java_home != undef {
61-
exec { 'java-home-environment':
62-
path => '/bin',
63-
user => 'root',
64-
command => "echo JAVA_HOME=${$java::use_java_home} >> /etc/environment",
65-
unless => "grep -Fx \"JAVA_HOME=${$java::use_java_home}\" \"/etc/environment\"",
58+
file_line { 'java-home-environment':
59+
path => '/etc/environment',
60+
line => "JAVA_HOME=${$java::use_java_home}",
61+
match => 'JAVA_HOME=',
6662
}
6763
}
6864
}
6965
'Suse': {
7066
if $java::use_java_home != undef {
71-
exec { 'java-home-environment':
72-
path => '/bin',
73-
user => 'root',
74-
command => "echo JAVA_HOME=${$java::use_java_home} >> /etc/environment",
75-
unless => "grep -Fx \"JAVA_HOME=${$java::use_java_home}\" \"/etc/environment\"",
67+
file_line { 'java-home-environment':
68+
path => '/etc/environment',
69+
line => "JAVA_HOME=${$java::use_java_home}",
70+
match => 'JAVA_HOME=',
7671
}
7772
}
7873
}
7974
'Solaris': {
8075
if $java::use_java_home != undef {
81-
exec { 'java-home-environment':
82-
path => '/bin',
83-
user => 'root',
84-
command => "echo JAVA_HOME=${$java::use_java_home} >> /etc/environment",
85-
unless => "grep -Fx \"JAVA_HOME=${$java::use_java_home}\" \"/etc/environment\"",
76+
file_line { 'java-home-environment':
77+
path => '/etc/environment',
78+
line => "JAVA_HOME=${$java::use_java_home}",
79+
match => 'JAVA_HOME=',
8680
}
8781
}
8882
}

‎spec/classes/java_spec.rb‎

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@
55
context 'select openjdk for Centos 5.8' do
66
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '5.8', :architecture => 'x86_64'} }
77
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
8-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-x86_64/ >> /etc/environment') }
8+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-x86_64/') }
99
end
1010

1111
context 'select openjdk for Centos 6.3' do
1212
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '6.3', :architecture => 'x86_64'} }
1313
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
14-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/ >> /etc/environment') }
14+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/') }
1515
end
1616

1717
context 'select openjdk for Centos 7.1.1503' do
1818
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '7.1.1503', :architecture => 'x86_64'} }
1919
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk-devel') }
20-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-x86_64/ >> /etc/environment') }
20+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-x86_64/') }
2121
end
2222

2323
context 'select openjdk for Centos 6.2' do
@@ -37,27 +37,27 @@
3737
context 'select openjdk for Fedora 20' do
3838
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '20', :architecture => 'x86_64'} }
3939
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
40-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/ >> /etc/environment') }
40+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/') }
4141
end
4242

4343
context 'select openjdk for Fedora 21' do
4444
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '21', :architecture => 'x86_64'} }
4545
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk-devel') }
46-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-x86_64/ >> /etc/environment') }
46+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-x86_64/') }
4747
end
4848

4949
context 'select passed value for Fedora 20' do
5050
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '20', :architecture => 'x86_64'} }
5151
let(:params) { { 'distribution' => 'jre', 'java_home' => '/usr/local/lib/jre/' } }
5252
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
53-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/local/lib/jre/ >> /etc/environment') }
53+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/local/lib/jre/') }
5454
end
5555

5656
context 'select passed value for Fedora 21' do
5757
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '21', :architecture => 'x86_64'} }
5858
let(:params) { { 'distribution' => 'jre', 'java_home' => '/usr/local/lib/jre/' } }
5959
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk') }
60-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/local/lib/jre/ >> /etc/environment') }
60+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/local/lib/jre/') }
6161
end
6262

6363
context 'select passed value for Fedora 21 with yum option' do
@@ -84,23 +84,23 @@
8484
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} }
8585
it { is_expected.to contain_package('java').with_name('openjdk-7-jdk') }
8686
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-1.7.0-openjdk-amd64 --jre') }
87-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/ >> /etc/environment') }
87+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/') }
8888
end
8989

9090
context 'select Oracle JRE for Debian Wheezy' do
9191
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} }
9292
let(:params) { { 'distribution' => 'oracle-jre' } }
9393
it { is_expected.to contain_package('java').with_name('oracle-j2re1.7') }
9494
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set j2re1.7-oracle --jre') }
95-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/lib/jvm/j2re1.7-oracle/ >> /etc/environment') }
95+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/j2re1.7-oracle/') }
9696
end
9797

9898
context 'select OpenJDK JRE for Debian Wheezy' do
9999
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} }
100100
let(:params) { { 'distribution' => 'jre' } }
101101
it { is_expected.to contain_package('java').with_name('openjdk-7-jre-headless') }
102102
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-1.7.0-openjdk-amd64 --jre-headless') }
103-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/ >> /etc/environment') }
103+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/') }
104104
end
105105

106106
context 'select default for Debian Squeeze' do
@@ -114,15 +114,15 @@
114114
let(:params) { { 'distribution' => 'sun-jre', } }
115115
it { is_expected.to contain_package('java').with_name('sun-java6-jre') }
116116
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-sun --jre') }
117-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/lib/jvm/java-6-sun/jre/ >> /etc/environment') }
117+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-6-sun/jre/') }
118118
end
119119

120120
context 'select OpenJDK JRE for Debian Squeeze' do
121121
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'squeeze', :operatingsystemrelease => '6.0.5', :architecture => 'amd64',} }
122122
let(:params) { { 'distribution' => 'jre', } }
123123
it { is_expected.to contain_package('java').with_name('openjdk-6-jre-headless') }
124124
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-openjdk-amd64 --jre-headless') }
125-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/lib/jvm/java-6-openjdk/jre/ >> /etc/environment') }
125+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-6-openjdk/jre/') }
126126
end
127127

128128
context 'select random alternative for Debian Wheezy' do
@@ -136,20 +136,20 @@
136136
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Ubuntu', :lsbdistcodename => 'vivid', :operatingsystemrelease => '15.04', :architecture => 'amd64',} }
137137
let(:params) { { 'distribution' => 'jdk' } }
138138
it { is_expected.to contain_package('java').with_name('openjdk-8-jdk') }
139-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/ >> /etc/environment') }
139+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/') }
140140
end
141141

142142
context 'select jre for Ubuntu Vivid (15.04)' do
143143
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Ubuntu', :lsbdistcodename => 'vivid', :operatingsystemrelease => '15.04', :architecture => 'amd64',} }
144144
let(:params) { { 'distribution' => 'jre' } }
145145
it { is_expected.to contain_package('java').with_name('openjdk-8-jre-headless') }
146-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/ >> /etc/environment') }
146+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/') }
147147
end
148148

149149
context 'select openjdk for Amazon Linux' do
150150
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Amazon', :operatingsystemrelease => '3.4.43-43.43.amzn1.x86_64', :architecture => 'x86_64'} }
151151
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
152-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/ >> /etc/environment') }
152+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/') }
153153
end
154154

155155
context 'select passed value for Amazon Linux' do
@@ -178,37 +178,37 @@
178178
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Scientific', :operatingsystemrelease => '6.4', :architecture => 'x86_64'} }
179179
let(:params) { { 'distribution' => 'jre' } }
180180
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
181-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/ >> /etc/environment') }
181+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-x86_64/') }
182182
end
183183

184184
context 'select default for OpenSUSE 12.3' do
185185
let(:facts) { {:osfamily => 'Suse', :operatingsystem => 'OpenSUSE', :operatingsystemrelease => '12.3', :architecture => 'x86_64'}}
186186
it { is_expected.to contain_package('java').with_name('java-1_7_0-openjdk-devel')}
187-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/ >> /etc/environment') }
187+
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/') }
188188
end
189189

190190
context 'select default for SLES 11.3' do
191191
let(:facts) { {:osfamily => 'Suse', :operatingsystem => 'SLES', :operatingsystemrelease => '11.3', :architecture => 'x86_64'}}
192192
it { should contain_package('java').with_name('java-1_6_0-ibm-devel')}
193-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/lib64/jvm/java-1.6.0-ibm-1.6.0/ >> /etc/environment') }
193+
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/') }
194194
end
195195

196196
context 'select default for SLES 11.4' do
197197
let(:facts) { {:osfamily => 'Suse', :operatingsystem => 'SLES', :operatingsystemrelease => '11.4', :architecture => 'x86_64'}}
198198
it { should contain_package('java').with_name('java-1_7_0-ibm-devel')}
199-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/lib64/jvm/java-1.7.0-ibm-1.7.0/ >> /etc/environment') }
199+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-ibm-1.7.0/') }
200200
end
201201

202202
context 'select default for SLES 12.1' do
203203
let(:facts) { {:osfamily => 'Suse', :operatingsystem => 'SLES', :operatingsystemrelease => '12.1', :operatingsystemmajrelease => '12', :architecture => 'x86_64'}}
204204
it { should contain_package('java').with_name('java-1_7_0-openjdk-devel')}
205-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/ >> /etc/environment') }
205+
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/') }
206206
end
207207

208208
context 'select jdk for OpenBSD' do
209209
let(:facts) { {:osfamily => 'OpenBSD', :architecture => 'x86_64'} }
210210
it { is_expected.to contain_package('java').with_name('jdk') }
211-
it { is_expected.to contain_exec('java-home-environment').with_command('echo JAVA_HOME=/usr/local/jdk/ >> /etc/environment') }
211+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/local/jdk/') }
212212
end
213213

214214
context 'select jre for OpenBSD' do

0 commit comments

Comments
 (0)