Sha256: fc40085e14d291b2b81b385c3d72fbdb6e9c6dea07cb313a30f9b3eb8bb12622

Contents?: true

Size: 1.64 KB

Versions: 28

Compression:

Stored size: 1.64 KB

Contents

# frozen_string_literal: true

require_relative '../../puppet/loaders'
require_relative '../../puppet/pops'

# A Catalog "compiler" that is like the regular compiler but with an API
# that is harmonized with the ScriptCompiler
#
# The Script compiler is "one shot" - it does not support rechecking if underlying source has changed or
# deal with possible errors in a cached environment.
#
class Puppet::Parser::CatalogCompiler < Puppet::Parser::Compiler
  # Evaluates the configured setup for a script + code in an environment with modules
  #
  def compile
    Puppet[:strict_variables] = true
    Puppet[:strict] = :error

    Puppet.override(rich_data: true) do
      super
    end
  rescue Puppet::ParseErrorWithIssue => detail
    detail.node = node.name
    Puppet.log_exception(detail)
    raise
  rescue => detail
    message = "#{detail} on node #{node.name}"
    Puppet.log_exception(detail, message)
    raise Puppet::Error, message, detail.backtrace
  end

  # Evaluates all added constructs, and validates the resulting catalog.
  # This can be called whenever a series of evaluation of puppet code strings
  # have reached a stable state (essentially that there are no relationships to
  # non-existing resources).
  #
  # Raises an error if validation fails.
  #
  def compile_additions
    evaluate_additions
    validate
  end

  # Evaluates added constructs that are lazily evaluated until all of them have been evaluated.
  #
  def evaluate_additions
    evaluate_generators
    finish
  end

  # Validates the current state of the catalog.
  # Does not cause evaluation of lazy constructs.
  def validate
    validate_catalog(CatalogValidator::FINAL)
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
puppet-8.10.0 lib/puppet/parser/catalog_compiler.rb
puppet-8.10.0-x86-mingw32 lib/puppet/parser/catalog_compiler.rb
puppet-8.10.0-x64-mingw32 lib/puppet/parser/catalog_compiler.rb
puppet-8.10.0-universal-darwin lib/puppet/parser/catalog_compiler.rb
puppet-8.9.0 lib/puppet/parser/catalog_compiler.rb
puppet-8.9.0-x86-mingw32 lib/puppet/parser/catalog_compiler.rb
puppet-8.9.0-x64-mingw32 lib/puppet/parser/catalog_compiler.rb
puppet-8.9.0-universal-darwin lib/puppet/parser/catalog_compiler.rb
puppet-8.8.1 lib/puppet/parser/catalog_compiler.rb
puppet-8.8.1-x86-mingw32 lib/puppet/parser/catalog_compiler.rb
puppet-8.8.1-x64-mingw32 lib/puppet/parser/catalog_compiler.rb
puppet-8.8.1-universal-darwin lib/puppet/parser/catalog_compiler.rb
puppet-8.7.0 lib/puppet/parser/catalog_compiler.rb
puppet-8.7.0-x86-mingw32 lib/puppet/parser/catalog_compiler.rb
puppet-8.7.0-x64-mingw32 lib/puppet/parser/catalog_compiler.rb
puppet-8.7.0-universal-darwin lib/puppet/parser/catalog_compiler.rb
puppet-8.6.0 lib/puppet/parser/catalog_compiler.rb
puppet-8.6.0-x86-mingw32 lib/puppet/parser/catalog_compiler.rb
puppet-8.6.0-x64-mingw32 lib/puppet/parser/catalog_compiler.rb
puppet-8.6.0-universal-darwin lib/puppet/parser/catalog_compiler.rb