[chef] Re: How to fail the chef run from a start handler?


Chronological Thread 
  • From: Steffen Gebert < >
  • To:
  • Subject: [chef] Re: How to fail the chef run from a start handler?
  • Date: Tue, 19 Nov 2013 00:46:01 +0100

Hi Daniel,

thanks for your response!

That worked great, of course.

And here's the result:
https://github.com/TYPO3-cookbooks/etckeeper/blob/master/templates/default/chef-client/etckeeper-handler.rb

Yours
Steffen

> On Saturday, November 16, 2013 at 3:26 PM, Steffen Gebert wrote:
> 
>> Hi,
>>  
>> I'm playing around with etckeeper and chef and wrote a start handler
>> that should prevent chef from doing anything, if /etc was modified
>> previously.
>>  
>> Is there any way to fail the chef run from a handler? They are executed
>> with run_report_safely, which catches all the exceptions.
>>  
>> Thanks for your help
>> Steffen
>>  
>> [1] https://github.com/opscode/chef/blob/master/lib/chef/handler.rb#L213  ;
> You could override the #run_report_safely method. The code comment about 
> "not overriding this method unless you know what you’re doing” applies to 
> your case. Of course, the caveat there is that other handlers won’t run. 
> For a more elegant approach, you’d need to patch that method, maybe using 
> catch and throw, to allow for changing the state of the chef run to 
> failure.  
> 
> You could also move the code to the first recipe in the run_list if that’s 
> something you can control.
> 
> --  
> Daniel DeLeo
> 
> 





Archive powered by MHonArc 2.6.16.

§