My explanation's not the best so went looking to see if the Internals
wiki page specifically mentions what I'm talking about, I'm pretty
sure the problem is in the Parsing phase:

http://docs.puppetlabs.com/guides/puppet_internals.html

On Oct 5, 3:42 pm, Luke Bigum <[email protected]> wrote:
> Not exactly. If we could both get our resources to fail individually
> (like a File's "source" parameter not existing and throwing an error
> for that resource) it would work, but because we're using custom
> types, the Puppet agent loads all those in (and Facts) and dies before
> it gets to it's catalog, so run levels won't help. It's the same error
> as if you went to use a native Augeas resource and didn't have the
> Augeas Ruby bindings installed.
>
> On Oct 5, 3:36 pm, Christopher Wood <[email protected]>
> wrote:
>
>
>
>
>
>
>
> > Without waving my ignorance around too much... does Matthias' issue fit run 
> > stages? This sounds like exactly what they were designed to solve: ensure 
> > certain things definitely happen before certain other things.
>
> > On Wed, Oct 05, 2011 at 07:33:29AM -0700, Luke Bigum wrote:
> > > Matthias,
>
> > > I had a similar problem recently with libvirt Ruby bindings being
> > > required for a provider. Due to a few other requirements I opted for
> > > creating a "second pass" approach by using a custom fact to describe
> > > whether my provider was "ready to be used" on a node and wrap my
> > > resources in a conditional based on this fact. The fact tests certain
> > > files exist which are installed by packages managed in other Puppet
> > > modules. It's pretty hacky but I didn't have time to invest in a nicer
> > > solution such as handling the error inside the provider.
>
> > > -Luke
>
> > > On Oct 5, 3:25 pm, Matthias Pigulla <[email protected]> wrote:
> > > > Hi all,
>
> > > > I have repeatedly encountered the problem that I would like Puppet to 
> > > > install a particular piece of software, for example git, and then use a 
> > > > provider likehttps://github.com/puppetlabs/puppet-vcsrepotocheckout a 
> > > > repository.
>
> > > > This fails with a message like "Could not run Puppet configuration 
> > > > client: Could not find a default provider for ..." unless the tool 
> > > > (git, to stick with my example) is already installed. This chicken and 
> > > > egg problem applies to some other 
> > > > install-stuff-and-do-more-stuff-with-it situations as well.
>
> > > > I understand that it would be way too complicated for puppet to be able 
> > > > to handle all this in a single run. But isn't failing due to the lack 
> > > > of a particular (default) provider too hard?
>
> > > > If Puppet would carry on and just fail on the vcsrepo {} (or whatever 
> > > > type of resource), things would probably sort out after two or three 
> > > > agent runs.
>
> > > > In IRC they pointed me to either using environments, which I think is 
> > > > too complicated (having to maintain "bootstrap" and "production" 
> > > > manifests).
>
> > > > Another tip was to have a look at the way the pip package provider 
> > > > (https://github.com/puppetlabs/puppet/blob/master/lib/puppet/provider/...)
> > > >  works, see lazy_pip at the end. But to me it seems as if that would be 
> > > > out of line with the rest of providers and working against the API 
> > > > provided by Puppet.
>
> > > > Suggestions?
>
> > > > -mp.
>
> > > --
> > > You received this message because you are subscribed to the Google Groups 
> > > "Puppet Users" group.
> > > To post to this group, send email to [email protected].
> > > To unsubscribe from this group, send email to 
> > > [email protected].
> > > For more options, visit this group 
> > > athttp://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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to