117b16ea9e612c0ebfae87dbe44cb7787afbb086
[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                                 if defined(Service["${name}"]) {
29                                         $notify = [ Exec['systemctl daemon-reload'], Service["${name}"] ]
30                                 } else {
31                                         $notify = [ Exec['systemctl daemon-reload'] ]
32                                 }
33
34                                 file { "${dest}":
35                                         ensure  => $ensure,
36                                         source  => $source,
37                                         notify  => $notify,
38                                 }
39                         }
40                 }
41                 absent:  {
42                         file { "${dest}":
43                                 ensure  => $ensure,
44                                 notify  => [ Exec['systemctl daemon-reload'],
45                                              Service["${name}"],
46                                            ]
47                         }
48                         file { "${dir}":
49                                 ensure => $ensure
50                         }
51                 }
52                 default: { fail ( "Unknown ensure value: '$ensure'" ) }
53         }
54 }