Sha256: a3e4b448671f988a59e079cf1fdf281fc6bc9c5a47c3548805268d57b588a150

Contents?: true

Size: 1.4 KB

Versions: 69

Compression:

Stored size: 1.4 KB

Contents

module PuppetSpec::Compiler
  module_function

  def compile_to_catalog(string, node = Puppet::Node.new('foonode'))
    Puppet[:code] = string
    # see lib/puppet/indirector/catalog/compiler.rb#filter
    Puppet::Parser::Compiler.compile(node).filter { |r| r.virtual? }
  end

  def compile_to_ral(manifest)
    catalog = compile_to_catalog(manifest)
    ral = catalog.to_ral
    ral.finalize
    ral
  end

  def compile_to_relationship_graph(manifest, prioritizer = Puppet::Graph::SequentialPrioritizer.new)
    ral = compile_to_ral(manifest)
    graph = Puppet::Graph::RelationshipGraph.new(prioritizer)
    graph.populate_from(ral)
    graph
  end

  def apply_compiled_manifest(manifest, prioritizer = Puppet::Graph::SequentialPrioritizer.new)
    catalog = compile_to_ral(manifest)
    if block_given?
      catalog.resources.each { |res| yield res }
    end
    transaction = Puppet::Transaction.new(catalog,
                                         Puppet::Transaction::Report.new("apply"),
                                         prioritizer)
    transaction.evaluate
    transaction.report.finalize_report

    transaction
  end

  def apply_with_error_check(manifest)
    apply_compiled_manifest(manifest) do |res|
      res.expects(:err).never
    end
  end

  def order_resources_traversed_in(relationships)
    order_seen = []
    relationships.traverse { |resource| order_seen << resource.ref }
    order_seen
  end
end

Version data entries

69 entries across 69 versions & 1 rubygems

Version Path
puppet-3.8.7 spec/lib/puppet_spec/compiler.rb
puppet-3.8.7-x86-mingw32 spec/lib/puppet_spec/compiler.rb
puppet-3.8.7-x64-mingw32 spec/lib/puppet_spec/compiler.rb
puppet-3.8.6 spec/lib/puppet_spec/compiler.rb
puppet-3.8.6-x86-mingw32 spec/lib/puppet_spec/compiler.rb
puppet-3.8.6-x64-mingw32 spec/lib/puppet_spec/compiler.rb
puppet-4.3.2 spec/lib/puppet_spec/compiler.rb
puppet-4.3.2-x86-mingw32 spec/lib/puppet_spec/compiler.rb
puppet-4.3.2-x64-mingw32 spec/lib/puppet_spec/compiler.rb
puppet-3.8.5 spec/lib/puppet_spec/compiler.rb
puppet-3.8.5-x86-mingw32 spec/lib/puppet_spec/compiler.rb
puppet-3.8.5-x64-mingw32 spec/lib/puppet_spec/compiler.rb
puppet-4.3.1 spec/lib/puppet_spec/compiler.rb
puppet-4.3.1-x86-mingw32 spec/lib/puppet_spec/compiler.rb
puppet-4.3.1-x64-mingw32 spec/lib/puppet_spec/compiler.rb
puppet-4.3.0 spec/lib/puppet_spec/compiler.rb
puppet-4.3.0-x86-mingw32 spec/lib/puppet_spec/compiler.rb
puppet-4.3.0-x64-mingw32 spec/lib/puppet_spec/compiler.rb
puppet-3.8.4 spec/lib/puppet_spec/compiler.rb
puppet-3.8.4-x86-mingw32 spec/lib/puppet_spec/compiler.rb