summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/facter/ipmess.rb43
-rw-r--r--lib/facter/util/ip.rb40
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
-