对于调用任何配方,使用“include_recipe”方法。我创建了一个异常处理程序,我在其中调用回滚方法。但是,它不起作用。以下是我的代码:
require 'chef/log'
require 'time'
module TEST
class ExceptionHandler < Chef::Handler
def report
if run_status.failed? then
Chef::Log.info("Running Report handler for failed client run...")
Chef::Log.info("Formatted Exception: "+run_status.formatted_exception)
//here i want to call rollback recipe
include_recipe "TEST::rollback"
else
Chef::Log.info("Running success...")
end
end
end
end
日志文件包含以下内容:
但是我没有在日志文件中找到任何提及回滚配方的内容。
上面用于调用配方的代码是否正确?
答案 0 :(得分:0)
在调用处理程序时,Chef已经完成了执行。您必须创建一个自定义执行上下文才能工作。看看poise cookbook及其include_recipe的实现,看看如何做到这一点,但我强烈建议不要这样做,因为所涉及的复杂性以及最终系统的脆弱程度。