Issue #7316 has been updated by Nick Lewis.

Status changed from Accepted to Investigating

While applications are loadable from modules, loading the faces on which they 
depend is proving much more difficult. The main problem is that we don't allow 
actions to be redefined, so we can't load a face or action more than once, so 
we use require. But require is out of our control as far as module path goes. 
We could require via the autoloader, but that would necessarily use the 
absolute path, which doesn't do anything to prevent multiple loading in the 
case where the file IS in the regular load path, and gets required again with 
its relative path. Unfortunately, because faces are a public API, this is a 
real concern. Requiring an action would autoload the face, which would autoload 
the action and we get a conflict.

The closest thing to a solution I've got as yet is to add a hook to the 
modulepath setting to populate the load path with the lib dir of every module 
in each directory of the modulepath. Unfortunately, that doesn't play well with 
environments, and would also mean that if a module is added, we wouldn't find 
it until at least the filetimeout (when we refresh the modulepath).

Alternatively, we could have a mechanism to "pluginsync" the contents of module 
libs into the libdir, which would greatly simplify the situation.
----------------------------------------
Bug #7316: puppet face applications (subcommands) delivered via pluginsync and 
as modules should work
https://projects.puppetlabs.com/issues/7316

Author: Dan Bode
Status: Investigating
Priority: Urgent
Assignee: Nick Lewis
Category: Faces
Target version: 2.7.x
Affected Puppet version: 
Keywords: face faces subcommand application module plugin pluginsync
Branch: 


If you deliver a new face that consists of:

  * application
  * face
  * action for face


via pluginsync, then the application isn't actually found, and worse, it taunts 
you by showing it to you in the list of available subcommands.


-- 
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