Browse Source

Contain all classes within Class[nginx]

This change uses the anchor relationship from the puppetlabs-stdlib
module to contain all of the module classes within the main "ntp" class.

Without this change, end users of the module may have difficulty
ordering things correctly since they will have to peek inside the module
and figure out it's internal workings to identify all classes that
require relationship edges.
Jeff McCune 13 years ago
parent
commit
f608b8ffd8
1 changed files with 14 additions and 8 deletions
  1. 14 8
      manifests/init.pp

+ 14 - 8
manifests/init.pp

@@ -11,12 +11,16 @@
 #
 # Requires:
 #  puppetlabs-stdlib - https://github.com/puppetlabs/puppetlabs-stdlib
-#  
+#
 #  Packaged NGINX
 #    - RHEL: EPEL or custom package
 #    - Debian/Ubuntu: Default Install or custom package
 #    - SuSE: Default Install or custom package
 #
+#  stdlib
+#    - puppetlabs-stdlib module >= 0.1.6
+#    - plugin sync enabled to obtain the anchor type
+#
 # Sample Usage:
 #
 # The module works with sensible defaults:
@@ -25,15 +29,10 @@
 #   include nginx
 # }
 class nginx {
-  
+
   class { 'stdlib': }
 
-  anchor{ 'nginx::begin': 
-    before => Class['nginx::package'],
-    notify => Class['nginx::service'],
-  }
-  
-  class { 'nginx::package': 
+  class { 'nginx::package':
     notify => Class['nginx::service'],
   }
 
@@ -44,6 +43,13 @@ class nginx {
 
   class { 'nginx::service': }
 
+  # Allow the end user to establish relationships to the "main" class
+  # and preserve the relationship to the implementation classes through
+  # a transitive relationship to the composite class.
+  anchor{ 'nginx::begin':
+    before => Class['nginx::package'],
+    notify => Class['nginx::service'],
+  }
   anchor { 'nginx::end':
     require => Class['nginx::service'],
   }