On 11/13/08, Luke Kanies <[EMAIL PROTECTED]> wrote: > > On Nov 13, 2008, at 11:42 AM, Thom May wrote: > > > > > On 11/12/08, Luke Kanies <[EMAIL PROTECTED]> wrote: > >> > >> On Nov 9, 2008, at 8:14 PM, Thom May wrote: > >> > >>> Hey, > >>> I have a very trivial parsedfile based type - http://pastie.org/311146 > >>> - that works fine when deployed and run under puppetd -t. However, > >>> when being run by the daemonized puppet, it results in this error: > >>> > >>> Mon Nov 10 03:50:48 +0000 2008 > >>> //Node[ams-proxy-2]/quagga/Quagga::Daemon[zebra]/ > >>> Quagga_service[zebra] > >>> (err): Failed to retrieve current state of resource: No ability to > >>> determine if quagga_service exists > >>> > >>> It seems like this is the provider failing to respond to exists? but > >>> that, as far as I can tell, should be provided by parsedfile. > >> > >> > >> > >> I tried to help a bit on irc but I don't think we ever resolved it, > >> so > >> I'll try to help here. (And for the record, if someone thinks > >> there's > >> a thread on the user list that I haven't responded to yet and should, > >> feel free to send me a direct note.) > >> > >> I've only ever seen this when the resource somehow doesn't have a > >> provider. For better or worse, the 'provider' method uses the > >> resource as the provider if no provider is actually available: > >> > >> def provider > >> @resource.provider || @resource > >> end > >> > >> I think that's a design bug, but it works that way right now. > >> > >> I'd guess your resource isn't finding the provider -- is it stored at > >> 'provider/$type/$provider.rb'? > >> > > > > It's synced from a module, ends up looking like: > > (libdir = /var/lib/puppet/lib) > > > > /var/lib/puppet/lib/puppet/type/quagga_service.rb > > /var/lib/puppet/lib/puppet/provider/quagga_service/parsed.rb > > > > So yeah, it looks like it ought to be right. > > Since I didn't mention the versions, this is 0.24.6 across the board. > > > Maybe there's a syntax error in the provider that's not logging well? > > Here are a few things you can do to test (this uses ruby -e, but irb > is a better way to test): > > ruby -rpuppet -rpuppet/quagga_service/parsed -e 'puts :yep' > ruby -rpuppet -e 'p > Puppet::Type.type(:quagga_service).provider(:parsed)' > >
[EMAIL PROTECTED]:~# RUBYLIB=/var/lib/puppet/lib:$RUBYLIB ruby -rpuppet -rpuppet/provider/quagga_service/debian -e 'puts :yep' yep [EMAIL PROTECTED]:~# RUBYLIB=/var/lib/puppet/lib:$RUBYLIB ruby -rpuppet -e 'p Puppet::Type.type(:quagga_service).provider(:debian)' Puppet::Type::Quagga_service::ProviderDebian The whole thing works great under puppetd -t, it's just when puppet is daemonized it throws this error. -Thom --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---