~citrix-openstack/nova/xenapi

« back to all changes in this revision

Viewing changes to contrib/puppet/manifests/classes/kern_module.pp

  • Committer: Salvatore Orlando
  • Date: 2011-02-28 16:12:06 UTC
  • mfrom: (408.9.326 nova)
  • Revision ID: salvatore.orlando@eu.citrix.com-20110228161206-eo8z2knv7bpck1da
merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# via http://projects.puppetlabs.com/projects/puppet/wiki/Kernel_Modules_Patterns 
2
 
 
3
 
define kern_module ($ensure) {
4
 
    $modulesfile = $operatingsystem ? { ubuntu => "/etc/modules", redhat => "/etc/rc.modules" }
5
 
    case $operatingsystem {
6
 
        redhat: { file { "/etc/rc.modules": ensure => file, mode => 755 } }
7
 
    }
8
 
    case $ensure {
9
 
        present: {
10
 
            exec { "insert_module_${name}":
11
 
                command => $operatingsystem ? {
12
 
                    ubuntu => "/bin/echo '${name}' >> '${modulesfile}'",
13
 
                    redhat => "/bin/echo '/sbin/modprobe ${name}' >> '${modulesfile}' "
14
 
                },
15
 
                unless => "/bin/grep -qFx '${name}' '${modulesfile}'"
16
 
            }
17
 
            exec { "/sbin/modprobe ${name}": unless => "/bin/grep -q '^${name} ' '/proc/modules'" }
18
 
        }
19
 
        absent: {
20
 
            exec { "/sbin/modprobe -r ${name}": onlyif => "/bin/grep -q '^${name} ' '/proc/modules'" }
21
 
            exec { "remove_module_${name}":
22
 
                command => $operatingsystem ? {
23
 
                    ubuntu => "/usr/bin/perl -ni -e 'print unless /^\\Q${name}\\E\$/' '${modulesfile}'",
24
 
                    redhat => "/usr/bin/perl -ni -e 'print unless /^\\Q/sbin/modprobe ${name}\\E\$/' '${modulesfile}'"
25
 
                },
26
 
                onlyif => $operatingsystem ? {
27
 
                    ubuntu => "/bin/grep -qFx '${name}' '${modulesfile}'",
28
 
                    redhat => "/bin/grep -q '^/sbin/modprobe ${name}' '${modulesfile}'"
29
 
                }
30
 
            }
31
 
        }
32
 
        default: { err ( "unknown ensure value ${ensure}" ) }
33
 
    }
34
 
}