Skip to content

Commit 112ebab

Browse files
author
Joshua Hoblitt
committed
add class udev::udevadm to manage udevadm trigger
1 parent b6821fe commit 112ebab

File tree

6 files changed

+58
-0
lines changed

6 files changed

+58
-0
lines changed

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,15 @@ Usage
3232
include udev
3333
```
3434

35+
### Manually trigging a udev rules reload
36+
37+
```puppet
38+
file { '/etc/etc/udev/rules.d/99-myfrobnicator.rules':
39+
...
40+
notify => Class['udev::udevadm'],
41+
}
42+
```
43+
3544

3645
Limitations
3746
-----------

manifests/init.pp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33
# simple template
44
#
55
class udev inherits udev::params {
6+
67
package{ $udev::params::udev_package:
78
ensure => present,
89
}
10+
11+
class { 'udev::udevadm': } ->
12+
Class['udev']
913
}

manifests/params.pp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#
55
class udev::params {
66
$udev_package = 'udev'
7+
$udevadm_path = '/sbin'
78

89
case $::osfamily {
910
'redhat': {}

manifests/udevadm.pp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# == Class: udev::udevadm
2+
#
3+
# This class should not being included into the manifest directly. It's
4+
# function is to receive messages that the udev configuration files have
5+
# changed.
6+
#
7+
# === Example
8+
#
9+
# file { '/etc/etc/udev/rules.d/99-myfrobnicator.rules':
10+
# ...
11+
# notify => Class['udev::udevadm'],
12+
# }
13+
#
14+
class udev::udevadm inherits udev::params {
15+
16+
# adding `udevadm control --reload-rules` may be needed some day for edge
17+
# cases.
18+
# http://unix.stackexchange.com/questions/39370/how-to-reload-udev-rules-without-reboot
19+
20+
exec { 'udevadm trigger':
21+
command => 'udevadm trigger',
22+
refreshonly => true,
23+
path => [$udev::params::udevadm_path],
24+
}
25+
}

spec/classes/udev_spec.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
it { should include_class('udev') }
99
it { should contain_package('udev').with_ensure(:present) }
10+
it { should contain_class('udev::udevadm') }
1011
end
1112

1213
end

spec/classes/udevadm_spec.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
require 'spec_helper'
2+
3+
describe 'udev::udevadm', :type => :class do
4+
5+
describe 'for osfamily RedHat' do
6+
let(:facts) {{ :osfamily => 'RedHat' }}
7+
8+
it { should include_class('udev::udevadm') }
9+
it do
10+
should contain_exec('udevadm trigger').with({
11+
:command => 'udevadm trigger',
12+
:refreshonly => true,
13+
:path => ['/sbin'],
14+
})
15+
end
16+
end
17+
18+
end

0 commit comments

Comments
 (0)