Skip to content

Commit 5fc917e

Browse files
author
Joshua Hoblitt
committed
Merge pull request jhoblitt#4 from nosolutions/rhel5
2 parents 5340961 + 904a9ce commit 5fc917e

File tree

10 files changed

+189
-43
lines changed

10 files changed

+189
-43
lines changed

.fixtures.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
fixtures:
22
repositories:
33
"stdlib":
4-
repo: "git://github.com/puppetlabs/puppetlabs-stdlib.git"
4+
repo: "https://github.com/puppetlabs/puppetlabs-stdlib.git"
55
ref: "3.0.0"
66

77
symlinks:

manifests/init.pp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@
2020
# include udev
2121
#
2222
class udev(
23-
$udev_log = 'err'
23+
$udev_log = 'err',
24+
$config_file_replace = true
2425
) inherits udev::params {
2526
validate_re($udev_log, '^err$|^info$|^debug$')
27+
validate_bool($config_file_replace)
2628

2729
anchor { 'udev:begin': } ->
2830
package{ $udev::params::udev_package:
@@ -34,6 +36,7 @@
3436
owner => 'root',
3537
group => 'root',
3638
mode => '0644',
39+
replace => $config_file_replace,
3740
notify => Class['udev::udevadm::logpriority'],
3841
} ->
3942
anchor { 'udev:end': }

manifests/params.pp

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,25 @@
77
$udevadm_path = '/sbin'
88

99
case $::osfamily {
10-
'redhat': {}
11-
'debian': {}
10+
'debian': {
11+
$udevlogpriority = 'udevadm control --log-priority'
12+
$udevtrigger = 'udevadm trigger'
13+
}
14+
'redhat': {
15+
case $::operatingsystemmajrelease {
16+
'5': {
17+
$udevtrigger = 'udevtrigger'
18+
$udevlogpriority = 'udevcontrol log_priority'
19+
}
20+
'6','7': {
21+
$udevtrigger = 'udevadm trigger'
22+
$udevlogpriority = 'udevadm control --log-priority'
23+
}
24+
default: {
25+
fail("Module ${module_name} is not supported on RedHat release ${::operatingsystemmajrelease}")
26+
}
27+
}
28+
}
1229
default: {
1330
fail("Module ${module_name} is not supported on ${::operatingsystem}")
1431
}

manifests/udevadm/logpriority.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
) inherits udev::params {
2424
validate_re($udev_log, '^err$|^info$|^debug$')
2525

26-
exec { "udevadm control --log-priority=${udev_log}":
26+
exec { "${udev::params::udevlogpriority}=${udev_log}":
2727
refreshonly => true,
2828
path => [$udev::params::udevadm_path],
2929
}

manifests/udevadm/trigger.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
# cases.
1818
# http://unix.stackexchange.com/questions/39370/how-to-reload-udev-rules-without-reboot
1919

20-
exec { 'udevadm trigger':
20+
exec { $udev::params::udevtrigger:
2121
refreshonly => true,
2222
path => [$udev::params::udevadm_path],
2323
}

spec/classes/params_spec.rb

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,35 @@
22

33
describe 'udev::params', :type => :class do
44
describe 'for osfamily RedHat' do
5-
let(:facts) {{ :osfamily => 'RedHat' }}
5+
let :facts do
6+
{
7+
:osfamily => 'RedHat',
8+
:operatingsystemmajrelease => '6',
9+
}
10+
end
11+
12+
13+
it { should contain_class('udev::params') }
14+
end
615

7-
it { should include_class('udev::params') }
16+
describe 'for osfamily RedHat' do
17+
let :facts do
18+
{
19+
:osfamily => 'RedHat',
20+
:operatingsystemmajrelease => '4',
21+
}
22+
end
23+
24+
it 'should fail' do
25+
expect { should contain_class('udev::params') }.
26+
to raise_error(Puppet::Error, /not supported on RedHat release 4/)
27+
end
828
end
929

1030
describe 'for osfamily Debian' do
1131
let(:facts) {{ :osfamily => 'Debian' }}
1232

13-
it { should include_class('udev::params') }
33+
it { should contain_class('udev::params') }
1434
end
1535

1636
describe 'unsupported osfamily' do
@@ -22,7 +42,7 @@
2242
end
2343

2444
it 'should fail' do
25-
expect { should include_class('udev::params') }.
45+
expect { should contain_class('udev::params') }.
2646
to raise_error(Puppet::Error, /not supported on OpenSuSE/)
2747
end
2848
end

spec/classes/udev_spec.rb

Lines changed: 43 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,19 @@
22

33
describe 'udev', :type => :class do
44

5-
shared_examples 'udev_log_param' do |udev_log, params|
5+
shared_examples 'udev_log_param' do |udev_log, config_file_replace, params|
66
let(:params) { params }
77

88
it do
9-
should include_class('udev')
9+
should contain_class('udev')
1010
should contain_package('udev').with_ensure('present')
1111
should contain_file('/etc/udev/udev.conf').
1212
with({
13-
:ensure => 'file',
14-
:owner => 'root',
15-
:group => 'root',
16-
:mode => '0644',
13+
:ensure => 'file',
14+
:owner => 'root',
15+
:group => 'root',
16+
:mode => '0644',
17+
:config_file_replace => $config_file_replace,
1718
}).
1819
with_content(/udev_log="#{udev_log}"/)
1920
should contain_class('udev::udevadm::trigger')
@@ -23,34 +24,61 @@
2324
end
2425

2526
describe 'for osfamily RedHat' do
26-
let(:facts) {{ :osfamily => 'RedHat' }}
27+
let :facts do
28+
{
29+
:osfamily => 'RedHat',
30+
:operatingsystemmajrelease => '6',
31+
}
32+
end
2733

2834
describe 'no params' do
29-
it_behaves_like('udev_log_param', 'err', {})
35+
it_behaves_like('udev_log_param', 'err', true, {})
36+
end
37+
38+
describe 'udev_log => err, config_file_replace => true' do
39+
it_behaves_like('udev_log_param', 'err', true, { :udev_log => 'err', :config_file_replace => true })
40+
end
41+
42+
describe 'udev_log => info, config_file_replace => true' do
43+
it_behaves_like('udev_log_param', 'info', true, { :udev_log => 'info', :config_file_replace => true })
44+
end
45+
46+
describe 'udev_log => debug, config_file_replace => true' do
47+
it_behaves_like('udev_log_param', 'debug', true, { :udev_log => 'debug', :config_file_replace => true })
3048
end
3149

32-
describe 'udev_log => err' do
33-
it_behaves_like('udev_log_param', 'err', { :udev_log => 'err' })
50+
describe 'udev_log => err, config_file_replace => false' do
51+
it_behaves_like('udev_log_param', 'err', false, { :udev_log => 'err', :config_file_replace => false })
3452
end
3553

36-
describe 'udev_log => info' do
37-
it_behaves_like('udev_log_param', 'info', { :udev_log => 'info' })
54+
describe 'udev_log => info, config_file_replace => false' do
55+
it_behaves_like('udev_log_param', 'info', false, { :udev_log => 'info', :config_file_replace => false })
3856
end
3957

40-
describe 'udev_log => debug' do
41-
it_behaves_like('udev_log_param', 'debug', { :udev_log => 'debug' })
58+
describe 'udev_log => debug, config_file_replace => false' do
59+
it_behaves_like('udev_log_param', 'debug', false, { :udev_log => 'debug', :config_file_replace => false })
4260
end
4361

4462
describe 'udev_log => invalid' do
4563
let(:params) {{ :udev_log => 'invalid' }}
4664

4765
it 'should fail' do
4866
expect {
49-
should include_class('udev')
67+
should contain_class('udev')
5068
}.to raise_error(Puppet::Error, /does not match/)
5169
end
5270
end
5371

72+
describe 'config_file_replace => invalid' do
73+
let(:params) {{ :config_file_replace => 'invalid' }}
74+
75+
it 'should fail' do
76+
expect {
77+
should contain_class('udev')
78+
}.to raise_error(Puppet::Error, /is not a boolean/)
79+
end
80+
end
81+
5482
end
5583

5684
end

spec/classes/udevadm/logpriority_spec.rb

Lines changed: 60 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
describe 'udev::udevadm::logpriority', :type => :class do
44

5-
shared_examples 'udev_log_param' do |udev_log, params|
5+
shared_examples 'udev_log_param_redhat_6' do |udev_log, params|
66
let(:params) { params }
77

88
it do
@@ -15,31 +15,83 @@
1515
end
1616
end
1717

18-
describe 'for osfamily RedHat' do
19-
let(:facts) {{ :osfamily => 'RedHat' }}
18+
shared_examples 'udev_log_param_redhat_5' do |udev_log, params|
19+
let(:params) { params }
20+
21+
it do
22+
should contain_class('udev::udevadm::logpriority').
23+
with_udev_log(udev_log)
24+
should contain_exec("udevcontrol log_priority=#{udev_log}").with({
25+
:refreshonly => true,
26+
:path => '/sbin',
27+
})
28+
end
29+
end
30+
31+
describe 'for osfamily RedHat and operatingsystemmajrelease 6' do
32+
let(:facts) do
33+
{ :osfamily => 'RedHat',
34+
:operatingsystemmajrelease => '6',
35+
}
36+
end
37+
38+
describe 'no params' do
39+
it_behaves_like('udev_log_param_redhat_6', 'err', {})
40+
end
41+
42+
describe 'udev_log => err' do
43+
it_behaves_like('udev_log_param_redhat_6', 'err', { :udev_log => 'err' })
44+
end
45+
46+
describe 'udev_log => info' do
47+
it_behaves_like('udev_log_param_redhat_6', 'info', { :udev_log => 'info' })
48+
end
49+
50+
describe 'udev_log => debug' do
51+
it_behaves_like('udev_log_param_redhat_6', 'debug', { :udev_log => 'debug' })
52+
end
53+
54+
describe 'udev_log => invalid' do
55+
let(:params) {{ :udev_log => 'invalid' }}
56+
57+
it 'should fail' do
58+
expect {
59+
should contain_class('udev::udevadm::logpriority')
60+
}.to raise_error(Puppet::Error, /does not match/)
61+
end
62+
end
63+
64+
end
65+
66+
describe 'for osfamily RedHat and operatingsystemmajrelease 5' do
67+
let(:facts) do
68+
{ :osfamily => 'RedHat',
69+
:operatingsystemmajrelease => '5',
70+
}
71+
end
2072

2173
describe 'no params' do
22-
it_behaves_like('udev_log_param', 'err', {})
74+
it_behaves_like('udev_log_param_redhat_5', 'err', {})
2375
end
2476

2577
describe 'udev_log => err' do
26-
it_behaves_like('udev_log_param', 'err', { :udev_log => 'err' })
78+
it_behaves_like('udev_log_param_redhat_5', 'err', { :udev_log => 'err' })
2779
end
2880

2981
describe 'udev_log => info' do
30-
it_behaves_like('udev_log_param', 'info', { :udev_log => 'info' })
82+
it_behaves_like('udev_log_param_redhat_5', 'info', { :udev_log => 'info' })
3183
end
3284

3385
describe 'udev_log => debug' do
34-
it_behaves_like('udev_log_param', 'debug', { :udev_log => 'debug' })
86+
it_behaves_like('udev_log_param_redhat_5', 'debug', { :udev_log => 'debug' })
3587
end
3688

3789
describe 'udev_log => invalid' do
3890
let(:params) {{ :udev_log => 'invalid' }}
3991

4092
it 'should fail' do
4193
expect {
42-
should include_class('udev::udevadm::logpriority')
94+
should contain_class('udev::udevadm::logpriority')
4395
}.to raise_error(Puppet::Error, /does not match/)
4496
end
4597
end

spec/classes/udevadm/trigger_spec.rb

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@
33
describe 'udev::udevadm::trigger', :type => :class do
44

55
describe 'for osfamily RedHat' do
6-
let(:facts) {{ :osfamily => 'RedHat' }}
6+
let(:facts) do
7+
{ :osfamily => 'RedHat',
8+
:operatingsystemmajrelease => '6',
9+
}
10+
end
711

8-
it { should include_class('udev::udevadm::trigger') }
12+
it { should contain_class('udev::udevadm::trigger') }
913
it do
1014
should contain_exec('udevadm trigger').with({
1115
:refreshonly => true,
@@ -14,4 +18,20 @@
1418
end
1519
end
1620

21+
describe 'for osfamily RedHat' do
22+
let(:facts) do
23+
{ :osfamily => 'RedHat',
24+
:operatingsystemmajrelease => '5',
25+
}
26+
end
27+
28+
it { should contain_class('udev::udevadm::trigger') }
29+
it do
30+
should contain_exec('udevtrigger').with({
31+
:refreshonly => true,
32+
:path => ['/sbin'],
33+
})
34+
end
35+
end
36+
1737
end

0 commit comments

Comments
 (0)