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.