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:
commit
c4e8bb8f97
2 changed files with 43 additions and 0 deletions
32
lib/puppet/type/anchor.rb
Normal file
32
lib/puppet/type/anchor.rb
Normal 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
|
11
spec/unit/puppet/type/anchor_spec.rb
Normal file
11
spec/unit/puppet/type/anchor_spec.rb
Normal 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
|
Loading…
Reference in a new issue