Geoff Davis
2012-Apr-17 18:08 UTC
[Puppet Users] Determining if hiera (or any function) is installed on a node
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? -- 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.
Nigel Kersten
2012-Apr-17 18:14 UTC
Re: [Puppet Users] Determining if hiera (or any function) is installed on a node
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.
Geoff Davis
2012-Apr-17 18:35 UTC
Re: [Puppet Users] Determining if hiera (or any function) is installed on a node
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.
Ken Barber
2012-Apr-17 18:56 UTC
Re: [Puppet Users] Determining if hiera (or any function) is installed on a node
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.-- 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.
Geoff Davis
2012-Apr-17 19:09 UTC
Re: [Puppet Users] Determining if hiera (or any function) is installed on a node
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. > > -- > 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.
Gary Larizza
2012-Apr-17 19:14 UTC
Re: [Puppet Users] Determining if hiera (or any function) is installed on a node
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 <gadavis@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 > 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. > > > -- > 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. >-- 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Geoff Davis
2012-Apr-17 19:21 UTC
Re: [Puppet Users] Determining if hiera (or any function) is installed on a node
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 gadavis@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 <gadavis@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 > 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. >> >> -- >> 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. > > > > -- > > 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+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.
Gary Larizza
2012-Apr-17 19:29 UTC
Re: [Puppet Users] Determining if hiera (or any function) is installed on a node
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 <gadavis@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 > gadavis@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 <gadavis@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 >> 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. >> >> >> -- >> 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. >> > > > > -- > > 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+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. >-- 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Eric Shamow
2012-Apr-17 19:31 UTC
Re: [Puppet Users] Determining if hiera (or any function) is installed on a node
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 <gadavis@ucsd.edu (mailto:gadavis@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 > > gadavis@ucsd.edu (mailto:gadavis@ucsd.edu), (858) 822-5756 (tel:%28858%29%20822-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 <gadavis@ucsd.edu (mailto:gadavis@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 (http://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 (mailto:gadavis@ucsd.edu), (858) 822-5756 (tel:%28858%29%20822-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 (mailto: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 (mailto: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 (mailto:puppet-users@googlegroups.com). > > > > > > To unsubscribe from this group, send email to > > > > > > puppet-users+unsubscribe@googlegroups.com (mailto: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 (mailto:puppet-users@googlegroups.com). > > > > > > To unsubscribe from this group, send email to > > > > > > puppet-users+unsubscribe@googlegroups.com (mailto: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 (mailto:puppet-users@googlegroups.com). > > > > > To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com (mailto: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 (mailto:puppet-users@googlegroups.com). > > > > To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com (mailto:puppet-users%2Bunsubscribe@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 (mailto:puppet-users@googlegroups.com). > > > To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com (mailto: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 (mailto:puppet-users@googlegroups.com). > > To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com (mailto:puppet-users%2Bunsubscribe@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 (mailto:puppet-users@googlegroups.com). > To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com (mailto: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.
Gary Larizza
2012-Apr-17 19:32 UTC
Re: [Puppet Users] Determining if hiera (or any function) is installed on a node
And here''s the bug to track --> http://projects.puppetlabs.com/issues/10367 On Tue, Apr 17, 2012 at 12:31 PM, Eric Shamow <eric@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 <gadavis@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 > gadavis@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 <gadavis@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 > 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. > > > -- > 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. > > > > > -- > > 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+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. > > > > > -- > > 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+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. >-- 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Geoff Davis
2012-Apr-17 19:42 UTC
Re: [Puppet Users] Determining if hiera (or any function) is installed on a node
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 gadavis@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 <eric@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 <gadavis@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 >>> gadavis@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 <gadavis@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 >>>>> 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. >>>>>> >>>>>> -- >>>>>> 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. >>>> >>>> >>>> >>>> -- >>>> >>>> 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+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. >> >> >> >> -- >> >> 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+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. > > > > -- > > 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+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.