]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - facts/ipaddresses.rb
lebrun gets restricted carnet/kibi only rules
[dsa-puppet.git] / facts / ipaddresses.rb
index 17dbd84aeb5f349001524fc1fdf28e2d50f27033..eddbe66d3ab670aeaf0b047e43225a92ce493395 100644 (file)
@@ -1,26 +1,34 @@
 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(",")