Here's the thing though: since arrays are the only native method of looping, Puppet needs to handle arrays of all native types well. If it doesn't, from an end-user perspective that's broken.
On Wed, Jun 8, 2011 at 8:36 AM, jcbollinger <john.bollin...@stjude.org>wrote: > > > On Jun 7, 6:15 pm, Aaron Grewell <aaron.grew...@gmail.com> wrote: > > Hmmm, either I'm doing something wrong or virtual resources are > incompatible > > with hashes. > > > I think it's a mix of about two parts "doing something wrong" to one > part "incompatible", coming out to more or less "Puppet doesn't do > what I wish it would." > > > > When I do this: > > $users = [{ username => "bill", uid => "12345" }, > > { username => "ted", uid => "12346" }] > > > > define usertest ($alias = $name[username]) { > > user {$name[username]: > > ensure => present, > > uid => $name[uid] > > }} > > > > @usertest { $users: } > > realize Usertest[bill] > > > > I get this: > > warning: alias is a metaparam; this value will inherit to all contained > > resources > > Failed to realize virtual resources Usertest[bill] on node > > > > Which seems unfortunate. Hash support is a really cool idea but I keep > > tripping over parts of Puppet that don't handle it well. > > > In a resource declaration, Puppet expects the value or variable > preceding the colon ($users in your example) to be a resource title or > an array of resource titles. I find it somewhat surprising that > Puppet accepted your hash for the resource titles, but I suppose it > flattens the hash into an ordinary array. It would be nice if that > elicited at least a warning. > > Do not be confused by the similar DSL syntax: resource declarations > are completely unrelated to hashes at the DSL level. I guess you hoped > Puppet would unpack the hash into a resource title and properties, but > it just doesn't, and I wouldn't expect it to do. > > > John > > -- > 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. > > -- 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.