require "resolv"
module Puppet::Parser::Functions
newfunction(
:name2ip,
:type => :rvalue,
:doc => "name2ip( hostname ) => ip_address"
) do |arguments|
raise(Puppet::ParseError, "name2ip(): Wrong number of arguments given (#{arguments.size} for 1)") if arguments.size < 1
name = arguments[0]
begin
return Resolv.getaddress(name)
rescue
begin
return Resolv::Hosts.new.getaddress(name)
rescue
raise(Puppet::Error, "Can't resolve host name '#{name}' to an IP address")
end
end
end
end
On Monday, 14 November 2016 23:41:29 UTC+2, Albert Shih wrote: