dsa_systemd::override: cleanup and make sure removal cleans the dir also
[mirror/dsa-puppet.git] / modules / dsa_systemd / manifests / override.pp
1 # declare a systemd service override
2 # @param content  content of systemd override file
3 # @param source   source of systemd override file content
4 # @param ensure   present or avsent
5 define dsa_systemd::override (
6   Optional[String] $source = undef,
7   Optional[String] $content = undef,
8   Enum['present','absent'] $ensure = 'present',
9 ) {
10   $dir = "/etc/systemd/system/${name}.service.d"
11   $dest = "${dir}/override.conf"
12
13
14   if defined(Service[$name]) {
15     $notify = [ Exec['systemctl daemon-reload'], Service[$name] ]
16   } else {
17     $notify = [ Exec['systemctl daemon-reload'] ]
18   }
19
20   $directory_ensure = $ensure ? { 'present' => 'directory', 'absent' => 'absent' }
21   file { $dir:
22     ensure => $directory_ensure,
23     mode   => '0755',
24     force  => true,
25   }
26   file { $dest:
27     ensure  => $ensure,
28     source  => $source,
29     content => $content,
30     notify  => $notify,
31   }
32 }