On Wed, Oct 05, 2011 at 07:50:48AM -0700, Luke Bigum wrote: > 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 <luke.bi...@lmax.com> 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.
I decidedly hadn't thought this through -- custom types/facts aren't part of the catalog, and run stages are only for catalog items. I certainly appreciate the explanation! > > On Oct 5, 3:36 pm, Christopher Wood <christopher_w...@pobox.com> > > 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 <m...@webfactory.de> 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 puppet-users@googlegroups.com. > > > > To unsubscribe from this group, send email to > > > > puppet-users+unsubscr...@googlegroups.com. > > > > 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 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.