Merge pull request #4 from jeffmccune/ticket/master/3_anchor_resource_type

Ticket/master/3 anchor resource type

Nan +1'ed on the tech list.

Merging into master.
This commit is contained in:
Jeff McCune 2011-06-15 11:51:33 -07:00
commit c4e8bb8f97
2 changed files with 43 additions and 0 deletions

32
lib/puppet/type/anchor.rb Normal file
View file

@ -0,0 +1,32 @@
Puppet::Type.newtype(:anchor) do
desc <<-'ENDOFDESC'
A simple resource type intended to be used as an anchor in a composite class.
class ntp {
class { 'ntp::package': }
-> class { 'ntp::config': }
-> class { 'ntp::service': }
# These two resources "anchor" the composed classes
# such that the end user may use "require" and "before"
# relationships with Class['ntp']
anchor { 'ntp::begin': } -> class { 'ntp::package': }
class { 'ntp::service': } -> anchor { 'ntp::end': }
}
This resource allows all of the classes in the ntp module to be contained
within the ntp class from a dependency management point of view.
This allows the end user of the ntp module to establish require and before
relationships easily:
class { 'ntp': } -> class { 'mcollective': }
class { 'mcollective': } -> class { 'ntp': }
ENDOFDESC
newparam :name do
desc "The name of the anchor resource."
end
end

View file

@ -0,0 +1,11 @@
#!/usr/bin/env ruby
require 'puppet'
anchor = Puppet::Type.type(:anchor).new(:name => "ntp::begin")
describe anchor do
it "should stringify normally" do
anchor.to_s.should == "Anchor[ntp::begin]"
end
end