Puppet Function: ipv6_normalize_dnsmasq_ip_subnets
- Defined in:
-
lib/puppet/functions/ipv6_normalize_dnsmasq_ip_subnets.rb
- Function type:
- Ruby 4.x API
Overview
ipv6_normalize_dnsmasq_ip_subnets(Any $args) ⇒ Any
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/puppet/functions/ipv6_normalize_dnsmasq_ip_subnets.rb', line 1
Puppet::Functions.create_function(:ipv6_normalize_dnsmasq_ip_subnets) do
def ipv6_normalize_dnsmasq_ip_subnets(args)
require 'ipaddr'
result = []
args.each do |ip_subnet|
ip_subnet_dup = ip_subnet.dup
begin
if ip_subnet["netmask"]
if IPAddr.new(ip_subnet["netmask"]).ipv6?
prefix = IPAddr.new(ip_subnet["netmask"]).to_i.to_s(2).count("1")
Puppet.debug("Netmask #{ip_subnet["netmask"]} changed to prefix #{prefix}")
ip_subnet_dup["netmask"] = prefix
end
end
rescue IPAddr::AddressFamilyError, IPAddr::Error, IPAddr::InvalidAddressError, IPAddr::InvalidPrefixError => e
end
begin
if ip_subnet["gateway"]
if IPAddr.new(ip_subnet["gateway"]).ipv6?
ip_subnet_dup.delete("gateway")
end
end
rescue IPAddr::AddressFamilyError, IPAddr::Error, IPAddr::InvalidAddressError, IPAddr::InvalidPrefixError => e
end
result << ip_subnet_dup
end
return result
end
end
|