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.
