diff options
| author | Jeff McCune <jeff@puppetlabs.com> | 2011-05-26 10:21:42 -0700 | 
|---|---|---|
| committer | Jeff McCune <jeff@puppetlabs.com> | 2011-05-26 10:21:42 -0700 | 
| commit | 6e9e838a0e9abdf66e3a14bc17e35771bb453966 (patch) | |
| tree | 442108cd6ad323621aa5d5221966316def1e6a8f | |
| parent | 46533ae4281bb58065a8f068c1334e5525deca1f (diff) | |
| download | puppet-stdlib-6e9e838a0e9abdf66e3a14bc17e35771bb453966.tar.gz puppet-stdlib-6e9e838a0e9abdf66e3a14bc17e35771bb453966.tar.bz2  | |
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.
| -rw-r--r-- | manifests/stages.pp | 21 | 
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': }  }  | 
