Move ipv[46] check into the manifest
authorPeter Palfrader <peter@palfrader.org>
Tue, 24 Sep 2019 22:00:29 +0000 (00:00 +0200)
committerPeter Palfrader <peter@palfrader.org>
Tue, 24 Sep 2019 22:00:29 +0000 (00:00 +0200)
modules/bacula/manifests/storage.pp
modules/bacula/templates/bacula-sd.conf.erb

index 4ed5992..2b8ed3f 100644 (file)
@@ -6,6 +6,8 @@
 # @param port_sd          port for the sd to listen on
 # @param storage_name     bacula name of this sd instance
 # @param storage_address  address of this sd instance that other instances should connect to (dns name)
+# @param has_ipv4         SD should listen on ipv4
+# @param has_ipv6         SD should listen on ipv6
 class bacula::storage (
   String $backup_path     = '/srv/bacula',
   String $filestor_device = 'FileStorage',
@@ -13,6 +15,8 @@ class bacula::storage (
   Integer $port_sd        = 9103,
   String $storage_name    = "${::fqdn}-sd",
   Stdlib::Host $storage_address = $::fqdn,
+  Boolean $has_ipv4        = $bacula::public_addresses.any |$addr| { $addr =~ Stdlib::IP::Address::V4 },
+  Boolean $has_ipv6        = $bacula::public_addresses.any |$addr| { $addr =~ Stdlib::IP::Address::V6 },
 ) inherits bacula {
   $storage_secret = hkdf('/etc/puppet/secret', "bacula-sd-${::fqdn}")
 
index c152039..0a0ef79 100644 (file)
@@ -10,7 +10,7 @@ Storage {
     # bacula, on Debian 9 (stretch), does not resolve a single name
     # to both v4 and v6 addresses.  Se we can't just say
     # ip = { addr = <hostname> }.  Boo.
-    <%- if scope.lookupvar('deprecated::nodeinfo')['misc']['has_v4_ldap'] -%>
+    <%- if @has_ipv4 -%>
     ipv4 = {
       # use the hostname rather than the IP address from LDAP,
       # as /etc/hosts might have a better answer in case of natted hosts.
@@ -18,7 +18,7 @@ Storage {
       port = <%= @port_sd %>
     }
     <%- end -%>
-    <%- if scope.lookupvar('deprecated::nodeinfo')['misc']['has_v6_ldap'] -%>
+    <%- if @has_ipv6 -%>
     ipv6 = {
       addr = <%= @storage_address %>
       port = <%= @port_sd %>