summaryrefslogtreecommitdiffstats
path: root/test/lib/puppettest/support/resources.rb
blob: d5bf98f91e4607b714e0aa904f66eaaf4db8d6f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env ruby
module PuppetTest::Support::Resources
  def tree_resource(name)
    Puppet::Type.type(:file).new :title => name, :path => "/tmp/#{name}", :mode => 0755
  end

  def tree_container(name)
    Puppet::Type::Component.create :name => name, :type => "yay"
  end

  def treenode(config, name, *resources)
    comp = tree_container name
    resources.each do |resource|
      resource = tree_resource(resource) if resource.is_a?(String)
      config.add_edge(comp, resource)
      config.add_resource resource unless config.resource(resource.ref)
    end
    comp
  end

  def mktree
    catalog = Puppet::Resource::Catalog.new do |config|
      one = treenode(config, "one", "a", "b")
      two = treenode(config, "two", "c", "d")
      middle = treenode(config, "middle", "e", "f", two)
      top = treenode(config, "top", "g", "h", middle, one)
    end

    catalog
  end
end