-@def $HOST_DB_V6 = (<%=
- dbs = []
- scope.lookupvar('site::localinfo').keys.sort.each do |node|
- if scope.lookupvar('site::localinfo')[node]['dbmaster']
- scope.lookupvar('site::allnodeinfo')[node]['ipHostNumber'].each do |ip|
- next if ip =~ /\./
- dbs << ip
- end
- end
- end
-
- dbs.join(' ')
-%>);
-
-@def $HOST_DB_V4 = (<%=
- dbs = []
- scope.lookupvar('site::localinfo').keys.sort.each do |node|
- if scope.lookupvar('site::localinfo')[node]['dbmaster']
- scope.lookupvar('site::allnodeinfo')[node]['ipHostNumber'].each do |ip|
- next if ip =~ /:/
- dbs << ip
- end
- end
- end
-
- dbs.join(' ')
-%>);
-
-@def $HOST_DB = ($HOST_DB_V4 $HOST_DB_V6);
-
-@def $HOST_DEBIAN_V4 = (<%=
- dbs = []
- scope.lookupvar('site::allnodeinfo').keys.sort.each do |node|
- next unless scope.lookupvar('site::allnodeinfo')[node].has_key?('ipHostNumber')
- scope.lookupvar('site::allnodeinfo')[node]['ipHostNumber'].each do |ip|
- next if ip =~ /:/
- dbs << ip
- end
- end
-
- dbs.join(' ')
-%>);
-
-@def $HOST_DEBIAN_V6 = (<%=
- dbs = []
- scope.lookupvar('site::allnodeinfo').keys.sort.each do |node|
- next unless scope.lookupvar('site::allnodeinfo')[node].has_key?('ipHostNumber')
- scope.lookupvar('site::allnodeinfo')[node]['ipHostNumber'].each do |ip|
- next if ip =~ /\./
- dbs << ip
- end
- end
-
- dbs.join(' ')
-%>);
-
-# FIXME XXX we should get these from other information, and reconsider the places where we use them in destination matching rules
-@def $HOST_GANETI_V4 = (206.12.19.213/32 206.12.19.217/32 206.12.19.212/32 206.12.19.216/32);
-@def $HOST_GANETI_BACKEND_V4 = (192.168.2.213/32 192.168.2.217/32 192.168.2.212/32 192.168.2.216/32);
-@def $HOST_GANETI_MANDA_V4 = (82.195.75.103/32 82.195.75.109/32)
-@def $HOST_GANETI_MANDA_BACKEND_V4 = (192.168.75.103/32 192.168.75.109/32)
-
-
+@def $HOST_DB_V4 = (<%= scope.function_filter_ipv4([rolehost['dbmaster']]).uniq.join(' ') %>);
+@def $HOST_DB_V6 = (<%= scope.function_filter_ipv6([rolehost['dbmaster']]).uniq.join(' ') %>);
+@def $HOST_DB = ( $HOST_DB_V4 $HOST_DB_V6 );
+
+@def $HOST_PGBACKUPHOST_V4 = (<%= scope.function_filter_ipv4([rolehost['postgres_backup_server']]).uniq.join(' ') %>);
+@def $HOST_PGBACKUPHOST_V6 = (<%= scope.function_filter_ipv6([rolehost['postgres_backup_server']]).uniq.join(' ') %>);
+@def $HOST_PGBACKUPHOST = ( $HOST_PGBACKUPHOST_V4 $HOST_PGBACKUPHOST_V6 );
+
+@def $HOST_STATICMASTER_V4 = (<%= scope.function_filter_ipv4([rolehost['static_master']]).uniq.join(' ') %>);
+@def $HOST_STATICMASTER_V6 = (<%= scope.function_filter_ipv6([rolehost['static_master']]).uniq.join(' ') %>);
+@def $HOST_STATIC_V4 = (<%= scope.function_filter_ipv4([rolehost['static_mirror'] + rolehost['static_source'] + rolehost['static_master']]).uniq.join(' ') %>);
+@def $HOST_STATIC_V6 = (<%= scope.function_filter_ipv6([rolehost['static_mirror'] + rolehost['static_source'] + rolehost['static_master']]).uniq.join(' ') %>);
+
+@def $HOST_DNS_GEO_V4 = (<%= scope.function_filter_ipv4([rolehost['dns_geo']]).uniq.join(' ') %>);
+@def $HOST_DNS_GEO_V6 = (<%= scope.function_filter_ipv6([rolehost['dns_geo']]).uniq.join(' ') %>);
+@def $HOST_EASYDNS_V4 = (64.68.200.91);
+@def $HOST_RCODE0_V4 = (83.136.34.0/27);
+@def $HOST_RCODE0_V6 = (2A02:850:8::/47);
+@def $HOST_NETNOD_V4 = (192.71.80.0/24 192.36.144.222 192.36.144.218);
+
+<%
+def getfastlyranges()
+ begin
+ data = YAML.safe_load(File.open("/srv/puppet.debian.org/puppet-facts/fastly_ranges.yaml").read)
+ return data['addresses']
+ rescue
+ return []
+ end
+end
+%>
+@def $HOST_FASTLY = (<%= getfastlyranges().join(' ') %>);
+
+@def $HOST_DEBIAN_V4 = (<%= scope.function_filter_ipv4([dbs]).uniq.join(' ') %>);
+@def $HOST_DEBIAN_V6 = (<%= scope.function_filter_ipv6([dbs]).uniq.join(' ') %>);