ソースを参照

added anchor pattern

James Fryman 13 年 前
コミット
b9aac9292e
4 ファイル変更37 行追加15 行削除
  1. 2 0
      Modulefile
  2. 20 9
      manifests/init.pp
  3. 15 3
      manifests/package.pp
  4. 0 3
      manifests/service.pp

+ 2 - 0
Modulefile

@@ -6,3 +6,5 @@ license 'Apache License Version 2.0'
 summary 'Puppet NGINX management module'
 description 'This module can be used for basic NGINX Management'
 project_page 'http://github.com/puppetlabs/puppetlabs-nginx'
+
+dependency 'puppetlabs/stdlib', '>= 0.1.6'

+ 20 - 9
manifests/init.pp

@@ -10,7 +10,8 @@
 # Actions:
 #
 # Requires:
-#
+#  puppetlabs-stdlib - https://github.com/puppetlabs/puppetlabs-stdlib
+#  
 #  Packaged NGINX
 #    - RHEL: EPEL or custom package
 #    - Debian/Ubuntu: Default Install or custom package
@@ -24,16 +25,26 @@
 #   include nginx
 # }
 class nginx {
+  
+  class { 'stdlib': }
 
-  include nginx::package
-  include nginx::config
-  include nginx::service
+  anchor{ 'nginx::begin': 
+    before => Class['nginx::package'],
+    notify => Class['nginx::service'],
+  }
+  
+  class { 'nginx::package': 
+    notify => Class['nginx::service'],
+  }
 
-  Class['nginx::package'] -> Class['nginx::config'] ~> Class['nginx::service']
+  class { 'nginx::config':
+    require => Class['nginx::package'],
+    notify  => 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.
-  Class['nginx::service'] -> Class['nginx']
+  class { 'nginx::service': }
 
+  anchor { 'nginx::end':
+    require => Class['nginx::service'],
+  }
 }

+ 15 - 3
manifests/package.pp

@@ -14,15 +14,27 @@
 #
 # This class file is not called directly
 class nginx::package {
+  anchor { 'nginx::package::begin': }
+  anchor { 'nginx::package::end': }
+
   case $operatingsystem {
     centos,fedora,rhel: {
-      include nginx::package::redhat
+      class { 'nginx::package::redhat':
+        require => Anchor['nginx::package::begin'],
+        before  => Anchor['nginx::package::end'],
+      }
     }
     debian,ubuntu: {
-      include nginx::package::debian
+      class { 'nginx::package::debian': 
+        require => Anchor['nginx::package::begin'],
+        before  => Anchor['nginx::package::end'],
+      }
     }
     opensuse,suse: {
-      include nginx::package::suse
+      class { 'nginx::package::suse':
+        require => Anchor['nginx::package::begin'],
+        before  => Anchor['nginx::package::end'],
+      }
     }
   }
 }

+ 0 - 3
manifests/service.pp

@@ -24,8 +24,5 @@ class nginx::service {
     enable	   => true,
     hasstatus  => true,
     hasrestart => true,
-    subscribe  => Class['nginx'],
   }
-
-  Exec['rebuild-nginx-vhosts'] ~> Service['nginx']
 }