X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=facts%2Fipaddresses.rb;h=eddbe66d3ab670aeaf0b047e43225a92ce493395;hb=8ce24ebd26a39dd1ff245ab9f982d8e2bce92743;hp=a80fa6be3dc74d404018d99a11fcf7a45a832b5c;hpb=fd6b464b0da569ba84e2f260a666c257b5773f93;p=mirror%2Fdsa-puppet.git diff --git a/facts/ipaddresses.rb b/facts/ipaddresses.rb index a80fa6be3..eddbe66d3 100644 --- a/facts/ipaddresses.rb +++ b/facts/ipaddresses.rb @@ -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