rsync::site cleanup: try to fix ordering when we remove a service
authorPeter Palfrader <peter@palfrader.org>
Tue, 10 Sep 2019 07:37:56 +0000 (09:37 +0200)
committerPeter Palfrader <peter@palfrader.org>
Tue, 10 Sep 2019 07:38:10 +0000 (09:38 +0200)
modules/rsync/manifests/site.pp

index d294139..96b1ef2 100644 (file)
@@ -34,6 +34,24 @@ define rsync::site (
        $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'),
@@ -57,11 +75,9 @@ define rsync::site (
                ensure   => $ensure_service,
                enable   => $ensure_enable,
                notify   => Exec['systemctl daemon-reload'],
-               subscribe => [
-                       File[$service_file],
-                       File[$socket_file],
-               ],
                provider => systemd,
+               before    => $service_before,
+               subscribe => $service_subscribe,
        }
 
        if $sslname {