Issue #11182 has been reported by Matt Robinson.
----------------------------------------
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:
Category: error reporting
Target version: 2.7.x
Affected Puppet version:
Keywords: module class type
Branch:
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.