When the master failed to run the External Node Classifier script it
would log an error on the master, but the agent didn't get back the full
error or the stack trace for it's logs.  By raising when there's an ENC
script problem on the master, this causes the error messages to
propagate to the agent.

Paired-with: Jacob Helwig <ja...@puppetlabs.com>
Signed-off-by: Matt Robinson <m...@puppetlabs.com>
---
 lib/puppet/indirector/exec.rb     |    3 +--
 spec/unit/indirector/exec_spec.rb |    5 ++---
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/lib/puppet/indirector/exec.rb b/lib/puppet/indirector/exec.rb
index fa78944..4683eda 100644
--- a/lib/puppet/indirector/exec.rb
+++ b/lib/puppet/indirector/exec.rb
@@ -35,8 +35,7 @@ class Puppet::Indirector::Exec < Puppet::Indirector::Terminus
     begin
       output = execute(external_command)
     rescue Puppet::ExecutionFailure => detail
-      Puppet.err "Failed to find #{name} via exec: #{detail}"
-      return nil
+      raise Puppet::Error, "Failed to find #{name} via exec: #{detail}"
     end
 
     if output =~ /\A\s*\Z/ # all whitespace
diff --git a/spec/unit/indirector/exec_spec.rb 
b/spec/unit/indirector/exec_spec.rb
index acad1ea..de37f27 100755
--- a/spec/unit/indirector/exec_spec.rb
+++ b/spec/unit/indirector/exec_spec.rb
@@ -47,10 +47,9 @@ describe Puppet::Indirector::Exec do
     @searcher.find(@request).should be_nil
   end
 
-  it "should return nil and log an error if there's an execution failure" do
+  it "should raise an exception if there's an execution failure" do
     @searcher.expects(:execute).with(%w{/echo 
foo}).raises(Puppet::ExecutionFailure.new("message"))
 
-    Puppet.expects(:err)
-    @searcher.find(@request).should be_nil
+    lambda {@searcher.find(@request)}.should raise_exception(Puppet::Error, 
'Failed to find foo via exec: message')
   end
 end
-- 
1.7.3.1

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to puppet-dev@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-dev+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to