From: Peter Palfrader Date: Fri, 11 Oct 2019 09:13:41 +0000 (+0200) Subject: Fix dependency loop in mirror_health when a service is set to absent: the file need... X-Git-Url: https://git.adam-barratt.org.uk/?p=mirror%2Fdsa-puppet.git;a=commitdiff_plain;h=dadd310402bb0fe101164395dcb22deb064b35a1 Fix dependency loop in mirror_health when a service is set to absent: the file need not notify the service as the service subscribes to the file if enable is present --- diff --git a/modules/mirror_health/manifests/service.pp b/modules/mirror_health/manifests/service.pp index fced5182c..24c6d0da7 100644 --- a/modules/mirror_health/manifests/service.pp +++ b/modules/mirror_health/manifests/service.pp @@ -28,11 +28,11 @@ define mirror_health::service ( $service_file = "/etc/systemd/system/mirror-health-${check_service}.service" - file { $service_file: - content => template('mirror_health/mirror-health.service.erb'), - notify => [Exec['systemctl daemon-reload'], Service["mirror-health-${check_service}"]], - } + # if we enable the service, we want the files before the service, so we + # subscribe the service to the files. + # if we remove the service, we want the service disabled before the files + # go away, so we say the service needs the files to be handled before. $service_before = $ensure ? { present => [], default => [ File[$service_file], ], @@ -41,7 +41,6 @@ define mirror_health::service ( present => [ File[$service_file], ], default => [], } - $ensure_service = $ensure ? { present => running, absent => stopped, @@ -50,14 +49,21 @@ define mirror_health::service ( present => true, absent => false, } + + file { $service_file: + ensure => $ensure, + content => template('mirror_health/mirror-health.service.erb'), + notify => Exec['systemctl daemon-reload'], + } service { "mirror-health-${check_service}": ensure => $ensure_service, enable => $ensure_enable, - require => Exec['systemctl daemon-reload'], + notify => Exec['systemctl daemon-reload'], before => $service_before, subscribe => $service_subscribe + [ File[ $mirror_health::script ] ], } + $hosts_file = "${mirror_health::confdir}/${check_service}.hosts" $tag = "mirror_health::service::${check_service}::hosts" concat { $hosts_file: