On Sun, Aug 12, 2012 at 1:35 AM, Samuel José Martín <faus...@gmail.com> wrote:
>
> Hi,
>
> I am using puppet to generate ipsec tunnels configuration on OpenBSDs
> gateways.
> Having a bunch of offices, I did something like this:
>
> $enc = $office ?
>     {
>         "paris" =>
>             {
>                 "london" => "aes",
>                 "kiev" => "3des"
>             },
>         "london" =>
>             {
>                 "paris" => "aes",
>                 "kiev" => "3des"
>             },
>         "kiev" =>
>             {
>                 "paris" => "3des",
>                 "london" => "3des"
>             }
>     }
>
> This may not be the cleaner way, since I have to specify each variable two
> times - the enc for tunnel from paris to london is obviously the same as the
> one from london to paris.
> However, this works, under OpenBSD 4.9 and our production puppetmaster
> (2.6).
>
> Now, we want to upgrade our firewalls to OpenBSD 5.0.
> Their puppet client version (2.7.1) is forcing us to upgrade our
> puppetmaster too.
>
> My test puppetmaster is running debian wheezy, with puppet* 2.7.14-1.
> While executing puppetd -vt on the client, it fails compiling catalog, with
> some syntax error "at '{'; expected '}'".
> I've just updated my puppetmaster to 2.7.18-1, no changes since my last
> check.
> The faulty "{" is the second one (in my sample, the one just after "paris").
>
> Is this some regression, in ruby or puppetmaster?
> Or is this kind of syntax deprecated in any way?
> Is there any replacement?

I think you've found this:
https://projects.puppetlabs.com/issues/14301   --   Hashes can not be
used in selectors

I don't know how it sits in the deprecated/regression realm.
I think updating your thoughts in the ticket would help move it
forward in development though.

> What could I do to patch my repository, before upgrading our production
> puppetmaster?

For the time being (if you don't want to refactor your module in
otherways) you can always assign the hash outside of the selector
(my_test.pp)

$office = 'paris'

$paris  = { "london" => "aes",  "kiev" =>   "3des" }
$london = { "paris"  => "aes",  "kiev" =>   "3des" }
$kiev   = { "paris"  => "3des", "london" => "3des" }

$enc = $office ?  {
  "paris" => $paris,
  "london" => $london,
  "kiev" => $kiev
}

notify { $enc['london']: }




 - Justin

>
>
> Thanks for your help,
>
> Regards.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/puppet-users/-/dJiuo5sjBYwJ.
> To post to this group, send email to puppet-users@googlegroups.com.
> To unsubscribe from this group, send email to
> puppet-users+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/puppet-users?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to