Skip to content

Commit

Permalink
Merge pull request jhoblitt#4 from nosolutions/rhel5
Browse files Browse the repository at this point in the history
  • Loading branch information
Joshua Hoblitt committed May 15, 2014
2 parents 5340961 + 904a9ce commit 5fc917e
Show file tree
Hide file tree
Showing 10 changed files with 189 additions and 43 deletions.
2 changes: 1 addition & 1 deletion .fixtures.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
fixtures:
repositories:
"stdlib":
repo: "git://github.com/puppetlabs/puppetlabs-stdlib.git"
repo: "https://github.com/puppetlabs/puppetlabs-stdlib.git"
ref: "3.0.0"

symlinks:
Expand Down
5 changes: 4 additions & 1 deletion manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,11 @@
# include udev
#
class udev(
$udev_log = 'err'
$udev_log = 'err',
$config_file_replace = true
) inherits udev::params {
validate_re($udev_log, '^err$|^info$|^debug$')
validate_bool($config_file_replace)

anchor { 'udev:begin': } ->
package{ $udev::params::udev_package:
Expand All @@ -34,6 +36,7 @@
owner => 'root',
group => 'root',
mode => '0644',
replace => $config_file_replace,
notify => Class['udev::udevadm::logpriority'],
} ->
anchor { 'udev:end': }
Expand Down
21 changes: 19 additions & 2 deletions manifests/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,25 @@
$udevadm_path = '/sbin'

case $::osfamily {
'redhat': {}
'debian': {}
'debian': {
$udevlogpriority = 'udevadm control --log-priority'
$udevtrigger = 'udevadm trigger'
}
'redhat': {
case $::operatingsystemmajrelease {
'5': {
$udevtrigger = 'udevtrigger'
$udevlogpriority = 'udevcontrol log_priority'
}
'6','7': {
$udevtrigger = 'udevadm trigger'
$udevlogpriority = 'udevadm control --log-priority'
}
default: {
fail("Module ${module_name} is not supported on RedHat release ${::operatingsystemmajrelease}")
}
}
}
default: {
fail("Module ${module_name} is not supported on ${::operatingsystem}")
}
Expand Down
2 changes: 1 addition & 1 deletion manifests/udevadm/logpriority.pp
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
) inherits udev::params {
validate_re($udev_log, '^err$|^info$|^debug$')

exec { "udevadm control --log-priority=${udev_log}":
exec { "${udev::params::udevlogpriority}=${udev_log}":
refreshonly => true,
path => [$udev::params::udevadm_path],
}
Expand Down
2 changes: 1 addition & 1 deletion manifests/udevadm/trigger.pp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
# cases.
# http://unix.stackexchange.com/questions/39370/how-to-reload-udev-rules-without-reboot

exec { 'udevadm trigger':
exec { $udev::params::udevtrigger:
refreshonly => true,
path => [$udev::params::udevadm_path],
}
Expand Down
28 changes: 24 additions & 4 deletions spec/classes/params_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,35 @@

describe 'udev::params', :type => :class do
describe 'for osfamily RedHat' do
let(:facts) {{ :osfamily => 'RedHat' }}
let :facts do
{
:osfamily => 'RedHat',
:operatingsystemmajrelease => '6',
}
end


it { should contain_class('udev::params') }
end

it { should include_class('udev::params') }
describe 'for osfamily RedHat' do
let :facts do
{
:osfamily => 'RedHat',
:operatingsystemmajrelease => '4',
}
end

it 'should fail' do
expect { should contain_class('udev::params') }.
to raise_error(Puppet::Error, /not supported on RedHat release 4/)
end
end

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

it { should include_class('udev::params') }
it { should contain_class('udev::params') }
end

describe 'unsupported osfamily' do
Expand All @@ -22,7 +42,7 @@
end

it 'should fail' do
expect { should include_class('udev::params') }.
expect { should contain_class('udev::params') }.
to raise_error(Puppet::Error, /not supported on OpenSuSE/)
end
end
Expand Down
58 changes: 43 additions & 15 deletions spec/classes/udev_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,19 @@

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

shared_examples 'udev_log_param' do |udev_log, params|
shared_examples 'udev_log_param' do |udev_log, config_file_replace, params|
let(:params) { params }

it do
should include_class('udev')
should contain_class('udev')
should contain_package('udev').with_ensure('present')
should contain_file('/etc/udev/udev.conf').
with({
:ensure => 'file',
:owner => 'root',
:group => 'root',
:mode => '0644',
:ensure => 'file',
:owner => 'root',
:group => 'root',
:mode => '0644',
:config_file_replace => $config_file_replace,
}).
with_content(/udev_log="#{udev_log}"/)
should contain_class('udev::udevadm::trigger')
Expand All @@ -23,34 +24,61 @@
end

describe 'for osfamily RedHat' do
let(:facts) {{ :osfamily => 'RedHat' }}
let :facts do
{
:osfamily => 'RedHat',
:operatingsystemmajrelease => '6',
}
end

describe 'no params' do
it_behaves_like('udev_log_param', 'err', {})
it_behaves_like('udev_log_param', 'err', true, {})
end

describe 'udev_log => err, config_file_replace => true' do
it_behaves_like('udev_log_param', 'err', true, { :udev_log => 'err', :config_file_replace => true })
end

describe 'udev_log => info, config_file_replace => true' do
it_behaves_like('udev_log_param', 'info', true, { :udev_log => 'info', :config_file_replace => true })
end

describe 'udev_log => debug, config_file_replace => true' do
it_behaves_like('udev_log_param', 'debug', true, { :udev_log => 'debug', :config_file_replace => true })
end

describe 'udev_log => err' do
it_behaves_like('udev_log_param', 'err', { :udev_log => 'err' })
describe 'udev_log => err, config_file_replace => false' do
it_behaves_like('udev_log_param', 'err', false, { :udev_log => 'err', :config_file_replace => false })
end

describe 'udev_log => info' do
it_behaves_like('udev_log_param', 'info', { :udev_log => 'info' })
describe 'udev_log => info, config_file_replace => false' do
it_behaves_like('udev_log_param', 'info', false, { :udev_log => 'info', :config_file_replace => false })
end

describe 'udev_log => debug' do
it_behaves_like('udev_log_param', 'debug', { :udev_log => 'debug' })
describe 'udev_log => debug, config_file_replace => false' do
it_behaves_like('udev_log_param', 'debug', false, { :udev_log => 'debug', :config_file_replace => false })
end

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

it 'should fail' do
expect {
should include_class('udev')
should contain_class('udev')
}.to raise_error(Puppet::Error, /does not match/)
end
end

describe 'config_file_replace => invalid' do
let(:params) {{ :config_file_replace => 'invalid' }}

it 'should fail' do
expect {
should contain_class('udev')
}.to raise_error(Puppet::Error, /is not a boolean/)
end
end

end

end
68 changes: 60 additions & 8 deletions spec/classes/udevadm/logpriority_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

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

shared_examples 'udev_log_param' do |udev_log, params|
shared_examples 'udev_log_param_redhat_6' do |udev_log, params|
let(:params) { params }

it do
Expand All @@ -15,31 +15,83 @@
end
end

describe 'for osfamily RedHat' do
let(:facts) {{ :osfamily => 'RedHat' }}
shared_examples 'udev_log_param_redhat_5' do |udev_log, params|
let(:params) { params }

it do
should contain_class('udev::udevadm::logpriority').
with_udev_log(udev_log)
should contain_exec("udevcontrol log_priority=#{udev_log}").with({
:refreshonly => true,
:path => '/sbin',
})
end
end

describe 'for osfamily RedHat and operatingsystemmajrelease 6' do
let(:facts) do
{ :osfamily => 'RedHat',
:operatingsystemmajrelease => '6',
}
end

describe 'no params' do
it_behaves_like('udev_log_param_redhat_6', 'err', {})
end

describe 'udev_log => err' do
it_behaves_like('udev_log_param_redhat_6', 'err', { :udev_log => 'err' })
end

describe 'udev_log => info' do
it_behaves_like('udev_log_param_redhat_6', 'info', { :udev_log => 'info' })
end

describe 'udev_log => debug' do
it_behaves_like('udev_log_param_redhat_6', 'debug', { :udev_log => 'debug' })
end

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

it 'should fail' do
expect {
should contain_class('udev::udevadm::logpriority')
}.to raise_error(Puppet::Error, /does not match/)
end
end

end

describe 'for osfamily RedHat and operatingsystemmajrelease 5' do
let(:facts) do
{ :osfamily => 'RedHat',
:operatingsystemmajrelease => '5',
}
end

describe 'no params' do
it_behaves_like('udev_log_param', 'err', {})
it_behaves_like('udev_log_param_redhat_5', 'err', {})
end

describe 'udev_log => err' do
it_behaves_like('udev_log_param', 'err', { :udev_log => 'err' })
it_behaves_like('udev_log_param_redhat_5', 'err', { :udev_log => 'err' })
end

describe 'udev_log => info' do
it_behaves_like('udev_log_param', 'info', { :udev_log => 'info' })
it_behaves_like('udev_log_param_redhat_5', 'info', { :udev_log => 'info' })
end

describe 'udev_log => debug' do
it_behaves_like('udev_log_param', 'debug', { :udev_log => 'debug' })
it_behaves_like('udev_log_param_redhat_5', 'debug', { :udev_log => 'debug' })
end

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

it 'should fail' do
expect {
should include_class('udev::udevadm::logpriority')
should contain_class('udev::udevadm::logpriority')
}.to raise_error(Puppet::Error, /does not match/)
end
end
Expand Down
24 changes: 22 additions & 2 deletions spec/classes/udevadm/trigger_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,13 @@
describe 'udev::udevadm::trigger', :type => :class do

describe 'for osfamily RedHat' do
let(:facts) {{ :osfamily => 'RedHat' }}
let(:facts) do
{ :osfamily => 'RedHat',
:operatingsystemmajrelease => '6',
}
end

it { should include_class('udev::udevadm::trigger') }
it { should contain_class('udev::udevadm::trigger') }
it do
should contain_exec('udevadm trigger').with({
:refreshonly => true,
Expand All @@ -14,4 +18,20 @@
end
end

describe 'for osfamily RedHat' do
let(:facts) do
{ :osfamily => 'RedHat',
:operatingsystemmajrelease => '5',
}
end

it { should contain_class('udev::udevadm::trigger') }
it do
should contain_exec('udevtrigger').with({
:refreshonly => true,
:path => ['/sbin'],
})
end
end

end
Loading

0 comments on commit 5fc917e

Please sign in to comment.