Remove re-statement of default mode, owner, and group
[mirror/dsa-puppet.git] / modules / rsync / manifests / site.pp
index 8035dd4..c1e15c2 100644 (file)
@@ -3,7 +3,7 @@ define rsync::site (
        $source=undef,
        $content=undef,
        $max_clients=200,
-       $ensure=present,
+       Enum['present','absent'] $ensure = 'present',
        $sslname=undef,
 ) {
        include rsync
@@ -11,11 +11,6 @@ define rsync::site (
        $fname_real_rsync = "/etc/rsyncd-${name}.conf"
        $fname_real_stunnel = "/etc/rsyncd-${name}-stunnel.conf"
 
-       case $ensure {
-               present,absent: {}
-               default: { fail ( "Invald ensure `${ensure}' for ${name}" ) }
-       }
-
        $ensure_service = $ensure ? {
                present => running,
                absent  => stopped,
@@ -30,60 +25,62 @@ define rsync::site (
                ensure  => $ensure,
                content => $content,
                source  => $source,
-               owner   => 'root',
-               group   => 'root',
-               mode    => '0444',
        }
 
-       file { "/etc/systemd/system/rsyncd-${name}@.service":
+       $service_file = "/etc/systemd/system/rsyncd-${name}@.service"
+       $socket_file = "/etc/systemd/system/rsyncd-${name}.socket"
+       $systemd_service = "rsyncd-${name}.socket"
+
+       # if we enable the service, we want the files before the service.
+       # if we remove the service, we want the service disabled before the files
+       # go away.
+       $service_subscribe = $ensure ? {
+               present => [
+                       File[$service_file],
+                       File[$socket_file],
+               ],
+               default => [],
+       }
+       $service_before = $ensure ? {
+               present => [],
+               default => [
+                       File[$service_file],
+                       File[$socket_file],
+               ],
+       }
+
+       file { $service_file:
                ensure  => $ensure,
                content => template('rsync/systemd-rsyncd.service.erb'),
-               owner   => 'root',
-               group   => 'root',
-               mode    => '0444',
                require => File[$fname_real_rsync],
                notify  => Exec['systemctl daemon-reload'],
        }
 
-       file { "/etc/systemd/system/rsyncd-${name}.socket":
+       file { $socket_file:
                ensure  => $ensure,
                content => template('rsync/systemd-rsyncd.socket.erb'),
-               owner   => 'root',
-               group   => 'root',
-               mode    => '0444',
-               notify  => [
-                       Exec['systemctl daemon-reload'],
-                       Service["rsyncd-${name}.socket"],
-               ],
+               notify  => Exec['systemctl daemon-reload'],
        }
 
-       service { "rsyncd-${name}.socket":
+       service { $systemd_service:
                ensure   => $ensure_service,
                enable   => $ensure_enable,
-               require  => [
-                       Exec['systemctl daemon-reload'],
-                       File["/etc/systemd/system/rsyncd-${name}@.service"],
-                       File["/etc/systemd/system/rsyncd-${name}.socket"],
-               ],
+               notify   => Exec['systemctl daemon-reload'],
                provider => systemd,
+               before    => $service_before,
+               subscribe => $service_subscribe,
        }
 
        if $sslname {
                file { $fname_real_stunnel:
                        ensure  => $ensure,
                        content => template('rsync/systemd-rsyncd-stunnel.conf.erb'),
-                       owner   => 'root',
-                       group   => 'root',
-                       mode    => '0444',
                        require => File["/etc/ssl/debian/certs/${sslname}.crt-chained"],
                }
 
                file { "/etc/systemd/system/rsyncd-${name}-stunnel@.service":
                        ensure  => $ensure,
                        content => template('rsync/systemd-rsyncd-stunnel.service.erb'),
-                       owner   => 'root',
-                       group   => 'root',
-                       mode    => '0444',
                        require => File[$fname_real_stunnel],
                        notify  => Exec['systemctl daemon-reload'],
                }
@@ -91,9 +88,6 @@ define rsync::site (
                file { "/etc/systemd/system/rsyncd-${name}-stunnel.socket":
                        ensure  => $ensure,
                        content => template('rsync/systemd-rsyncd-stunnel.socket.erb'),
-                       owner   => 'root',
-                       group   => 'root',
-                       mode    => '0444',
                        notify  => [
                                Exec['systemctl daemon-reload'],
                                Service["rsyncd-${name}-stunnel.socket"]