Sha256: e93571275b1a7daf4e190ae32f5653559a3c58571858fbe12c36fc3d8ec658da
Contents?: true
Size: 1.61 KB
Versions: 120
Compression:
Stored size: 1.61 KB
Contents
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
120 entries across 120 versions & 1 rubygems