]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/stdlib/spec/lib/puppet_spec/compiler.rb
upgrade to stdlib 4.6.1
[dsa-puppet.git] / 3rdparty / modules / stdlib / spec / lib / puppet_spec / compiler.rb
1 #! /usr/bin/env ruby -S rspec
2 module PuppetSpec::Compiler
3   def compile_to_catalog(string, node = Puppet::Node.new('foonode'))
4     Puppet[:code] = string
5     Puppet::Parser::Compiler.compile(node)
6   end
7
8   def compile_to_ral(manifest)
9     catalog = compile_to_catalog(manifest)
10     ral = catalog.to_ral
11     ral.finalize
12     ral
13   end
14
15   def compile_to_relationship_graph(manifest, prioritizer = Puppet::Graph::SequentialPrioritizer.new)
16     ral = compile_to_ral(manifest)
17     graph = Puppet::Graph::RelationshipGraph.new(prioritizer)
18     graph.populate_from(ral)
19     graph
20   end
21
22   if Puppet.version.to_f >= 3.3
23     def apply_compiled_manifest(manifest, prioritizer = Puppet::Graph::SequentialPrioritizer.new)
24       transaction = Puppet::Transaction.new(compile_to_ral(manifest),
25                                           Puppet::Transaction::Report.new("apply"),
26                                           prioritizer)
27       transaction.evaluate
28       transaction.report.finalize_report
29
30       transaction
31     end
32   else
33     def apply_compiled_manifest(manifest)
34       transaction = Puppet::Transaction.new(compile_to_ral(manifest), Puppet::Transaction::Report.new("apply"))
35       transaction.evaluate
36       transaction.report.finalize_report
37
38       transaction
39     end
40   end
41
42   def order_resources_traversed_in(relationships)
43     order_seen = []
44     relationships.traverse { |resource| order_seen << resource.ref }
45     order_seen
46   end
47 end