Puppet Function: mesos_hash_parser

Defined in:
lib/puppet/parser/functions/mesos_hash_parser.rb
Function type:
Ruby 3.x API

Overview

mesos_hash_parser()Any

This function converts simple key-value structure to a Hash that is required by create_resources function

Returns:

  • (Any)


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
# File 'lib/puppet/parser/functions/mesos_hash_parser.rb', line 6

newfunction(:mesos_hash_parser, type: :rvalue, doc: <<-EOS
This function converts simple key-value structure to a Hash
that is required by create_resources function

EOS
) do |args|

  # Arguments: hash key_prefix [file_prefix]

  if args.empty? || args.size > 3
    raise(Puppet::ParseError, "mesos_hash_parser(): Wrong number of args, given #{args.size}, accepts either 1, 2 or 3")
  end

  if args[0].class != Hash
    raise(Puppet::ParseError, 'mesos_hash_parser(): first argument must be a Hash, you passed a ' + args[0].class.to_s)
  end

  res = {}
  key_prefix = args[1] if args.size >= 2
  file_prefix = args[2] if args.size == 3
  args[0].each do |key, val|
    file = file_prefix ? "#{file_prefix}_#{key}" : key
    key = "#{key_prefix}_#{key}" if key_prefix
    res[key] = {
      'value' => val,
      'file' => file
    }
  end
  res
end