Project

General

Profile

Actions

Bug #8115

closed

Foreman 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)

Added by Jason Knudsen over 9 years ago. Updated over 9 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Category:
Puppet
Target version:
-
Difficulty:
Triaged:
Fixed in Releases:
Found in Releases:

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

Actions #1

Updated by Dominic Cleal over 9 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
Actions #2

Updated by Jason Knudsen over 9 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.

Actions #3

Updated by Dominic Cleal over 9 years ago

  • Status changed from Need more information to Rejected

No problem.

Actions

Also available in: Atom PDF