On 07/03/2012 07:56 PM, [email protected] wrote:
Issue #14301 has been updated by Brice Figureau.

Currently the right hand part of the selector (selector values) only supports rvalues, and hashes are not rvalues. We could promote those selector values to full-blown expressions (which covers much more than rvalues), FTW.

[reposting for the list]

Hi,

I'm desperately updating my master waiting for a fix regarding this issue.
Is this somewhat in the roadmap?

I use this kind of syntax to set a bunch of variables for IPSEC tunnels within 20 offices.
It gives something like this:

$var1 = $office ? {
'office1' => { 'office2' => 'aes', 'office3' => '3des', [...], 'office20' => 'aes-256' }, 'office2' => { 'office1' => 'aes', 'office3' => 'aes', [...], 'office20' => 'aes-256' },
[...]
'office20' => { 'office1' => 'aes-256', 'office2' => 'aes-256', 'office3' => 'des', [...] }
}

I'm setting 8 variables using this scheme (in a 3260 lines .pp file).
This is used with 40 OpenBSD 4.9 nodes, and works as a charm.

And now, this syntax is just not supported anymore?

Not looking for the troll here, still: if I have to script something, generating a "working" pp file from my side (using if/else statements, arrays, ...), then this looks
like some puppet regression.
Finding this ticket, I'm surprised this is not considered as a critical issue.


Kind regards.

--
Samuel Martin Moro
Smile - Open Source Solutions

------------------------------------------------------------------------


  Bug #14301: Hashes can not be used in selectors (upgrading from
  2.7.1->2.7.14)
  <https://projects.puppetlabs.com/issues/14301#change-66257>

    * Author: Kristian Kostecky
    * Status: Accepted
    * Priority: Normal
    * Assignee:
    * Category: server
    * Target version:
    * Affected Puppet version: 2.7.14
    * Keywords:
    * Branch:

After upgrading from puppet 2.7.1 --> 2.7.14, I noticed that all the selectors that assigned hashes caused a parse error. I re-wrote them as if conditionals to bypass the issue, but I believe this is a bug.

Example:

$test = $fqdn ? {

|'test'  =>  { 'test' =>  'test', 't' =>  't' },
default =>  { 'test' =>  'test', 't' =>  't' },
|

}

Gives: err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not parse for environment production: Syntax error at '{'; expected '}' at XXXXXX


--
You received this message because you are subscribed to the Google Groups "Puppet 
Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to