define dsa_systemd::override ( $source=undef, $content=undef, $ensure=present ) { $dir = "/etc/systemd/system/${name}.service.d" $dest = "${dir}/override.conf" case $ensure { present: { if ! ($source or $content) { fail ( "No configuration found for ${name}" ) } file { "${dir}": ensure => directory, mode => '0755' } if $content { file { "${dest}": ensure => $ensure, content => $content, notify => [ Exec['systemctl daemon-reload'], Service["${name}"], ] } } elsif $source { file { "${dest}": ensure => $ensure, source => $source, notify => [ Exec['systemctl daemon-reload'], Service["${name}"], ] } } } absent: { if defined(Service["${name}"]) { $notify = [ Exec['systemctl daemon-reload'], Service["${name}"] ] } else { $notify = [ Exec['systemctl daemon-reload'] ] } file { "${dest}": ensure => $ensure, notify => $notify, } file { "${dir}": ensure => $ensure } } default: { fail ( "Unknown ensure value: '$ensure'" ) } } }