summaryrefslogtreecommitdiffstats
path: root/lib/puppet/parser/functions/fqdn_rand.rb
blob: 3b1df6d95897ad500baa69c62d21ea926d8e2454 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
Puppet::Parser::Functions::newfunction(:fqdn_rand, :type => :rvalue, :doc =>
  "Generates random numbers based on the node's fqdn. Generated random values
  will be a range from 0 up to and excluding n, where n is the first parameter.
  The second argument specifies a number to add to the seed and is optional, for example:

      $random_number = fqdn_rand(30)
      $random_number_seed = fqdn_rand(30,30)") do |args|
    require 'digest/md5'
    max = args.shift.to_i
    srand(Digest::MD5.hexdigest([self['::fqdn'],args].join(':')).hex)
    rand(max).to_s
end