I suspect the root of the problem I'm running into may be the simple nature
of $name.  It's not capable of being an arbitrary object.  I consider that
an architectural issue in a system that supports hashes which are structured
objects that can't really be reduced to a string.  IMHO for a future version
there should be a $object (or similar) builtin for handling hashes as
names/titles of resources.  $name should magic-map to $object[name] for
hash-type objects to make life easier for those of us who want to use
hashes.

On Wed, Jun 8, 2011 at 9:33 AM, Aaron Grewell <aaron.grew...@gmail.com>wrote:

> If you look at what I tried to do you'll realize that's not the case.  I
> understand what you're saying, but the issue is one of Puppet not supporting
> its own 'syntactic sugar' consistently.  I created an array (this is not a
> convenience for a large number of machines, it's a requirement) but since
> it's an array of hashes rather than an array of strings it doesn't work
> right.  That's a bug, plain and simple.  There's no point in having hashes
> if we can't use defines or virtuals with them without breakage.
>
>
> On Wed, Jun 8, 2011 at 9:01 AM, Brian Gallew <g...@gallew.org> wrote:
>
>> On Jun 8, 2011, at 8:45 AM, Aaron Grewell wrote:
>>
>> > 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.
>>
>> See, there's the crux of the issue: arrays are *not* a method of looping.
>>  Puppet's DSL is declarative, not procedural (imperative).  What you are
>> thinking of as "looping" is simply a convenient shorthand (syntactic sugar
>> is the appropriate term).  If you are thinking in procedural terms (which
>> we've all done at one point or another), you're simply going to run around
>> in circles ranting that Puppet is broken until you get your head wrapped
>> around its declarative nature (much like I did/do).  Puppet is not
>> procedural.  Never has been, never will be.
>>
>> You can probably meet your needs by thinking about the desired state in
>> different terms and using extlookup, or using custom functions.  If you are
>> really insane, you can modify the Puppet backend to execute a file and read
>> the output instead of reading the file directly, which might allow you to
>> dynamically generate the manifests you want applied, though the added
>> complexity may well be a net loss.
>>
>> In short, if you are thinking "procedural", then you have not yet drunk
>> the Kool-Aide.  Join us.
>>
>> --
>> 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.

Reply via email to