Opened on 03/16/2016 at 06:11:34 PM
Closed on 03/17/2016 at 02:36:04 PM
#3818 closed change (fixed)
Remove custom Puppet stages
| Reported by: | matze | Assignee: | matze |
|---|---|---|---|
| Priority: | P3 | Milestone: | |
| Module: | Infrastructure | Keywords: | |
| Cc: | fred | Blocked By: | |
| Blocking: | #3574, #3576 | Platform: | Unknown / Cross platform |
| Ready: | yes | Confidential: | no |
| Tester: | Unknown | Verified working: | no |
| Review URL(s): | |||
Description
Puppet class base, which is going to become obsolete soon (#3574), defines custom stages pre and post, which are actually obsolete as well: Module stdlib defines a set of stages for that exact purpose (see https://forge.puppetlabs.com/puppetlabs/stdlib#usage), which we should use instead of the custom ones.
Todo
Identify all occurrences of Puppet $stage parameters within repository infrastructure and replace any custom stage value with the respective stdlib version, before removing the stage definitions from class base.
Attachments (0)
Change History (3)
comment:1 Changed on 03/16/2016 at 07:16:55 PM by matze
- Review URL(s) modified (diff)
- Status changed from new to reviewing
comment:2 Changed on 03/17/2016 at 02:34:48 PM by abpbot
A commit referencing this issue has landed:
https://hg.adblockplus.org/infrastructure/rev/8eb8634eee16
comment:3 Changed on 03/17/2016 at 02:36:04 PM by matze
- Resolution set to fixed
- Status changed from reviewing to closed

Looks like class base is the only place the custom stages are referenced:
$ grep -R '\<stage\>' * modules/base/manifests/init.pp: stage {'pre': before => Stage['main']} modules/base/manifests/init.pp: stage {'post': require => Stage['main']} modules/base/manifests/init.pp: stage => 'pre', modules/base/manifests/init.pp: stage => 'post' modules/firewall/lib/puppet/type/firewall.rb: # is because there is a revalidation stage called later where the values modules/apt/spec/classes/params_spec.rb: # The resources are class[apt::params], class[main], class[settings], stage[main] modules/postgresql/CHANGELOG.md:the stage for the large scale refactoring work of 3.0.0. modules/stdlib/manifests/stages.pp:# class { java: stage => 'runtime' } modules/stdlib/manifests/stages.pp: stage { 'setup': before => Stage['main'] } modules/stdlib/manifests/stages.pp: stage { 'runtime': require => Stage['main'] } modules/stdlib/manifests/stages.pp: -> stage { 'setup_infra': } modules/stdlib/manifests/stages.pp: -> stage { 'deploy_infra': } modules/stdlib/manifests/stages.pp: -> stage { 'setup_app': } modules/stdlib/manifests/stages.pp: -> stage { 'deploy_app': } modules/stdlib/manifests/stages.pp: -> stage { 'deploy': }That's quite fortunate..