21 lines
393 B
Ruby
21 lines
393 B
Ruby
|
|
require 'resolv'
|
|
require 'ipaddr'
|
|
|
|
|
|
module Puppet::Parser::Functions
|
|
newfunction(:force_ip, :type => :rvalue) do |args|
|
|
if args.size < 1
|
|
raise(
|
|
Puppet::ParseError,
|
|
"force_ip(): Wrong number of arguments given (#{args.size} for 1)"
|
|
)
|
|
end
|
|
if (!!IPAddr.new(args[0]) rescue false)
|
|
args[0]
|
|
else
|
|
Resolv.getaddress args[0]
|
|
end
|
|
end
|
|
end
|