make spohr recursor
[mirror/dsa-puppet.git] / facts / ipaddresses.rb
index a80fa6b..eddbe66 100644 (file)
@@ -1,30 +1,42 @@
 Facter.add("v4ips") do
         confine :kernel => :linux
         addrs = []
-        %x{ip addr list}.each do |line|
-                next unless line =~ /\s+inet/
-                next if line =~ /scope (link|host)/
-                if line =~ /\s+inet\s+(\S+)\/\d\d .*/
-                        addrs << $1
+        if FileTest.exist?("/bin/ip")
+                %x{ip addr list}.each do |line|
+                        next unless line =~ /\s+inet/
+                        next if line =~ /scope (link|host)/
+                        if line =~ /\s+inet\s+(\S+)\/\d{1,2} .*/
+                                addrs << $1
+                        end
                 end
         end
+        ret = addrs.join(",")
+        if ret.empty?
+          ret = 'no'
+        end
         setcode do
-                addrs.join(",")
+          ret
         end
 end
 
 Facter.add("v6ips") do
         confine :kernel => :linux
         addrs = []
-        %x{ip addr list}.each do |line|
-                next unless line =~ /\s+inet/
-                next if line =~ /scope (link|host)/
-                if line =~ /\s+inet6\s+(\S+)\/\d\d .*/
-                        addrs << $1
+        if FileTest.exist?("/bin/ip")
+                %x{ip addr list}.each do |line|
+                        next unless line =~ /\s+inet/
+                        next if line =~ /scope (link|host)/
+                        if line =~ /\s+inet6\s+(\S+)\/\d{1,3} .*/
+                                addrs << $1
+                        end
                 end
         end
+        ret = addrs.join(",")
+        if ret.empty?
+          ret = 'no'
+        end
         setcode do
-                addrs.join(",")
+          ret
         end
 end