8ffee48d879c140deb53db20ac7dc17f0b2c7cb1
[mirror/dsa-puppet.git] / modules / systemd / manifests / override.pp
1 define systemd::override (
2         $source=undef,
3         $content=undef,
4         $ensure=present
5 ) {
6
7         $dir = "/etc/systemd/system/${name}.service.d"
8         $dest = "${dir}/override.conf"
9         case $ensure {
10                 present: {
11                         if ! ($source or $content) {
12                                 fail ( "No configuration found for ${name}" )
13                         }
14
15                         file { "${dir}":
16                                 ensure => directory,
17                                 mode   => '0755'
18                         }
19                         if $content {
20                                 file { "${dest}":
21                                         ensure  => $ensure,
22                                         content => $content,
23                                         notify  => [ Exec['systemctl daemon-reload'],
24                                                      Service["${name}"],
25                                                     ]
26                                 }
27                         } elsif $source {
28                                 file { "${dest}":
29                                         ensure  => $ensure,
30                                         source  => $source,
31                                         notify  => [ Exec['systemctl daemon-reload'],
32                                                      Service["${name}"],
33                                                     ]
34                                 }
35                         }
36                 }
37                 absent:  {
38                         file { "${dest}":
39                                 ensure  => $ensure,
40                                 notify  => [ Exec['systemctl daemon-reload'],
41                                              Service["${name}"],
42                                            ]
43                         }
44                         file { "${dir}":
45                                 ensure => $ensure
46                         }
47                 }
48                 default: { fail ( "Unknown ensure value: '$ensure'" ) }
49         }
50 }