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.
