Puppet Function: validate_ip_address
- Defined in:
- puppet/modules/stdlib/lib/puppet/parser/functions/validate_ip_address.rb
- Function type:
- Ruby 3.x API
Overview
Validate that all values passed are valid IP addresses, regardless they are IPv4 or IPv6 Fail compilation if any value fails this check. The following values will pass: $my_ip = “1.2.3.4” validate_ip_address($my_ip) validate_ip_address(“8.8.8.8”, “172.16.0.1”, $my_ip)
$my_ip = “3ffe:505:2” validate_ip_address(1) validate_ip_address($my_ip) validate_ip_address(“fe80::baf6:b1ff:fe19:7507”, $my_ip)
The following values will fail, causing compilation to abort: $some_array = [ 1, true, false, “garbage string”, “3ffe:505:2” ] validate_ip_address($some_array)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'puppet/modules/stdlib/lib/puppet/parser/functions/validate_ip_address.rb', line 3 newfunction(:validate_ip_address, :doc => <<-ENDHEREDOC Validate that all values passed are valid IP addresses, regardless they are IPv4 or IPv6 Fail compilation if any value fails this check. The following values will pass: $my_ip = "1.2.3.4" validate_ip_address($my_ip) validate_ip_address("8.8.8.8", "172.16.0.1", $my_ip) $my_ip = "3ffe:505:2" validate_ip_address(1) validate_ip_address($my_ip) validate_ip_address("fe80::baf6:b1ff:fe19:7507", $my_ip) The following values will fail, causing compilation to abort: $some_array = [ 1, true, false, "garbage string", "3ffe:505:2" ] validate_ip_address($some_array) ENDHEREDOC ) do |args| require "ipaddr" rescuable_exceptions = [ ArgumentError ] function_deprecation([:validate_ip_address, 'This method is deprecated, please use the stdlib validate_legacy function, with Stdlib::Compat::Ip_address. There is further documentation for validate_legacy function in the README.']) if defined?(IPAddr::InvalidAddressError) rescuable_exceptions << IPAddr::InvalidAddressError end unless args.length > 0 then raise Puppet::ParseError, ("validate_ip_address(): wrong number of arguments (#{args.length}; must be > 0)") end args.each do |arg| unless arg.is_a?(String) raise Puppet::ParseError, "#{arg.inspect} is not a string." end begin unless IPAddr.new(arg).ipv4? or IPAddr.new(arg).ipv6? raise Puppet::ParseError, "#{arg.inspect} is not a valid IP address." end rescue *rescuable_exceptions raise Puppet::ParseError, "#{arg.inspect} is not a valid IP address." end end end |