Issue #7316 has been updated by Daniel Pittman.

Status changed from Unreviewed to Needs Decision
Assignee set to Nigel Kersten
Affected Puppet version set to 2.7.0rc1

Nigel, I don't know if we want to support this or not, but it is a genuine 
issue.  The Faces code doesn't make substantial effort to massage the module 
path into the Ruby load path, and uses only the later to try and locate code.  

Given we extensively use `require` for loading, *not* having those library 
directories on the Ruby load path will require substantial extra work, as well 
as reimplementing the `require` mechanism ourselves.

On the other hand, obviously we *don't* already put the `lib` directories on 
the module path into the Ruby load path, so I don't know what side-effects that 
change might have on the system; that makes me nervous about putting this into 
the RC series for 2.7, and about putting it in post-2.7.0, since both of those 
might be the worst choice depending on what assumptions this tripped up.
----------------------------------------
Feature #7316: faces should support loading faces from modulepath
https://projects.puppetlabs.com/issues/7316

Author: Dan Bode
Status: Needs Decision
Priority: Normal
Assignee: Nigel Kersten
Category: Faces
Target version: 
Affected Puppet version: 2.7.0rc1
Keywords: 
Branch: 


In the below example, I have added a module to the modulepath that contains 
faces code. This issue can be resolved by adding the modules lib dir to RUBYLIB.

<pre>
# puppet interface list
Error: Unknown Puppet subcommand interface.
/usr/local/dev/puppet//lib/puppet/interface/face_collection.rb:21:in `faces': 
Could not load puppet/face/catalog from 
/usr/local/dev/puppet//lib//puppet/face/catalog: no such file to load -- 
puppet/face/catalog/diffstore (RuntimeError)
        from 
/usr/local/dev/puppet//lib/puppet/interface/face_collection.rb:15:in `each'
        from 
/usr/local/dev/puppet//lib/puppet/interface/face_collection.rb:15:in `faces'
        from 
/usr/local/dev/puppet//lib/puppet/interface/face_collection.rb:14:in `chdir'
        from 
/usr/local/dev/puppet//lib/puppet/interface/face_collection.rb:14:in `faces'
        from 
/usr/local/dev/puppet//lib/puppet/interface/face_collection.rb:12:in `each'
        from 
/usr/local/dev/puppet//lib/puppet/interface/face_collection.rb:12:in `faces'
        from /usr/local/dev/puppet//lib/puppet/interface.rb:26:in `faces'
        from /usr/local/dev/puppet//lib/puppet/face/help/global.erb:4:in `help 
implementation, required on Ruby 1.8'
        from /usr/local/dev/puppet//lib/puppet/face/help.rb:91:in `help 
implementation, required on Ruby 1.8'
        from 
/usr/local/dev/puppet//lib/puppet/interface/action.rb+eval[wrapper]:189:in 
`__send__'
        from 
/usr/local/dev/puppet//lib/puppet/interface/action.rb+eval[wrapper]:189:in 
`help'
        from /usr/local/dev/puppet//lib/puppet/util/command_line.rb:75:in 
`execute'
        from /usr/local/dev/puppet//bin/puppet:4
<pre>


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" 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-bugs?hl=en.

Reply via email to