Re: [Puppet Users] Determining if hiera (or any function) is installed on a node

Geoff Davis
Tue, 17 Apr 2012 19:09:11 -0000

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
gadavis@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 <gadavis@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 <gadavis@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+unsubscribe@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+unsubscribe@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/puppet-users?hl=en.