Puppet Function: lsys::fqdn_rand_array
- Defined in:
-
lib/puppet/functions/lsys/fqdn_rand_array.rb
- Function type:
- Ruby 4.x API
Overview
lsys::fqdn_rand_array(Array[Any] $data, Optional[Integer] $rand_max) ⇒ Any
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/puppet/functions/lsys/fqdn_rand_array.rb', line 5
Puppet::Functions.create_function(:'lsys::fqdn_rand_array') do
dispatch :fqdn_rand_array do
param 'Array[Any]', :data
optional_param 'Integer', :rand_max
end
def rand_int(max, *args)
hostname = Facter.value(:hostname)
seed = Digest::MD5.hexdigest([hostname, max, *args].join(':')).hex
Random.new(seed).rand(max)
end
def fqdn_rand_array(data, rand_max = 2**32)
data.sort_by { |e| rand_int(rand_max, e.to_s) }
end
end
|