Sha256: 8e3ddb35f783efbe4ca101fac7db705a8abb59d4eee8873a08eaf1e1524d4f2d

Contents?: true

Size: 1.18 KB

Versions: 19

Compression:

Stored size: 1.18 KB

Contents

# frozen_string_literal: true

require 'bolt/error'

# Evaluates all `_plugin` references in a hash and returns the resolved reference data.
Puppet::Functions.create_function(:resolve_references) do
  # Resolve references.
  # @param references A hash of reference data to resolve.
  # @return A hash of resolved reference data.
  # @example Resolve a hash of reference data
  #   $references = {
  #     "targets" => [
  #       "_plugin" => "terraform",
  #       "dir" => "path/to/terraform/project",
  #       "resource_type" => "aws_instance.web",
  #       "uri" => "public_ip"
  #     ]
  #   }
  #
  #   resolve_references($references)
  dispatch :resolve_references do
    param 'Data', :references
    return_type 'Data'
  end

  def resolve_references(references)
    unless Puppet[:tasks]
      raise Puppet::ParseErrorWithIssue
        .from_issue_and_stack(
          Bolt::PAL::Issues::PLAN_OPERATION_NOT_SUPPORTED_WHEN_COMPILING,
          action: 'resolve_references'
        )
    end

    executor = Puppet.lookup(:bolt_executor)
    executor.report_function_call(self.class.name)

    plugins = Puppet.lookup(:bolt_inventory).plugins
    plugins.resolve_references(references)
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
bolt-2.15.0 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb
bolt-2.14.0 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb
bolt-2.13.0 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb
bolt-2.12.0 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb
bolt-2.11.1 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb
bolt-2.11.0 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb
bolt-2.10.0 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb
bolt-2.9.0 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb
bolt-2.8.0 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb
bolt-2.7.0 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb
bolt-2.6.0 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb
bolt-2.5.0 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb
bolt-2.4.0 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb
bolt-2.3.1 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb
bolt-2.3.0 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb
bolt-2.2.0 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb
bolt-2.1.0 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb
bolt-2.0.1 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb
bolt-2.0.0 bolt-modules/boltlib/lib/puppet/functions/resolve_references.rb