Puppet Function: foreman::to_symbolized_yaml

Defined in:
lib/puppet/functions/foreman/to_symbolized_yaml.rb
Function type:
Ruby 4.x API

Overview

foreman::to_symbolized_yaml(Any $data, Optional[Hash] $options)Variant[String, Sensitive[String]]

}

Parameters:

  • data (Any)
  • options (Optional[Hash])

Returns:

  • (Variant[String, Sensitive[String]])


23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/puppet/functions/foreman/to_symbolized_yaml.rb', line 23

Puppet::Functions.create_function(:'foreman::to_symbolized_yaml') do
  # @param data
  # @param options
  #
  # @return [Variant[String, Sensitive[String]]]
  dispatch :to_symbolized_yaml do
    param 'Any', :data
    optional_param 'Hash', :options
  end

  def to_symbolized_yaml(data, options = {})
    return_sensitive = false
    if data.respond_to?(:unwrap)
      data = data.unwrap
      return_sensitive = true
    end
    if data.is_a?(Hash)
      data = data.map do |k, v|
        if v.respond_to?(:unwrap)
          v = v.unwrap
          return_sensitive = true
        end
        [k.to_sym, v]
      end.to_h
    end

    if return_sensitive
      Puppet::Pops::Types::PSensitiveType::Sensitive.new(data.to_yaml(options))
    else
      data.to_yaml(options)
    end
  end
end