Issue #19315 has been updated by James Shubin.

PS: As an aside, which I figured I'd add, is that one advantage of my using my 
array approach is that if I can guarantee (or assume) that the array keys are 
unique, then I can *automatically* get a unique sequential id number integer 
which can be useful. I do this like so:

<pre>
        $length = inline_template('<%= array.length %>')
        $ulength = inline_template('<%= array.uniq.length %>')
        if ( "${length}" != '0' ) and ( "${length}" != "${ulength}" ) {
                fail('Masquerading array must not have duplicates.')
        }
        # if array had duplicates, this wouldn't be a unique index
        $index = inline_template('<%= array.index(name) %>')
</pre>

Your example:
<pre>
$thing = {"one" => {"key" => "val", .....},
          "two"  => {"key" => "val", .....}}
</pre>

would solve this problem I think, except I would have to *manually* add indexes 
(as ID#'s, which I don't want to do of course).

Just figured I'd add this note. Cheers 
----------------------------------------
Bug #19315: puppet is buggy when using a hash as a $name
https://projects.puppetlabs.com/issues/19315#change-83909

Author: James Shubin
Status: Unreviewed
Priority: Normal
Assignee: 
Category: 
Target version: 
Affected Puppet version: 
Keywords: 
Branch: 


<pre>

It turns out if you're doing some fancy puppet work, it is sometimes useful to 
use a hash as a $name var.
In my particular case, I'm actually passing an array of hashes to a define 
(which ultimately causes the define to be called once for each hash).
This actually works perfectly when run locally with puppet apply, however when 
running with puppet agent --test, it sometimes works and sometimes fails with:

Error: Could not retrieve catalog from remote server: Could not intern from 
pson: Could not convert from pson: Could not find relationship source 
"Foo::Bar::My_define[sourcedmzaddress192.168.101.200]"

The hash I used was:
{'source' => 'dmz', 'address' => '192.168.101.200'}

A few comments:
1. It's strange that the execution is not deterministic. Why does it sometimes 
work and sometimes not?
2. It's odd that it *always* works locally, but not always when through the 
puppet master.
3. The error message is confusing, not sure what it is trying to tell me.

Thanks,
James
</pre>



-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

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


Reply via email to