summaryrefslogtreecommitdiff
path: root/lib/facter/netmask_cidr_interface.rb
blob: d628d08cca499cd864891b7d04ff57d88e78f2ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# adds netmask facts for each interface in cidr notation
# i.e.:
# ...
# netmask_cidr_eth2 => 24
# netmask_cidr_lo => 8
# netmask_cidr_tun0 => 32
# netmask_cidr_virbr0 => 24
# ...

require 'facter/util/ip'

Facter::Util::IP.get_interfaces.each do |interface|
  netmask = Facter.value("netmask_#{interface}")
  if netmask != nil
    Facter.add("netmask_cidr_" + interface ) do
      setcode do
        cidr_netmask=IPAddr.new(netmask).to_i.to_s(2).count("1")
        cidr_netmask
      end
    end
  end
end