diff options
-rw-r--r-- | lib/facter/ipmess.rb | 43 | ||||
-rw-r--r-- | lib/facter/util/ip.rb | 40 |
2 files changed, 11 insertions, 72 deletions
diff --git a/lib/facter/ipmess.rb b/lib/facter/ipmess.rb index 215d557..ce6e420 100644 --- a/lib/facter/ipmess.rb +++ b/lib/facter/ipmess.rb @@ -15,61 +15,32 @@ Facter.add(:interfaces) do end case Facter.value(:kernel) - when 'SunOS', 'Linux' + when 'SunOS', 'Linux', 'OpenBSD', 'NetBSD', 'FreeBSD' Facter::IPAddress.get_interfaces.each do |interface| mi = interface.gsub(':', '_') Facter.add("ipaddress_" + mi) do - confine :kernel => [ :sunos, :linux ] + confine :kernel => [ :sunos, :freebsd, :openbsd, :netbsd, :linux ] setcode do label = 'ipaddress' - Facter::IPAddress.get_interface_value_nonbsd(interface, label) + Facter::IPAddress.get_interface_value(interface, label) end end Facter.add("macaddress_" + mi) do - confine :kernel => [ :sunos, :linux ] + confine :kernel => [ :sunos, :freebsd, :openbsd, :netbsd, :linux ] setcode do label = 'macaddress' - Facter::IPAddress.get_interface_value_nonbsd(interface, label) + Facter::IPAddress.get_interface_value(interface, label) end end Facter.add("netmask_" + mi) do - confine :kernel => [ :sunos, :linux ] + confine :kernel => [ :sunos, :freebsd, :openbsd, :netbsd, :linux ] setcode do label = 'netmask' - Facter::IPAddress.get_interface_value_nonbsd(interface, label) + Facter::IPAddress.get_interface_value(interface, label) end end end - - when 'OpenBSD', 'NetBSD', 'FreeBSD' - Facter::IPAddress.get_interfaces.each do |interface| - mi = interface.gsub(':', '_') - - Facter.add("ipaddress_" + mi) do - confine :kernel => [ :openbsd, :freebsd, :netbsd ] - setcode do - label = 'ipaddress' - Facter::IPAddress.get_interface_value_bsd(interface, label) - end - end - - Facter.add("netmask_" + mi) do - confine :kernel => [ :openbsd, :freebsd, :netbsd ] - setcode do - label = 'netmask' - Facter::IPAddress.get_interface_value_bsd(interface, label) - end - end - - Facter.add("macaddress_" + mi) do - confine :kernel => [ :openbsd, :freebsd, :netbsd ] - setcode do - label = 'macaddress' - Facter::IPAddress.get_interface_value_bsd(interface, label) - end - end - end end diff --git a/lib/facter/util/ip.rb b/lib/facter/util/ip.rb index 1a0c611..e0775a4 100644 --- a/lib/facter/util/ip.rb +++ b/lib/facter/util/ip.rb @@ -21,9 +21,9 @@ module Facter::IPAddress end - def self.get_interface_value_nonbsd(interface, label) + def self.get_interface_value(interface, label) - tmp1 = nil + tmp1 = [] case Facter.value(:kernel) when 'Linux' @@ -54,45 +54,13 @@ module Facter::IPAddress if interface != "lo" && interface != "lo0" output_int.each { |s| - tmp1 = $1 if s =~ regex + tmp1.push($1) if s =~ regex } end if tmp1 - value = tmp1 + value = tmp1.shift end end - - def self.get_interface_value_bsd(interface, label) - - tmp1 = [] - - int_hash = {} - output_int = %x{/sbin/ifconfig #{interface}} - addr = /inet\s+([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/ - mac = /(?:ether|lladdr)\s+(\w\w:\w\w:\w\w:\w\w:\w\w:\w\w)/ - mask = /netmask\s+(\w{10})/ - - case label - when 'ipaddress' - regex = addr - when 'macaddress' - regex = mac - when 'netmask' - regex = mask - end - - if interface != "lo" && interface != "lo0" - output_int.each { |s| - tmp1.push($1) if s =~ regex - } - end - - if tmp1 - value = tmp1.shift - end - - end end - |