Cool, thanks for the quick response.

In the meantime, it might be helpful to ship a default hiera.yaml in the 
PuppetLabs packages.

I'm using the Vagrant boxes from vstone.eu [1], and he's just pulling your 
Puppet packages from yum.puppetlabs.com. [2]

Version in my VM is:
puppet.noarch       2.7.13-1.el6        puppetlabs

[1] http://packages.vstone.eu/vagrant-boxes/
[2] http://packages.vstone.eu/vagrant-boxes/CHANGELOG

Geoff Davis
Scripps Institution of Oceanography
gada...@ucsd.edu, (858) 822-5756



On Apr 17, 2012, at 12:32 PM, Gary Larizza wrote:

> And here's the bug to track --> http://projects.puppetlabs.com/issues/10367
> 
> On Tue, Apr 17, 2012 at 12:31 PM, Eric Shamow <e...@puppetlabs.com> wrote:
> As a +1 on this (and as the guy who wrote safe_hiera) --
> 
> It shouldn't be a function, the safety should be wrapped into hiera.  But 
> yes, this will get you the right syntax so you can just search/replace 
> safe_hiera for hiera once it's fixed.
> 
> -Eric
> 
> -- 
> 
> Eric Shamow
> Professional Services
> http://puppetlabs.com/
> (c)631.871.6441
> 
> On Tuesday, April 17, 2012 at 12:29 PM, Gary Larizza wrote:
> 
>> Hey Geoff,
>> 
>> We actually had a talk about this.  There is this code that will help catch 
>> that scenario FOR NOW -->  https://github.com/puppetlabs/hiera-puppet/pull/23
>> 
>> I believe this is a bug and should DEFINITELY be fixed in source.  Until 
>> then, the 'safe_hiera()' function allows you to make this check.  
>> 
>> 
>> 
>> On Tue, Apr 17, 2012 at 12:21 PM, Geoff Davis <gada...@ucsd.edu> wrote:
>>> Alas that doesn't work as the manifest fails to compile properly without 
>>> the /etc/puppet/hiera.yaml file being there.
>>> 
>>> Nan's code does provide defaults for the hiera lookups similar to what you 
>>> are doing below, but the compiler balks before they are even evaluated.
>>> 
>>> Here's the version of staging/init.pp that generated the error below: 
>>> https://github.com/nanliu/puppet-staging/blob/5e1a8763ae36c2ea21c0a5b6a1f0e586e077f0fd/manifests/init.pp
>>> 
>>> Note that all of the hiera calls have defaults.
>>> 
>>> Geoff Davis
>>> Scripps Institution of Oceanography
>>> gada...@ucsd.edu, (858) 822-5756
>>> 
>>> 
>>> 
>>> On Apr 17, 2012, at 12:14 PM, Gary Larizza wrote:
>>> 
>>>> Hey Geoff,
>>>> 
>>>> I see that as two separate steps (Is Hiera enabled and is Hiera 
>>>> configured).  I think the function satisfies the former, but you might 
>>>> want to write your own check for the latter (as each person probably 
>>>> interprets 'configured' differently).  You could do a check like:
>>>> 
>>>> if function_available('hiera') and hiera('hiera_enabled', false) {
>>>>   <do something with hiera>
>>>> } else {
>>>>   <do something without hiera>
>>>> }
>>>> 
>>>> This would do a hiera lookup for a parameter 'hiera_enabled' that could be 
>>>> set in your common/global.yaml file (while defaulting to false if it's not 
>>>> found).
>>>> 
>>>> 
>>>> 
>>>> On Tue, Apr 17, 2012 at 12:09 PM, Geoff Davis <gada...@ucsd.edu> wrote:
>>>>> I've found a potential issue, but I'm not sure if this is within the 
>>>>> scope of function_available or not.
>>>>> 
>>>>> The vagrant basebox I'm using actually does ship with puppet-hiera, but 
>>>>> there's no /etc/puppet/hiera.yaml
>>>>> 
>>>>> Thus, even though function_available('hiera') returns true, the function 
>>>>> isn't actually usable:
>>>>> 
>>>>> Hiera config file /etc/puppet/hiera.yaml not readable at 
>>>>> /tmp/vagrant-puppet/modules-0/staging/manifests/init.pp:31 on node 
>>>>> centos-6-vagrant.vagrantup.com
>>>>> 
>>>>> Is there a way to check whether the function is actually usable as well?
>>>>> 
>>>>> Geoff Davis
>>>>> Scripps Institution of Oceanography
>>>>> gada...@ucsd.edu, (858) 822-5756
>>>>> 
>>>>> 
>>>>> 
>>>>> On Apr 17, 2012, at 11:56 AM, Ken Barber wrote:
>>>>> 
>>>>>> I'm going to review this now. Its destined for master, so someone from
>>>>>> the release team can probably comment on the next major release
>>>>>> schedule for stdlib.
>>>>>> 
>>>>>> On Tue, Apr 17, 2012 at 7:35 PM, Geoff Davis <gada...@ucsd.edu> wrote:
>>>>>>> That's what I'm looking for. I'll fold in that branch into my testing 
>>>>>>> until
>>>>>>> it goes mainline.
>>>>>>> 
>>>>>>> Any ETA on it going mainline?
>>>>>>> 
>>>>>>> 
>>>>>>> On Apr 17, 2012, at 11:14 AM, Nigel Kersten wrote:
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> On Tue, Apr 17, 2012 at 11:08 AM, Geoff Davis <gada...@ucsd.edu> wrote:
>>>>>>>> 
>>>>>>>> I'm doing some work on module development inside of a Vagrant VM of 
>>>>>>>> CentOS
>>>>>>>> 6.2. This VM has the community version of Puppet installed (2.7.13 I 
>>>>>>>> think),
>>>>>>>> but that doesn't include Hiera by default.
>>>>>>>> 
>>>>>>>> My module is dependent on Nan Liu's puppet-staging module, which 
>>>>>>>> requires
>>>>>>>> hiera. This puts me into the proverbial chicken and egg problem of not
>>>>>>>> having a puppet function but also not being able to install it with 
>>>>>>>> puppet,
>>>>>>>> since my manifests don't compile due to the hiera function not being
>>>>>>>> available.
>>>>>>>> 
>>>>>>>> Right now, I'm doing a manual bootstrap of a new vagrant box with a
>>>>>>>> dedicated Puppet manifest that calls another one of Nan's modules,
>>>>>>>> puppet-hiera, to install hiera on the Vagrant VM, but I'd rather use 
>>>>>>>> the
>>>>>>>> same manifest for both bootstrap and module testing. I don't care if it
>>>>>>>> takes two passes to converge, I just don't want a freshly booted 
>>>>>>>> Vagrant box
>>>>>>>> to complain because it can't compile it's manifest.
>>>>>>>> 
>>>>>>>> Is there a relatively foolproof way to determine if Puppet has a 
>>>>>>>> function
>>>>>>>> available to it or not? Is there a "has_function" function available 
>>>>>>>> in the
>>>>>>>> Puppet DSL, or is there a check that I could roll into a fact that 
>>>>>>>> works
>>>>>>>> cross-platform and between Puppet Enterprise and Community?
>>>>>>>> 
>>>>>>> 
>>>>>>> There's a pending pull request in the stdlib module for adding a
>>>>>>> function_available function
>>>>>>> 
>>>>>>> https://github.com/puppetlabs/puppetlabs-stdlib/pull/59
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> --
>>>>>>> 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.
>>>>>> 
>>>>>> -- 
>>>>>> 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.
>>>> 
>>>> 
>>>> 
>>>> -- 
>>>> 
>>>> Gary Larizza
>>>> Professional Services Engineer
>>>> Puppet Labs
>>>> 
>>>> 
>>>> -- 
>>>> 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.
>> 
>> 
>> 
>> -- 
>> 
>> Gary Larizza
>> Professional Services Engineer
>> Puppet Labs
>> 
>> 
>> -- 
>> 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.
> 
> 
> 
> -- 
> 
> Gary Larizza
> Professional Services Engineer
> Puppet Labs
> 
> 
> -- 
> 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