Issue #7122 has been updated by Daniel Pittman.

Branch set to 
https://github.com/daniel-pittman/puppet/commits/bug/2.7.x/7122-puppet-facts-find-raises

The root cause has been identified: it was a mismatch between the Ruby API 
calling convention for faces, and the way that command line arguments were 
adapted to it.  The net result was that we would mistake the options from the 
CLI for a positional argument, leading to confusion.

As an aside, this also improves the error reporting for failures around the 
wrong number of arguments being returned.

https://github.com/daniel-pittman/puppet/commits/bug/2.7.x/7122-puppet-facts-find-raises
 contains the current code.
 
----------------------------------------
Bug #7122: 'puppet <face> find' throws a stack trace with no argument
https://projects.puppetlabs.com/issues/7122

Author: Luke Kanies
Status: Accepted
Priority: Normal
Assignee: Nigel Kersten
Category: Faces
Target version: Statler
Affected Puppet version: 2.7.0rc1
Keywords: 
Branch: 
https://github.com/daniel-pittman/puppet/commits/bug/2.7.x/7122-puppet-facts-find-raises


For example:
<pre>
luke@syringe $ puppet facts find --format yaml 
/Users/luke/puppet/lib/puppet/indirector/request.rb:86:in `initialize'
/Users/luke/puppet/lib/puppet/indirector/indirection.rb:115:in `new'
/Users/luke/puppet/lib/puppet/indirector/indirection.rb:115:in `request'
/Users/luke/puppet/lib/puppet/indirector/indirection.rb:180:in `find'
/Users/luke/puppet/lib/puppet/face/indirector.rb:23:in `__send__'
/Users/luke/puppet/lib/puppet/face/indirector.rb:23:in `call_indirection_method'
/Users/luke/puppet/lib/puppet/face/indirector.rb:38:in `find implementation, 
required on Ruby 1.8'
/Users/luke/puppet/lib/puppet/interface/action.rb+eval:90:in `__send__'
/Users/luke/puppet/lib/puppet/interface/action.rb+eval:90:in `find'
/Users/luke/puppet/lib/puppet/application/face_base.rb:153:in `send'
/Users/luke/puppet/lib/puppet/application/face_base.rb:153:in `main'
/Users/luke/puppet/lib/puppet/application.rb:315:in `run_command'
/Users/luke/puppet/lib/puppet/application.rb:307:in `run'
/Users/luke/puppet/lib/puppet/application.rb:411:in `hook'
/Users/luke/puppet/lib/puppet/application.rb:307:in `run'
/Users/luke/puppet/lib/puppet/application.rb:402:in `exit_on_fail'
/Users/luke/puppet/lib/puppet/application.rb:307:in `run'
/Users/luke/puppet/lib/puppet/util/command_line.rb:61:in `execute'
/Users/luke/puppet/bin/puppet:4
/Users/luke/puppet/lib/puppet/face/indirector.rb:26:in `call_indirection_method'
/Users/luke/puppet/lib/puppet/face/indirector.rb:38:in `find implementation, 
required on Ruby 1.8'
/Users/luke/puppet/lib/puppet/interface/action.rb+eval:90:in `__send__'
/Users/luke/puppet/lib/puppet/interface/action.rb+eval:90:in `find'
/Users/luke/puppet/lib/puppet/application/face_base.rb:153:in `send'
/Users/luke/puppet/lib/puppet/application/face_base.rb:153:in `main'
/Users/luke/puppet/lib/puppet/application.rb:315:in `run_command'
/Users/luke/puppet/lib/puppet/application.rb:307:in `run'
/Users/luke/puppet/lib/puppet/application.rb:411:in `hook'
/Users/luke/puppet/lib/puppet/application.rb:307:in `run'
/Users/luke/puppet/lib/puppet/application.rb:402:in `exit_on_fail'
/Users/luke/puppet/lib/puppet/application.rb:307:in `run'
/Users/luke/puppet/lib/puppet/util/command_line.rb:61:in `execute'
/Users/luke/puppet/bin/puppet:4
Could not run: Could not call 'find' on 'facts': undefined method `name' for 
{}:Hash
[next ~/puppet]
luke@syringe $
</pre>

It should fail more helpfully.


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