summaryrefslogtreecommitdiff
path: root/manifests
diff options
context:
space:
mode:
authorJeff McCune <jeff@puppetlabs.com>2011-05-26 10:21:42 -0700
committerJeff McCune <jeff@puppetlabs.com>2011-05-26 10:21:42 -0700
commit6e9e838a0e9abdf66e3a14bc17e35771bb453966 (patch)
tree442108cd6ad323621aa5d5221966316def1e6a8f /manifests
parent46533ae4281bb58065a8f068c1334e5525deca1f (diff)
Move stages to after main
Working with the stages in stdlib, I quickly ran into an issue where most of the stages were before the main stage. This made it difficult to declare any resources in a traditional "include" style class while hiding the end user from the stages being associated with other module classes. For example, in class mcollective, a package would be declared in main. However, if mcollective declared class mcollective::service in stage infra_deploy and this was before main, there would be a dependency loop between the package and the service. There appears to be a convention around "chain your stages after main" to avoid the need to create relatively empty shell classes.
Diffstat (limited to 'manifests')
-rw-r--r--manifests/stages.pp21
1 files changed, 9 insertions, 12 deletions
diff --git a/manifests/stages.pp b/manifests/stages.pp
index 19cee6b..365b905 100644
--- a/manifests/stages.pp
+++ b/manifests/stages.pp
@@ -5,13 +5,13 @@
# The high level stages are (In order):
#
# * setup
-# * deploy
+# * main
# * runtime
# * setup_infra
# * deploy_infra
-# * main
# * setup_app
# * deploy_app
+# * deploy
#
# Parameters:
#
@@ -31,15 +31,12 @@
#
class stdlib::stages {
- stage { 'setup': before => Stage['deploy'] }
- stage { 'deploy': before => Stage['setup_infra'] }
- stage { 'runtime':
- require => Stage['deploy'],
- before => Stage['setup_infra'],
- }
- stage { 'setup_infra': before => Stage['deploy_infra'] }
- stage { 'deploy_infra': before => Stage['main'] }
- stage { 'setup_app': require => Stage['main'] }
- stage { 'deploy_app': require => Stage['setup_app'] }
+ stage { 'setup': before => Stage['main'] }
+ stage { 'runtime': require => Stage['main'] }
+ -> stage { 'setup_infra': }
+ -> stage { 'deploy_infra': }
+ -> stage { 'setup_app': }
+ -> stage { 'deploy_app': }
+ -> stage { 'deploy': }
}