diff options
author | Jeff McCune <jeff@puppetlabs.com> | 2011-12-30 10:46:57 -0800 |
---|---|---|
committer | Jeff McCune <jeff@puppetlabs.com> | 2011-12-30 10:46:57 -0800 |
commit | 7aeeae3721f105d99a5cdd2e8110315791fd40bd (patch) | |
tree | 679b54fc45b775f0fdc705b28e4a5f1f923f803c /lib/puppet/type/anchor.rb | |
parent | aa9948bfb32c4d88a04f24586224b628b5be0c8d (diff) | |
parent | bdba42dbb6328ccc5bb13f0777240fdb85e538ca (diff) | |
download | puppet-stdlib-7aeeae3721f105d99a5cdd2e8110315791fd40bd.tar.gz puppet-stdlib-7aeeae3721f105d99a5cdd2e8110315791fd40bd.tar.bz2 |
Merge branch 'v2.x'
* v2.x:
Docs: Clarify the use case for the anchor type
Docs: Remove author emails from stdlib functions
Docs: Copyedit function doc strings
Docs: Correct indentation of markdown code examples
Docs: Update documentation of stdlib classes
Docs: Update file_line documentation
Docs: Improve example in merge function
Diffstat (limited to 'lib/puppet/type/anchor.rb')
-rw-r--r-- | lib/puppet/type/anchor.rb | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/lib/puppet/type/anchor.rb b/lib/puppet/type/anchor.rb index 0c28b1c..6b81732 100644 --- a/lib/puppet/type/anchor.rb +++ b/lib/puppet/type/anchor.rb @@ -2,23 +2,32 @@ Puppet::Type.newtype(:anchor) do desc <<-'ENDOFDESC' A simple resource type intended to be used as an anchor in a composite class. + In Puppet 2.6, when a class declares another class, the resources in the + interior class are not contained by the exterior class. This interacts badly + with the pattern of composing complex modules from smaller classes, as it + makes it impossible for end users to specify order relationships between the + exterior class and other modules. + + The anchor type lets you work around this. By sandwiching any interior + classes between two no-op resources that _are_ contained by the exterior + class, you can ensure that all resources in the module are contained. + class ntp { + # These classes will have the correct order relationship with each + # other. However, without anchors, they won't have any order + # relationship to 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': } + # These two resources "anchor" the composed classes within the ntp + # class. + 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: + relationships with Class['ntp']: class { 'ntp': } -> class { 'mcollective': } class { 'mcollective': } -> class { 'ntp': } |