Issue #11182 has been updated by Matt Robinson. Assignee set to Matt Robinson Branch set to https://github.com/mmrobins/puppet/tree/ticket/2.7.x/11182-list_modules
I've got a proof of concept in the attached branch. The commit message mentions the work that's left to do, but I'll be working on this more as part of the upcoming improvements to the module face and forge. ---------------------------------------- Feature #11182: List modules, classes and types available when one can't be found https://projects.puppetlabs.com/issues/11182 Author: Matt Robinson Status: Accepted Priority: Normal Assignee: Matt Robinson Category: error reporting Target version: 2.7.x Affected Puppet version: Keywords: module class type Branch: https://github.com/mmrobins/puppet/tree/ticket/2.7.x/11182-list_modules Right now if you install a module improperly, which is fairly easy to do, your puppet run will fail simply saying that the class or resource type you're trying to use couldn't be found. % puppet apply test.pp -v Could not find class wordpress for mattmac.puppetlabs.lan at /Users/matthewrobinson/work/puppet/test.pp:3 on node mattmac.puppetlabs.lan It would be much more useful if we could list the modules, classes and/or types that were available. This might be an overwhelming amount of info for large installations, so maybe do this only when at debug log level. I briefly looked into this and it may be more than a trivial amount of work since the classes and types are lazy loaded, so known_resource_types won't have most of that info loaded when we're failing, and will never have info about classes or types that aren't used in your manifest: # lib/puppet/resource.rb:207 if strict? and ! resource_type if @type == 'Class' raise ArgumentError, "Could not find declared class #{title}" else raise ArgumentError, "Invalid resource type #{type}" end end While it would certainly be nice to have this info listed when you get the error, another compromise might be to add a face action (maybe on module) that lists the modules available and the classes and types they provide. Then the error message could say to run that action `puppet module list` so that you could figure out why your manifest was failing. I'm not sure that would be that much easier, but I imagine you wouldn't have to worry about being deep down in the resource.rb file when you need to handle listing all your modules. -- 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.
