mirror_health: this_host_service_name is now optional
authorPeter Palfrader <peter@palfrader.org>
Sun, 22 Sep 2019 13:56:45 +0000 (15:56 +0200)
committerPeter Palfrader <peter@palfrader.org>
Sun, 22 Sep 2019 13:56:45 +0000 (15:56 +0200)
modules/mirror_health/manifests/service.pp
modules/roles/manifests/debug_mirror.pp

index f0df429..fced518 100644 (file)
@@ -1,10 +1,25 @@
-# base class for Debian's mirror-health checker
+# service instance for Debian's mirror-health checker
+#
+# for each defined service, a daemon will regularly check if the
+# local version of <url> matches the majority version among the
+# set of all hosts that define a <service_name>.
+#
+# the result of this check is then exposed via <health_url>
+#
 # @param url URL to check for freshness on each host (normally a Release file)
 # @param health_url URL to the health marker
+# @param this_host_service_name this host's service name for this service.
+#                               Other nodes will connect to this hostname to
+#                               fetch url for checking.
+#                               If this is undef, other hosts will not
+#                               check this host.
+# @param check_service name of this service
+# @param check_interval how often to check
+# @param ensure  present or absent
 define mirror_health::service (
   String $url,
   String $health_url,
-  String $this_host_service_name = $::fqdn,
+  Optional[String] $this_host_service_name = undef,
   String $check_service = $name,
   Integer $check_interval = 60,
   Enum['present','absent'] $ensure = 'present',
@@ -51,10 +66,12 @@ define mirror_health::service (
     mode           => '0444',
     notify         => Service["mirror-health-${check_service}"],
   }
-  @@concat::fragment { "mirror_health::service::${check_service}::hosts::${this_host_service_name}":
-    tag     => $tag,
-    target  => $hosts_file,
-    content => $this_host_service_name,
+  if $this_host_service_name and $ensure == 'present' {
+    @@concat::fragment { "mirror_health::service::${check_service}::hosts::${this_host_service_name}":
+      tag     => $tag,
+      target  => $hosts_file,
+      content => $this_host_service_name,
+    }
   }
   Concat::Fragment <<| tag == $tag |>>
 }
index d618b49..8f1407d 100644 (file)
@@ -43,12 +43,7 @@ class roles::debug_mirror(
 
   Ferm::Rule::Simple <<| tag == 'ssh::server::from::ftp_master' |>>
 
-  $healthcheck_ensure = $healthcheck_name == undef ? {
-    true    => 'absent',
-    default => 'present',
-  }
   mirror_health::service { 'debug':
-    ensure                 => $healthcheck_ensure,
     this_host_service_name => $healthcheck_name,
     url                    => 'http://debug.backend.mirrors.debian.org/debian-debug/dists/sid-debug/Release',
     health_url             => 'http://debug.backend.mirrors.debian.org/_health',