dd721038a84d89dfcb8061ef1dce62e700594610
[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                                 }
25                         } elsif $source {
26                                 file { "${dest}":
27                                         ensure  => $ensure,
28                                         source  => $source,
29                                         notify  => Exec['systemctl daemon-reload'],
30                                 }
31                         }
32                 }
33                 absent:  {
34                         file { "${dest}":
35                                 ensure  => $ensure,
36                                 notify  => Exec['systemctl daemon-reload'],
37                         }
38                         file { "${dir}":
39                                 ensure => $ensure
40                         }
41                 }
42                 default: { fail ( "Unknown ensure value: '$ensure'" ) }
43         }
44 }