Puppet: System Administration Automated

Support

Ticket #1027 (closed defect: fixed)

Opened 8 months ago

Last modified 8 months ago

autoloading fails to find providers with pluginsync

Reported by: DavidS Assigned to: community
Priority: normal Milestone: 0.24.2
Component: client Version: 0.24.1
Severity: normal Keywords: autoload,provider
Cc: marthag@mit.edu Triage Stage: Accepted
Attached Patches: None Complexity: Unknown

Description

autoloading fails to appropriately qualify provider's filenames when loadall providers on load of the type. Using a few puts at the right places (and failing instead of ignoring on "file not found", this log was generated:

load: processing 'group'
load: Trying to load /usr/lib/ruby/1.8/puppet/type/group.rb
loadall
loadall: trying to load 'puppet/provider/group/smbldap'
Could not autoload group: no such file to load -- puppet/provider/group/smbldap

Adding the pluginpath to RUBYLIB is a easy workaround and demonstrates that the missing qualification is the root problem.

Change History

02/05/08 07:28:17 changed by luke

  • stage changed from Unreviewed to Needs more info.

Do you have your libdir set to something other than the plugindest? In Puppet::Util::Autoload#searchpath, it clearly searches the libdir, which should thus catch any files in the plugindest (which defaults to being equal to the libdir).

02/13/08 16:40:34 changed by marthag

  • cc set to marthag@mit.edu.
  • stage changed from Needs more info to Unreviewed.

I'm also seeing this. libdir and plugindest are set to the same thing (/var/lib/puppet/lib). Setting RUBYLIB=/var/lib/puppet/lib before puppet is run makes the providers work.

02/13/08 17:46:54 changed by luke

  • stage changed from Unreviewed to Accepted.
  • milestone set to 0.24.2.

02/14/08 00:29:54 changed by luke

  • status changed from new to closed.
  • resolution set to fixed.

Fixed in [8920557].