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