Steps to reproduce
- Enable future parser as described in this documentation
/etc/puppet/puppet.conf
[main]
parser = future
- Add lambda code to a pp file
site.pp
$systems = [
'system01',
'system02',
'system03',
'system04',
'system05',
'system06',
'system07',
'system08',
'system09',
'system10'
]
each($systems) |$value| { notify $value }
- Run puppet
Outcome
Error: Could not retrieve catalog from remote server: Error 400 on SERVER:
Could not parse for environment production: This Name is not productive.
A non productive construct may only be placed last in a block/sequence at
/etc/puppet/manifests/site.pp:38:27 on node vm-one.domain
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
Attempts to solve issue
- Googling neither
Could not parse for environment production: This Name is not productive
norA non productive construct may only be placed last in a block/sequence
resulted in an answer that solves the issue. - Moving
each($systems) |$value| { notify $value }
to the end of the file did not solve the issue either