Bug #8115
closedForeman Proxy doesn't import modules with lambda's, etc.. that were once considered part of Future Parser but are now regular parser (Puppet v3.7)
Description
Hey guys,
Noticed today that modules I've created don't get imported via the Foreman Proxy that have things like lambda's. I've always operated with the Future Parser enabled in my puppet.conf, but as of Puppet v3.7.x the Future Parser is actually a NEW Future Parser, and the old Future Parser is now the default language. I know, confused me a bit at first and caught me off-guard. But basically, parser = future in puppet.conf is now very experimental and totally new (actually it's the Puppet v4 parser) so I've gone ahead and disabled it.
However now my modules no longer import because they have things like lambda's, which are actually fully supported and standard in the default parser. So basically, we need to be able to catch modules via the proxy that were once considered future, but are now totally normal and expected in puppet language (like each($parameter), etc..)
Env:
Puppet v3.7.2
Foreman 1.6.2
CentOS 6.5
Thanks,
Jason
Updated by Dominic Cleal about 10 years ago
- Project changed from Foreman to Smart Proxy
- Category changed from Proxy gateway to Puppet
- Status changed from New to Need more information
Do you have a reference for what you say about 3.7.x changing the parser? I'm pretty certain that's not correct, the default will not be changed until Puppet 4 and until then, you need to keep parser = future
in puppet.conf.
[root@foreman puppet]# rpm -q puppet puppet-3.7.2-1.el7.noarch [root@foreman ~]# cat > test.pp $a = [1,2,3] each($a) |$value| { notice $value } [root@foreman ~]# puppet apply test.pp Error: Could not parse for environment production: Could not match |$value| at /root/test.pp:2 on node foreman.example.com Error: Could not parse for environment production: Could not match |$value| at /root/test.pp:2 on node foreman.example.com [root@foreman ~]# puppet apply --parser=future test.pp Notice: Scope(Class[main]): 1 Notice: Scope(Class[main]): 2 Notice: Scope(Class[main]): 3 Notice: Compiled catalog for foreman.example.com in environment production in 0.43 seconds Notice: Finished catalog run in 0.14 seconds
Updated by Jason Knudsen about 10 years ago
Dominic Cleal wrote:
Do you have a reference for what you say about 3.7.x changing the parser? I'm pretty certain that's not correct, the default will not be changed until Puppet 4 and until then, you need to keep
parser = future
in puppet.conf.[...]
My reference was a consultant at Puppet, but you're right.. something seems to be off now that I'm digging deeper. My puppet module was running but it's not now as well. Maybe some kind of caching issue w/passenger or the new environment_timeout stuff. I'll keep poking, sorry for wasting your time on this one.
Updated by Dominic Cleal about 10 years ago
- Status changed from Need more information to Rejected
No problem.